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
{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
{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));