C语言 下载本文

main( )

{ int x=1,a=0,b=0; switch(x){

case 0: b++; case 1: a++; case 2: a++;b++;

}

printf(“a=%d,b=%d\\n”,a,b); }

该程序的输出结果是 ( ) A) a=2,b=1 B) a=1,b=1

C) a=1,b=0 D) a=2,b=2 答案为A

11. 若有定义float x,y;int a,b;则合法的switch语句是( ) (A)switch(a) {case 3+x:printf(\ case 4:printf(\ (B)switch(a)

case 3 printf(\

case 4 printf(\

(C)switch(b) {default: a++; case 1:printf(\ case 1+2:printf(\ }

(D)switch(a+b);

{case 1+2:printf(\ case 1:printf(\ default: a++; 答案为C

12. 循环语句for(x=0,y=0;(y!=123)||(x<4);x++);的循环次数是( )。 (A)3 (B)4 (C)无限次 (D)不确定次

答案为C

13. 下述程序的输出结果是( ) #include void main() {int x=9; for (;x>0;x--) {if (x%3= =0)

{printf(\

continue; } } }

(A)741 (B)852 (C)963 (D)875421 答案为B

14. 假定a和b为int型变量,则执行以下语句后b的值为( ) a=1;b=10; do {b-=a;a++;} while (b--<0);

(A)9 (B)-2 (C)-1 (D)8 答案为D

15. 循环语句for (x=0,y=0;(y!=123)||(x<4);x++);的循环执行( ) (A)无限次 (B)不确定次 (C)4次 (D)3次 答案为A

16. 设x和y均为int型变量,则执行下面的循环后,y的值为( ) for(y=1,x=1;y<=50;y++)

{if (x>=10) break;

if (x%2==1) {x+=5;continue;} x-=3; }

(A)2 (B)4 (C)6 (D)8 答案为C

17. 语句while(!e==0);什么时候将会陷入死循环( ) A)e==0 B)e!=0 C)e!=1 D)e!=-1 答案为B

18. 执行下面程序段的结果是( )。 int x=23;

do

{ printf(\

}while (!x);

(A)打印出321 (B)打印出23 (C)不打出任何内容 (D)陷入死循环 答案为B

19. 循环语句for(a=0,b=0;(b!=45)||(a<5);a++);的循环次数是( ) (A) 4 (B) 3 (C) 5 (D) 无数多次 答案为D

20. 以下不是死循环的语句( )。

(A) for ( ; ; x ++= i); (B) while (1) {x++;}

(C) for ( i = 10; ; i-- ) sum -= i;

(D) for ( ; (c = getchar()) != ‘\\n’;) sum -= i;

答案为D

21. 若 int x = 3; 且有下面的程序片段,则输出结果为( )。 do

{ printf ( \ , x -= 2 ); }while ( !( --x ));

(A) 1 (B) 30 (C) 1-2 (D) 死循环 答案为C

22. 以下程序的输出结果是( ) 》 main ( )

{ int n = 4 ; while (n--)

printf (\ }

A)20 B)31 C)321 D)210 答案为A

23. 语句while (!E);中的表达式!E等价于( ) 。

A)E= =0 B)E!=1 C)E!=0 D)E==1 答案为A

24. 以下程序段( )。 int x=-1; do {x=x*x;}

while A)是死循环 B)循环执行2次 C)循环执行1 次 D)有语法错0 答案为C

25. 对以下程序段,描述的是( ) 。 int k=5; while (k=0) k=k-1;

printf(\

A)循环体被执行了5次 B)循环体是无限循环 C)循环体一次也不执行 D)循环 体被执行一次 答案为C

26. 以下语句执行完后i 的值为( )。 for(x=0,y=3,i=0;(y>3)&&(x<4);x++,y++) i++; A)0 B)1 C)2 D)3 答案为A

27. 下面程序的运行结果是( )。 main( )

{int x=0,y=0;

while (1) y=++x; printf(\

}

A) 1 B)控制表达式非法 C)无限循环 D)0 答案为C

28. 下面程序段的输出结果是( ) 。

(!x); int x=3;

do {printf(\ while

A) 1 B) 130 C)12 D) 死循环 答案为D

29. 执行下列程序段之后,b的值为( ) 。 int a=1,b=10; do {b-=a; a++;} while(b--<0);

A)9 B)-2 C)-4 D)8 答案为D

30. 在下述程序中,判断i>j共执行了( )次。 #include void main()

{int i=0,j=10,k=2,s=0; for (;;) { i+=k;

if (i>j)

{printf(\ break; }

s+=i; } }

(A)4 (B)7 (C)5 (D)6 答案为D 三、多选题

1. 在下列语句所构成的程序结构中,break语句和continue语句均可使用的是( ) (A)用goto语句和if语句构成的循环 (B)while循环 (C)do-while循环 (D)for循环 (E)switch语句构成的分支结构 答案为BCD

2. 与for(表达式1;;表达式3);语句等价的选项有( )。

(A)for(表达式1;1;表达式3); (B)for(表达式1;0;表达式3); (C)表达式1;while(1)表达式3; (D)表达式1;while(0)表达式3; (E)表达式1;while(3)表达式3;

答案为ACE

3. 在while(<表达式>)中,用于表达式等于0时循环,否则退出循环的表达式可以写成( )。

A) while(x!=0) B) while(x==0) C) while(x) D) while(!x) E) while(x=0) 答案为BD

4. 在C语言中,下列说法的有( )。

(A)\ 语句体 while(条件)\中的语句体可能一次也不会执行

(B)\ 语句体 while(条件)\中当条件为0时将结束循环

(C)for(表达式1;表达式2;表达式3);中的表达式1无论如何都会执行一次 (D)for循环只能用于循环次数已确定的情况

(!(--x));