C语言控制语句题库
第三章 控制语句
一、选择题
1. 以下语句中无限循环语句是 。
A)for(;2&5;); B)while(1,2,3);
C)while(‘\0’); D)for(;’\0’;);
答案:B
2. 若有程序段如下:
a=b=c=0;x=35;
if(!a)x--;
else if(b);if(c)x=3;
else x=4;
执行后,变量x的值是( )
A.34 B.4 C.35 D.3
答案:B
3. 下列if语句中,不正确的是( )
A.if (x
B.if (x
C.if (x==y)x+=y;
D.if (x
答案:A
4. 若有int x,y;,执行程序段:
for(x=1,y=1;y<50;y++)
{
if (x>=10)
break;
if(x%2==1)
{
x+=5;
continue;
}
x-=3;
}
变量x的值最终为( )
A.11 B.12 C.13 D.10
答案:D
5. 若有int x=3;,执行程序段:
do
{
printf("%3d",x-=2);
}while(!(--x));
输出的结果是( )
A.1 3 B.1 -1 C.1 -2 D.1 -3
答案C
6. 有程序段:
int a;
for (scanf (“%d”,&a);!a;)
printf (“continue”);
则for语句中的!a等价于( )。
(A)a!=0 (B)a= =0 (C)a>0 (D)a>=0
答案:(B)
7. 有如下程序段:
int x=1,y=1;
int m,n;
m=n=1;
switch (m)
{
case 0:x=x*2;
case 1:
{
switch (n)
{
case 1:x=x*2;
case 2:y=y*2;break;
case 3:x++;
}
}
case 2:x++;y++;
case 3:x*=2;y*=2;break;
default:x++;y++;
}
执行完成后,x和y的值分别是( )。
(A)x=6 y=6 (B)x=2 y=1 (C)x=2 y=2 (Dx=7 y=7
答案:(A)
8. 以下描述不正确的是 。
A.使用while和do-while循环时,循环变量初始化的操作应在循环体语句之前完成
B.while循环是先判断表达式,后执行循环语句
C.do-while 和for循环均是先执行循环语句,后判断表达式
D.for、while 和do-while循环中的循环体均可以由空语句构成
答案:C
9. 若x是int型变量,以下程序的输出结果是 。
for (x=3;x<6;x++)
printf ((x%2)?(“**%d”):( “##%d\n”),x);
printf (“\n”);
A.* * 3 B.# # 3 C.# # 3 D.* * 3 # # 4
# # 4 * * 4 * * 4# # 5 * * 5
* * 5 # # 5
答案:D
10.与“for (i=0;i<10;i++)putchar ('a'+i);”功能不同的语句是 。
A)for (i=0;i<10;)putchar ('a'+(++i));
B)for (i=0;i<10;) putchar ('a'+(i++));
C)for (i=0;i<10;putchar ('a'+i),i++);
D)for (i=0;i<=9;i++)putchar ('a'+i);
答案:A
11.循环控制语句“while (!scanf (“%d”,&i)getchar ( );”执行的情况是 。
A)循环输入字符,遇文件结束符EOF退出
B)循环条件有错,不能执行
C)若输入数据i有错,暂停等待处理
D)键入i值后,回车退出循环
答案:A
12. 已知x=3、y=2,则表达式 x*=y+8的值为 。
A)3 B)2 C)30 D)10
答案:C
13. 设x为int型变量,则执行以下语句后,x的值为 。
x=10;x