case 1: b++;break; }
case 2: a++;b++;break; case 3: a++;b++; }
printf(\
A.a=1,b=0 B.a=2,b=1 C.a=1,b=1 D.a=2,b=2
19.在执行下述程序时,若从键盘输入6和8,则输出结果是_______。
#inlude
{ int a,b,s;
scanf(\s=a; if(a
printf(\
A.36 B.48 C.64 D.以上都不对 20.以下程序运行时,输入的值在_______范围时才会有输出结果。
#inlude
scanf(\if(x<=3);else
if(x!=10) printf(\
A.不等于10的整数 B.大于3且不等于10的整数 C.大于3或等于10的整数 D.小于3的整数 21.下列程序的输出结果是_______。
#inlude
{int a=0,b=0,c=0;
if(++a>0||++b>0) ++c; //短路运算,++b未作运算。 printf(\
A.0,0,0 B.1,1, C.1,0,1 D. 0,1,1 22.有定义语句:int a=1,b=2,c=3;,则以下_______对应的表达式的值不为真。
A.a!= 'a'B.a+b-c!='0'-48 C.c-a=='C'-'A'D.c<='7'+'0' 23.下列程序的输出结果是_______。
#inlude
{ int i=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3)) //短路运算,k=k+3 未作运算。 printf(\
A.1 2 3 B.2 3 4 C.2 2 3 D. 2 3 3
24.当变量c的值不为2、4、6时,值也为“真”的表达式是_______。
A.(c==2)||(c==4)||(c==6)
B.(c>=2&&c<=6)||(c!=3)||(c!=5) C.(c>=2&&c<=6)&&!(c%2) D.(c>=2&&c<=6)&&(c%2!=1)
25.下列程序的输出结果是_______。 main()
{ int a=5,b=4,c=3,d=2; if(a>b>c) printf(\
else if((c-1>=d)==1) printf(\ else printf(\
A.2 B.3 C.4 D.编译时有错且无结果
26.己有定义:int x=3,y=4,z=5;, 则表达式!(x+y)+z-1&&y+z/2的值是_______。
A.6 B.0 C.2 D.l
27.以下程序运行后的输出结果是_______。
#inlude
{ int a=15,b=21,m=0; switch(a%3)//15%3=0
{ case 0: m++; break;// 执行后,退出第一层。 case 1: m++;
switch(b%2)//第二层,未执行 { default: m++;
case 0: m++; break; } }
printf(\
A.1 B.2 C. 3 D.4
28.在执行下述程序时,若从键盘输入6和2,则输出结果是_______。
#inlude
{ int a,b,k;
scanf(\k=a;
if(a
printf(\
A.5 B.3 C.2 D.0
29.在执行下述程序时,若从键盘输入字母H,则输出结果是_______。
#inlude
{ case 'H':printf(\ case 'G':printf(\default:printf(\}
A.Hello! B.Hello! Good morning! C.Hello! D.Hello! Good morning! Bye_Bye! Bye_Bye!
30.设变量x和y均已正确定义并赋值,则以下if语句中,在编译时将产生错误信息的是
_______。
A.if(x++); B.if(x>y&&y!=0); C.if(x>0) x-- //少了“;”号 D.if(y<0){;} else y++; else x++; 31.以下程序的运行后的输出结果是_______。
#inlude
{ inta=1,b=0; if(--a) b++;
else if(a==0) b+=2; else b+=3;
printf(\
A.0 B.1C.2 D.3
32.下列条件语句中,输出结果与其他语句不同的是_______。
A.if(a) printf(\B.if(a==0) printf(\C.if(a!=0) printf(\D.if(a==0) printf(\33.以下选项中,能表示逻辑值“假”的是_______。
A.1 B.0.000001C.0 D.100.0
34.以下程序运行时,若从键盘输入9,则输出结果是_______。
#inlude
scanf(\ if(a++<9)
printf(\ else
printf(\
A.10 B.11 C.9 D.8
35.若变量c的值为非0,则能正确地将c的值赋给变量a和b的表达式是_______。
A.(a=c)||(b=c)B.(b=a)=c C.(a=c) && (b=c) D.a=c=b
36.设有定义int i;,则表达式(i=1,i=10)? i++||++i:++i的值是_______。
A.10B.1 C.2 D.3
37.设a=2、b=7.5、c=-3.6,则_______中的两个表达式的逻辑值相等。
A.'a'>'c'||'x'<'y'与 b-a<=-c/2&&c==-3.6 B.'a'>'c'&&x'<'y'与 a-7 38.当y处于闭区间[x,z]时,值为真的表达式是_______。 A.( y<= z)&&(y>=x) B.(x>=y)and(y>=z)c C.(x>=y>=z) D.(x>=y)&(y>=z) 39.以下程序执行后的输出结果是_______。 #inlude { int a=5,b=4,c=3,d=1; d=(a>b>c); printf(\ A.3 B.2 C.1D.0 40.以下程序执行后的输出结果是_______。 #inlude { int a=2,b=7,c=5; switch(a>0) { case 1:switch(b<10) { case 1: printf(\ case 0: printf(\ case 0:switch(c==5) { case 0: printf(\ case 1: printf(\default: printf(\ default:printf(\printf(\ A.!*# B.@!# C.@%#D.@#& 第4章 循环结构 二、习题 (一)、是非题 1. C语言中,do-while语句构成的循环只能用break语句退出。 A.对 B.错 2.在循环外的语句不受循环的控制,在循环内的语句也不受循环的控制。 A.对 B.错 3.从语法角度看,for(表达式1;表达式2;表达式3)语句中的3个表达式均可省略。 A.对 B.错 4.for、while和do while循环结构的循环体均为紧接其后的第一个语句(含复合语句)。 A.对 B.错 5.由i=-1;while(i<10) i+=2;i++;可知,此while循环的循环体执行次数为6次。 A.对 B.错 6.循环for( ; ; )的循环条件始终为真。 A.对 B.错 7.do?while语句的循环体至少执行1次,while和for循环的循环体可能一次也不执行。 A.对 B.错 8.break;语句执行时退出本层循环,continue;语句结束本次循环。 A.对 B.错 9.for循环、while循环和do while循环结构之间可以相互转化。 A.对 B.错 10.break;语句执行时退出到包含该break;语句的所有循环外。。 A.对 B.错 11.二重循环for(i=0;i<5;i+=2) for(j=0;j<5;j++)的循环体的执行次数为15。 A.对 B.错 外循环i执行3次, 内循环j执行5次。3*5=15次。 12.执行i=-1; while(i<10) i+=2;i++; 后,i的值 为11。 A.对 B.错 13.int i=1;while(1) i++; 则在任何条件下,该循环语句都会执行无穷多次 A.对 B.错 14.while和do?while的功能完全相同。 A.对 B.错 15.while后的表达式只能是逻辑或关系表达式。 A.对 B.错 16.语句while(E);中的表达式E等价于E!=0。 A.对 B.错 17.只能在循环体内和switch语句体内使用break语句。 A.对 B.错 18.程序段 int k=10; while(k=0)k=k-1; 中,while循环执行10次。 A.对 B.错 19.若i为整型变量,则 for(i=2;i==0;)printf(\循环执行次数是0次。 A.对 B.错 20.执行语句for(i=1;i++<4; );后,变量i的值是4。 A.对 B.错 (二)、选择题 1.下列程序的输出结果是______。 #include \void main() { int i,a=0,b=0; for(i=1;i<10;i++) { if(i%2==0) {a++; continue;} b++;}