c语言选择结构试题带答案教案资料Word下载.docx
《c语言选择结构试题带答案教案资料Word下载.docx》由会员分享,可在线阅读,更多相关《c语言选择结构试题带答案教案资料Word下载.docx(20页珍藏版)》请在冰豆网上搜索。
4,3D:
2,-1
6.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是
main()
{intx;
scanf("
%d"
&
if(x++>
5)printf("
x);
elseprintf("
x--);
}
7和5B:
6和3C:
7和4D:
6和4
7.能表示x为偶数的表达式是
x%2==0B:
x%2==1C:
x%2D:
x%2!
=0
8.下面的程序段中共出现了几处语法错误?
inta,b;
a);
b=2a;
if(b>
0)printf("
%b"
b);
1B:
2C:
3D:
4
9.C语言中,逻辑“真”等价于
大于零的数B:
大于零的整数C:
非零的数D:
非零的整数
10.C语言的switch语句中,case后
只能为常量
B:
只能为常量或常量表达式
C:
可为常量及表达式或有确定值的变量及表达式
D:
可为任何量或表达式
11.已知inti=10;
表达式"
20-0<
=i<
=9"
的值是
19D:
20
12.设有inti,j,k;
则表达式i=1,j=2,k=3,i&
j&
k的值为
0
13.逻辑运算符两侧运算对象的数据类型
只能是0或1
只能是0或非0正数
只能是整型或字符型数据
可以是任何类型的数据
14.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为
假”的表达式是()
(x>
=1)&
(x<
=10)&
(x>
=200)&
=210)
=1)||(x<
=10)||(x>
=200)||(x<
15.已知x=43,ch=’a’,y=0;
则表达式(x>
=y&
ch<
’b’&
!
y)的值
是()
语法错误D:
假
16.执行下列语句后a的值为
inta=5,b=6,w=1,x=2,y=3,z=4;
(a=w>
x)&
(b=y>
z);
5B:
17.以下程序的输出结果是()
{inta=5,b=0,c=0;
if(a=b+c)printf(“***\n”);
elseprintf(“$$$\n”);
有语法错误不能通过编译
可以通过编译但不能通过连接
***
$$$
18.以下程序的输出结果是()
{intm=5;
if(m++>
5)printf(“%d\n”,m);
elseprintf(“%d\n”,m--);
4B:
5C:
6D:
7
19.若运行时给变量x输入12,则以下程序的运行结果是()
{intx,y;
scanf(“%d”,&
y=x>
12?
x+10:
x-12;
printf(“%d\n”,y);
0B:
22C:
12D:
10
20.若w=1,x=2,y=3,z=4,则表达式w<
x?
w:
y<
z?
y:
z的值是
3C:
21.设有inta=2,b;
则执行b=a&
1;
语句后,b的结果是
22.设有intm=1,n=2;
则++m==n的结果是
23.设有intn=2;
则++n+1==4的结果是
trueB:
falseC:
1D:
24.设有intn=2;
则++n+1==4,n的结果是
25.以下使i的运算结果为4的表达式是
inti=0,j=0;
(i=3,(j++)+i);
inti=1,j=0;
j=i=((i=3)*2);
inti=0,j=1;
(j==1)?
(i=1):
(i=3);
inti=1,j=1;
i+=j+=2;
26.当a=5,b=2时,表达式a==b的值为
2B:
0D:
5
27.若执行以下程序时从键盘上输入9,_______则输出结果是
{intn;
n);
if(n++<
10)printf("
n);
n--);
11B:
10C:
9D:
8
28.main()
{inta,b,d=241;
a=d/100%9;
b=(-1)&
(-1);
printf(“%d,%d”,a,b);
6,1B:
2,1C:
6,0D:
2,0
29.若有intx=10,y=20,z=30;
以下语句执行后x,y,z的值是()
if(x>
y)
z=x;
x=y;
y=z;
x=10,y=20,z=30
x=20,y=30,z=30
x=20,y=30,z=10
x=20,y=30,z=20
30.下列表达式中能表示a在0到100之间的是
a>
0&
a<
100B:
!
(a<
0||a>
100)C:
0<
100D:
(a>
100)
31.为了避免嵌套的if—else语句的二义性,C语言规定else总是与()
组成配对关系。
缩排位置相同的if
在其之前未配对的if
在其之前未配对的最近的if
同一行上的if
32.已知:
intx,a,b;
下列选项中错误的if语句是
if(a=b)x++;
B:
if(a<
=b)x++;
if(a-b)x++;
D:
if(x)x++;
33.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它
三个选项含义不同,这个选项是()。
k%2B:
k%2==1C:
(k%2)!
=0D:
k%2==1
34.设有定义:
inta=2,b=3,c=4;
,则以下选项中值为0的表达式是()。
(!
a==1)&
(!
b==0)B:
aC:
a&
bD:
a||(b+b)&
(c-a)
35.以下程序段的输出结果是。
inta=10,b=50,c=30;
if(a>
a=b;
b=c;
c=a;
a=%db=%dc=%d\n"
a,b,c);
a=10b=50c=10B:
a=10b=30c=10C:
a=50b=30c=10D:
a=50b=30c=50
36.以下4个选项中,不能看作一条语句的是
{;
}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:
break;
case2:
case4:
continue;
case0:
exit(0);
以下关于程序段执行情况的叙述,正确的是
A)for循环语句固定执行8次
B)当产生的随机数n为4时结束循环操作
C)当产生的随机数n为1和2时不做任何操作
D)当产生的随机数n为0时结束程序运行
39.有以下程序
{intx=1,y=0;
if(!
x)y++;
elseif(x==0)
if(x)y+=2;
elsey+=3;
y);
程序运行后的输出结果是
A)3B)2C)1D)0
41.有以下程序:
main(){
inta=0,b=0,c=0,d=0;
if(a=1)b=1;
c=2;
elsed=3;
%d,%d,%d,%d"
a,b,c,d);
程序输出().
A)1,1,2,0B)0,0,0,3C)编译有错D)0,1,2,0
42.有以下程序:
intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{
case0:
a++;
case1:
b++;
}
case2:
case3:
printf("
a=%d,b=%d\n"
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<
C)(x-y>
D)(x-y==0)
44.有以下程序:
intx=1,y=0;
if(!
x)y++;
elseif(x==0)
if(x)y+=2;
elsey+=3;
程序运行后的输出结果是()
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:
**\n"
B)switch((int)x);
case2:
C)switch(x);
{case1.0:
case2.0:
D)switch(a+b)
casec:
46.若变量已正确定义,在if(W)printf("
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<
b)
c)k=a;
elsek=c;
else
if(b<
c)k=b;
以下选项中与上述语句等价的语句是()
A)k=(a<
b)?
((b<
c)?
a:
b):
((b>
b:
c);
B)k=(a<
((a<
c):
((b<
C)k=(a<
b;
k=(b<
c;
D)k=(a<
k=(a<
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.有以下程序
inta=1,b=2,c=3,x;
x=(a^b)&
c;
程序运行结果是
A)3B)1C)2D)0
51.以下选项中,当x为大于1的奇数时,值为0的表达式是
A)x%2==0B)x/2C)x%2!
=0D)x%2==1
52.有以下程序
stido.h>
intx;
scanf("
if(x<
=3)else
if(x!
=10)printf("
程序运行时,输入的值在哪个范围才会有输出结果()
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;
case1:
B)switch(a)
{case1:
default:
}
C)switch(a)
{default:
D)switch(a==1)
55.有以下程序
{
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("
elseprintf("
程序运行后的输出结果是()
A)1,3,2B)1,3,3C)1,2,3D) 3,2,1
56.下列条件语句中,输出结果与其他语句不同的是()
A)if(a!
=0)printf("
B)if(a==0)printf("
C)if(a==0)printf("
D)if(a)printf("
57.有以下程序
intx=1,y=2,z=3;
if(x>
if(y<
z)printf("
++z);
++y);
x++);
程序的运行结果是()
A)1B)41C)2D)331
58.若有以下程序
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;
if(d==4)r+=4;
r);
则程序的输出结果是()
A)10B)7C)6D)3
59.有以下程序
inta;
a);
if(a++<
9)printf("
a--);
}
程序运行时从键盘输入9<
回车>
,则输出结果是
A)10B)11C)9D)8
60.设x=3,y=-4,z=6,写出表达式!
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或a<
cB)|x|>
4
6、请写出以下程序的输出结果是_____________
inta=100;
100)printf("
a>
100);
a<
=100);
7、请写出与以下表达式等价的表达式
A)!
0)B)!
8、若变量已正确定义,以下语句段的输出结果是______________
x=0;
y=2;
z=3
switch(x){
case0:
switch(y==2)
{case1:
*"
case2:
%"
case1:
switch(z)
{case1:
$"
#"
9、inta=3;
a+=(a<
1)?
printf(“%d”,a);
结果是__________
10、有以下程序
if(x>
15)printf("
x-5);
10)printf("
5)printf("
x+5);
若程序运行时从键盘输入12<
,则输出结果为__________。
11、以下程序运行后的输出结果是_________。
#include<
{intx=10,y=20,t=0;
if(x==y)t=x;
x=y;
y=t;
%d%d\n"
x,y);
12、以下程序的运行结果是_________。
inta=2,b=7,c=5;
switch(a>
switch(b<
{case1:
printf("
@"
"
switch(c==5)
{case0:
*"
case1:
#"
$"
default:
\n"
13、以下程序的运行结果i的值为_________.
charch='
$'
;
inti=1,j;
j=!
ch&
i++;
i);
14、以下程序用于判断a,b,c能否构成三角形,若能输出YES,若不能输出NO。
当a,b,c输入三角形三条边长时,确定a,b,c能构成