昆明理工大学C语言程序设计课后习题答案 下载本文

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 main()

{ int a,b,s;

scanf(\s=a; if(a

printf(\

A.36 B.48 C.64 D.以上都不对 20.以下程序运行时,输入的值在_______范围时才会有输出结果。

#inlude main() { int x;

scanf(\if(x<=3);else

if(x!=10) printf(\

A.不等于10的整数 B.大于3且不等于10的整数 C.大于3或等于10的整数 D.小于3的整数 21.下列程序的输出结果是_______。

#inlude main()

{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 main()

{ 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 main()

{ 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 main()

{ int a,b,k;

scanf(\k=a;

if(a

printf(\

A.5 B.3 C.2 D.0

29.在执行下述程序时,若从键盘输入字母H,则输出结果是_______。

#inlude main() { char ch; ch=getchar(); switch(ch)

{ 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 main()

{ 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 main() { inta=1;

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'c'||'x'>'y'与'a'<'c'&&a>b D.'a'>'c'&&'x'>'y'与'a'<'c'||a

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 main()

{ int a=5,b=4,c=3,d=1; d=(a>b>c);

printf(\

A.3 B.2 C.1D.0 40.以下程序执行后的输出结果是_______。

#inlude main()

{ 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++;}