首页 > 全部 > 二级C语言 > 国家二级C语言(选择结构、循环结构)机试模拟试卷3

国家二级C语言(选择结构、循环结构)机试模拟试卷3

本单篇文档共9945字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 章节练习 7198人下载
价格: 0.80 原价:¥7.00
收藏

国家二级C语言(选择结构、循环结构)机试模拟试卷3

选择题

1.下列选项中,当x为大于1的奇数时,值为0的表达式是( )。(A)

A. x%2==0

B. x/2

C. x%2!=0

D. x%2==1

解析:算术运算符的优先级高于关系运算符的优先级,所以当x为大于1的奇数时,A选项的值为假,即0。B选项的值为不定值,但绝对不是0。C选项的值为真,即1。D选项的值为真,即1。

2.若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( )。(A)

A. 1

B. 0

C. 2

D. 不知道a的值,不能确定

解析:逻辑或“||”要求只要两边的运算对象有一个非零,结果就为真。虽然不知道a的值,但是若a为1,则左边运算对象为1;若a的值不是1,则右边运算对象的值为1,所以总能保证一边非零。

3.当变量c的值不为2、4.6时,值为“真”的表达式是( )。(D)

A. (c>=2&&c<=6)&&(c%21=1)

B. (c==2)||(c==4)||(c==6)

C. (c>=2&&c<=6)&&!(c%2)

D. (c>=2&&c<=6)||(c!=3)||(c!=5)

解析:逻辑或运算符中只要有一个运算量为真,结果就是真,当c>=2&&c<=6条件不成立时,c的值肯定不是2、3、4、5、6,所以c!=3与c!=5均成立,所以D选项的结果一定为真。

4.有以下程序:

#include<stdio.h>

main( )

{

int a=1,b=2,c=3,d=0;

if(a==1&&b++==2)

if(b!=2||c–!=3)

prinff(\\(B)

A. 1,3,2

B. 1,3,3

C. 1,2,3

D. 3,2,1

解析:else总是和最近的if配对,所以进入第一个if语句中进行条件判断时,因为是逻辑与操作,需要两边运算对象的值均为非零值才为真,所以需要逐个执行判断的结果为1。进入第二个if语句条件判断,因为b!=2条件成立,所以整个条件表达式的值为真,不再执行逻辑或的第二个运算对象(c–!=3)c的值不变,也不再执行第一个else语句。打印a的值1,b的值3,c的值3。

5.下列关于逻辑运算符两侧运算对象的叙述中正确的是( )。(A)

A. 可以是任意合法的表达式

B. 只能是整数0或非0整数

C. 可以是结构体类型的数据

D. 只能是整数0或1

解析:C语言的逻辑运算符比较特别,它的操作数没有明确的数据类型,可以是任意合法的表达式,所以选择A。

6.设有宏定义:#define IsDIV(k,n)((k%n==1)?1:0),且变量m已正确定义并赋值,则宏调用:Is DIV(m,5)&&IsDIV(m,7)为真时所要表达的是( )。(B)

A. 判断m是否能被5和7整除

B. 判断m被5和7整除是否都余1

C. 判断m被5或者7整除是否余1

D. 判断m是否能被5或者7整除

解析:本题考查逻辑运算符的相关概念。逻辑与若要为真,那么两边都要为真,所以需要m能被5和7整除都余1,所以选项B正确。

7.if句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是( )。(D)

A. 必须是逻辑值

B. 必须是整数值

C. 必须是正数

D. 可以是任意合法的数值

解析:if语句中的表达式可以是任意合法的数值,如常量、变量表达式,所以D选项正确。

8.下列条件语句中,输出结果与其他语句不同的是( )。(C)

A. if(a!=0)pfintf(\\

B. if(a==0)pfintf(\\

C. if(a==0)pfintf(\\

D. if(a)pfintf(\\

解析:A、B、D选项的含义均为:a的值如果为0,打印y的值,否则打印x的值。而C选项的含义是:a的值为0时打印x的值,不为0时打印y的值,与其他选项正好相反。

9.有以下程序:

#include<stdio.h>

main( )

{int a=0,b=0,c=0,d=0;

if(a=1)b=1;c=2;

else d=3;

printf(\\(C)

A. 1,1,2,0

B. 0,0,0,3

C. 编译有错

D. 0,1,2,0

解析:本题中if(a=1)h=1;与else d=3;之间多了语句c=2;,所以会出现else语句的位置错误的编译失败提示。

10.设有定义:int a=1,b=2,c=3;以下语句中执行效果与其他3个不同的是( )。

C

解析:因为变量a=1,b=2所以条件a>b不成立,选项A、B和D相当于一条语句,选项A是逗号表达式,选项B和选项D是复合语句,所以都没有执行。选项C中,语句“c=a”不执行,语句“a=b;b=c;”执行。故选项C符合题意。

11.有嵌套的if语句:

if(a<b)

if(a<c)k=a;

else k=c:

else if(b<c=k=b;

else k=c:

以下选项中与上述if语句等价的语句是( )。(B)

A. k=(a<b)?((b<c)?a:b):((b>c)?b:c);

B. k=(a<b)?((a<c)?a:c):((b<c)?b:c);

C. k=(a<b)?a:b;k=(b<c)?b:c;

D. k=(a<b)?a:b;k=(a<e)?a:c;

解析:题目中嵌套语句的含义是当a<b且a<c成立时,将a的值赋给k,如果a<b成立而a<c不成立,则将c的值赋给k。如果a<h不成立而b<c成立,则将b的值赋给k,如果a<b不成立且b<c也不成立,则将c的值赋给k。判断条件表达式,只有B选项可以表示这个含义。

12.有以下程序:

#include<stdio.h>

main( )

{

int x=1,y=2,z=3;

if(x>y)if(y<z)

printf(\\(A)

A. 1

B. 41

C. 2

D. 331

解析:else!总是与离它最近的if配对,所以第一个if语句的判断条件不成立,不再执行第二个if语句和与第二个if语句配对的else语句,而是直接执行打印x++的操作,打印x的值1以后再加1。

13.以下程序段中,与语句k=a>b?(b>c?1:0):0;功能相同的是( )。(B)

A. if((a>b)||(b>c))k=1;

else k=0;

B. if((a>b)&&(b>c))k=1;

else k=0;

C. if(a<=b)k=0;

else if(b<=c)k=1;

D. if(a>b)k=1;

else if(b>c)k=1;<

本文档预览:3600字符,共9945字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C语言(选择结构、循环结构)机试模拟试卷3

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号