!
(a>0&&a<100)
31.为了避免嵌套的if—else语句的二义性,C语言规定else总是与()
组成配对关系。
A:
缩排位置相同的if
B:
在其之前未配对的if
C:
在其之前未配对的最近的if
D:
同一行上的if
32.已知:
intx,a,b;下列选项中错误的if语句是
A:
if(a=b)x++;B:
if(a<=b)x++;
C:
if(a-b)x++;D:
if(x)x++;
33.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它
三个选项含义不同,这个选项是()。
A:
k%2B:
k%2==1C:
(k%2)!
=0D:
!
k%2==1
34.设有定义:
inta=2,b=3,c=4;,则以下选项中值为0的表达式是()。
A:
(!
a==1)&&(!
b==0)B:
aC:
a&&bD:
a||(b+b)&&(c-a)
35.以下程序段的输出结果是。
inta=10,b=50,c=30;
if(a>b)
a=b;
b=c;
c=a;
printf("a=%db=%dc=%d\n",a,b,c);
A:
a=10b=50c=10B:
a=10b=30c=10C:
a=50b=30c=10D:
a=50b=30c=50
36.以下4个选项中,不能看作一条语句的是
A:
{;}B:
a=0,b=0,c=0;C:
if(a>0);D:
if(b==0)m=1;n=2;
以下题目为二级题
37.if语句的基本形式是:
if(表达式)语句,以下关于“表达式”值的叙述中正确的是
A)必须是逻辑值
B)必须是整数值
C)必须是正数
D)可以是任意合法的数值
38.有以下程序段
inti,n;
for(i=0;i<8;i++)
{n=rand()%5;
switch(n)
{case1:
case3:
printf("%d\n",n);break;
case2:
case4:
printf("%d\n",n);continue;
case0:
exit(0);
}
printf("%d\n",n);
}
以下关于程序段执行情况的叙述,正确的是
A)for循环语句固定执行8次
B)当产生的随机数n为4时结束循环操作
C)当产生的随机数n为1和2时不做任何操作
D)当产生的随机数n为0时结束程序运行
39.有以下程序
#include
main()
{intx=1,y=0;
if(!
x)y++;
elseif(x==0)
if(x)y+=2;
elsey+=3;
printf("%d\n",y);
}
程序运行后的输出结果是
A)3B)2C)1D)0
41.有以下程序:
#include
main(){
inta=0,b=0,c=0,d=0;
if(a=1)b=1;c=2;
elsed=3;
printf("%d,%d,%d,%d",a,b,c,d);
}
程序输出().
A)1,1,2,0B)0,0,0,3C)编译有错D)0,1,2,0
42.有以下程序:
#include
main(){
intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{
case0:
a++;break;
case1:
b++;break;
}
case2:
a++;b++;break;
case3:
a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
A)a=2,b=2B)a=2,b=1C)a=1,b=1D)a=1,b=0
43.若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?
(x++):
(y++)中的条件表达式(x-y)等价的是()
A)(x-y<0||x-y>0)
B)(x-y<0)
C)(x-y>0)
D)(x-y==0)
44.有以下程序:
#include
main(){
intx=1,y=0;
if(!
x)y++;
elseif(x==0)
if(x)y+=2;
elsey+=3;
printf("%d\n",y);
}
程序运行后的输出结果是()
A)3B)2C)1D)0
45.若有定义:
floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()
A)switch(a+b)
{case1:
printf("*\n");
case2+1:
printf("**\n");}
B)switch((int)x);
{case1:
printf("*\n");
case2:
printf("**\n");}
C)switch(x);
{case1.0:
printf("*\n");
case2.0:
printf("**\n");}
D)switch(a+b)
{case1:
printf("*\n");
casec:
printf("**\n");}
46.若变量已正确定义,在if(W)printf("%d\n",k);中,以下不可替代W的是()。
A)a<>b+cB)ch=getchar()C)a==b+cD)a++
47.下列叙述中正确的是().
A)在switch语句中,不一定使用break语句
B)在switch语句中必须使用default
C)break语句必须与switch语句中的case配对使用
D)break语句只能用于switch语句
48.有如下嵌套的if语句
if(a
if(aelsek=c;
else
if(belsek=c;
以下选项中与上述语句等价的语句是()
A)k=(a
((ba:
b):
((b>c)?
b:
c);B)k=(a
((aa:
c):
((bb:
c);
C)k=(a
a:
b;k=(bb:
c;D)k=(a
a:
b;k=(aa:
c;
49.设有宏定义:
#defineIsDIV(k,n)((k%n==1)?
1:
0)
且变量m已正确定义并赋值,则宏调用:
IsDIV(m,5)&&IsDIV(m,7)
为真时所要表达的是:
A)判断m是否能被5和7整除B)判断m被5和7整除是否都余1
C)判断m被5或者7整除是否余1D)判断m是否能被5或者7整除
50.有以下程序
#include
main(){
inta=1,b=2,c=3,x;
x=(a^b)&c;
printf("%d\n",x);
}
程序运行结果是
A)3B)1C)2D)0
51.以下选项中,当x为大于1的奇数时,值为0的表达式是
A)x%2==0B)x/2C)x%2!
=0D)x%2==1
52.有以下程序
#include
main(){
intx;
scanf("%d",&x);
if(x<=3)else
if(x!
=10)printf("%d\n",x);
}
程序运行时,输入的值在哪个范围才会有输出结果()
A)小于3的整数B)不大于10的整数
C)大于3或等于10的整数D)大于3且不等于10的整数
53.在以下给出的表达式中,与while(E)中的E不等价的表达式是()
A) (E>0||E<0)B)(E==0)C)(!
E==0)D) (E!
=0)
54.以下选项中与
if(a==1)a=b;
elsea++;
语句功能不同的switch语句是()
A)switch(a==1)
{case0:
a=b;break;
case1:
a++;
}
B)switch(a)
{case1:
a=b;break;
default:
a++;
}
C)switch(a)
{default:
a++;break;
case1:
a=b;
}
D)switch(a==1)
{case1:
a=b;break;
case0:
a++;
}
55.有以下程序
#include
main()
{
inta=1,b=2,c=3,d=0;
if(a==1&&b++==2)
if(b!
=2||c--!
=3)
printf("%d,%d,%d\n",a,b,c);
elseprintf("%d,%d,%d\n",a,b,c);
elseprintf("%d,%d,%d\n",a,b,c);
}
程序运行后的输出结果是()
A)1,3,2B)1,3,3C)1,2,3D) 3,2,1
56.下列条件语句中,输出结果与其他语句不同的是()
A)if(a!
=0)printf("%d\n",x);elseprintf("%d\n",y);
B)if(a==0)printf("%d\n",y);elseprintf("%d\n",x);
C)if(a==0)printf("%d\n",x);elseprintf("%d\n",y);
D)if(a)printf("%d\n",x);elseprintf("%d\n",y);
57.有以下程序
#include
main(){
intx=1,y=2,z=3;
if(x>y)
if(yelseprintf("%d",++y);
printf("%d\n",x++);
}
程序的运行结果是()
A)1B)41C)2D)331
58.若有以下程序
#include
main(){
inta=1,b=2,c=3,d=4,r=0;
if(a!
=1);elser=1;
if(b==2)r+=2;
else;if(c!
=3)r+=3;
else;if(d==4)r+=4;
printf("%d\n",r);
}
则程序的输出结果是()
A)10B)7C)6D)3
59.有以下程序
#include
main(){
inta;
scanf("%d",&a);
if(a++<9)printf("%d\n",a);
elseprintf("%d\n",a--);
}
程序运行时从键盘输入9<回车>,则输出结果是
A)10B)11C)9D)8
60.设x=3,y=-4,z=6,写出表达式!
(x>y)+(y!
=z)||(x+y)&&(y-z)的结果()
A、0B、1C、-1D、6
二、填空题
1、C语言中用_____表示逻辑值“真”,用_____表示逻辑值“假”
2、C语言中的关系运算符“!
=”的优先级_____“<=”的优先级。
3、C语言中的逻辑运算符“&&”的优先级_____“||”的优先级。
4、C语言中的关系运算符"=="的优先级_____逻辑运算符“&&”的优先级
5、将下列数学式改写成C语言关系表达式或逻辑表达式
A)_______________
B)_______________
A)a=b或a4
6、请写出以下程序的输出结果是_____________
#include
main(){
inta=100;
if(a>100)printf("%d\n",a>100);
elseprintf("%d\n",a<=100);
}
7、请写出与以下表达式等价的表达式
A)_______________
B)_______________
A)!
(x>0)B)!
0
8、若变量已正确定义,以下语句段的输出结果是______________
x=0;y=2;z=3
switch(x){
case0:
switch(y==2)
{case1:
printf("*");break;
case2:
printf("%");break;
}
case1:
switch(z)
{case1:
printf("$");
case2:
printf("*");break;
default:
printf("#");
}
}
9、inta=3;
a+=(a<1)?
a:
1;
printf(“%d”,a);
结果是__________
以下题目为二级题
10、有以下程序
#include
main()
{intx;
scanf("%d",&x);
if(x>15)printf("%d",x-5);
if(x>10)printf("%d",x);
if(x>5)printf("%d\n",x+5);
}
若程序运行时从键盘输入12<回车>,则输出结果为__________。
11、以下程序运行后的输出结果是_________。
#include
main()
{intx=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf("%d%d\n",x,y);
}
12、以下程序的运行结果是_________。
main()
{
inta=2,b=7,c=5;
switch(a>0)
{case1:
switch(b<0)
{case1:
printf("@");break;
case2:
printf("!
");break;
}
case0:
switch(c==5)
{case0:
printf("*");break;
case1:
printf("#");break;
case2:
printf("$");break;
}
default:
printf("&");
}
printf("\n");
}
13、以下程序的运行结果i的值为_________.
main()
{
charch='$';
inti=1,j;
j=!
ch&&i++;
printf("%d",i);
}
14、以下程序用于判断a,b,c能否构成三角形,若能输出YES,若不能输出NO。
当a,b,c输入三角形三条边长时,确定a,b,c能构成