第三部分 循环结构 ·26·
A.x=4,y=4,a=1 B.x=5,y=5,a=1
C.x=5,y=4,a=3 D.x=5,y=4,a=1
6.若i,j已定义为int类型,则以下程序段中内循环的总的执行次数是 ( )。
for (i=5;i;i--) for (j=0;j<4;j++)
{…}
A.20 B.24 C.25 D.30 7. 请读程序:
#include
{int x=1,y=0,a=0,b=0; switch(x)
{case 1:switch(y)
{case 0:a++;break;
case 1:b++;break;
}
case 2:a++;b++;break; }
printf(\}
上面程序的输出结果是( )。
A.a=2,b=1 B.a=1,b=1 8.若有以下程序段,w和k都是整型变量
w=k;
LB: if(w==0) goto LE;
w--;
printf(〞*〞); goto LB;
LE:
则不能与上面程序段等价的循环语句是(A. for(w=k;w!=0;w--) print(〞*〞); B. w=k;
while(w--!=0) printf(〞*〞); w++; C. w=k;
do {w--;printf(〞*〞);} while (w!=0);
D.for (w=k;w;--w) printf(〞*〞); 9. 下面程序的输出是( )。
C.a=1,b=0 )。 D.a=2,b=2 第三部分 循环结构 ·27·
main() {
char *s=〞12134211〞;
int k,v1=0,v2=0,v3=0,v4=0; for (k=0;s[k];k++) switch(s[k]) {
default:v4++; case 1:v1++; case 2:v2++; csse 3:v3++;
}
printf(〞v1=%d,v2=%d,v3=%d,v4=%d\\n〞,v1,v2,v3,v4);
}
A.v1=4,v2=2,v3=1,v4=1 B.v1=4,v2=9,v3=3,v4=1 C.v1=5,v2=8,v3=6,v4=1 D.v1=8,v2=8,v3=8,v4=8 10. 有以下程序
#include〞stdio.h〞 int abc(int u,int v ); main()
{
int c,a=24,b=16; c=abc(a,b);
printf(〞%d\\n〞,c); }
int abc (int u,int v) {
int w; while (v)
{w=u%v; u=v; v=w;} return u;
}
输出结果是( )。
A.6 B.7 C.8 D.9 11.在下列选项中,没有构成死循环的程序段是( )。
A.int i=100; while (1) {
i=i0+1; if(i>100) break; }
B. for ( ; ;);
第三部分 循环结构 ·28·
C.int k=1000;
do {++k;}while (k>=10000); D.int s=36; while (s) ; --s;
12.若输入B,以下程序的运行结果为( )。
main()
{char grade;scanf(\switch(grade)
{case'A':printf(\
case'B':
case'C':printf(\case'D':printf(\default:printf(\}
}
A.>=85. B.>=60. C.>=60.<60.error. 13.列程序运行的情况是( )。
main()
{ int i=1,sum=0;
while(i<10)sum=sum+1;i++; printf(\}
A.i=10,sum=9 B.i=9,sum=9 C.i=2,sum=1 14.有以下语句:
i=1;
for(;i<=100;i++) sum+=i;
与以上语句序列不等价的有( )。 A. for(i=1; ;i++) {sum+=i;if(i==100)break;} B. for(i=1;i<=100;){sum+=i;i++;}
C. i=1;for(;i<=100;)sum+=i;
D. i=1;for(; ;){sum+=i;if(i==100)break;i++;} 15.下面程序的运行结果为( )。
main()
{ int n;
for(n=1;n<=10;n++)
{ if(n%3==0)continue;
printf(\}
}
A.12457810 B.369 C.12 D.error. D.运行出现错误 D.12345678910
第三部分 循环结构 ·29·
16.下面程序的运行结果是( )。
main()
{int x,y,z;
x=0;y=z=-1; x+=-z---y; printf(\}
A.x=4 B.x=0 C.x=2 D.x=3 17.标有/**/的语句的执行次数是( )。
int y,i;
for(i=0;i<20;i++)
{if(i%2==0)continue; y+=i;/**/ }
A.20 B.19 C.10 D.9
18.在C语言中,if语句后的一对圆括号中,用以决定分支的流程的表达式。 A.只能用逻辑表达式 B.只能用关系表达式 C.只能用逻辑表达式或关系表达式 D.可用任意表达式
19.在以下给出的表达式中,与do-while(E)语句中的(E)不等价的表达式是( )。 A.(!E==0) B.(E>0||E<0) C.(E==0) D.(E!=0) 20.假定所有变量均已正确定义,下列程序段运行后x的值为( )。 k1=1;k2=2; k3=3; x=15; if(!k1)x--;else if(k2) if(k3)x=4;else x=3;
A.14 B.4 C.15 D.3 21.执行下面语句的输出为( )。
int i=-1;
if(i<=0)printf(―* * * *\\n‖);
else printf(―% % % % \\n‖);
A.* * * * B.% % % % C.% % % % c D.有错,执行不正确 22.下列程序的输出是( )。
#include
{ int i;char c;
for(i=0;i<=5;i++)
{c=getchar();putchar(c); }
}
程序执行时从第一列开始输入以下数据,
A.uwxsta B.u C.u D.u w w w x xs xsta 23.下列程序的输出为( )。
第三部分 循环结构 ·30·
#include\main()
{ int i,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j-0;j<=3;j++)
{if(j%2)continue;x++; } x++; }
printf(\
}
A.x=4 B.x=8 C.x=6 D.x=12 24.下列程序的输出为( )。
#include
main()
{int i,j,k=0,m=0;
for(i=0;i<2;i++)
{ for(j=0;j<3;j++)k++;k-=j;} m=i+j; printf(\}
A.k=0,m=3 B.k=0,m=5 C.k=1,m=3 D.k=1,m=5
25.在C语言中,为了结束while语句构成的循环,while后一对圆括号中表达式的值应该为
( )。
A.0 B.1 C.true D.非0 26. 在C语言中,为了结束由do-while语句构成的循环,while后一对圆括号中表达式的
值应为( )。 A.0 B.1 C.true D.非0 27.下列程序的输出为( )。
#include
{ int k=0;char c='A'; do
{switch(c++)
{ case'A':k++;break; case'B':k--; case'C':k+=2;break; case'D':k=k%2;continue; case'E':k=k*10;break; default:k=k/3; } k++; }
while(c<'G');