·26·
第5章 循环结构习题
1 选择题
1. 以下程序的输出结果是( )。
main()
{ int n=4; while (n--)
printf(〞%d〞,--n);
}
A.20 B.31 2. 以下程序的输出结果是( )。
main()
{int x=10,y=10,i; for(i=0;x>8;y=++i) printf(\}
A.10192 B.9876 3. 当执行以下程序段时。
x=-1; do
{x=x*x;}
while (!x);
A.循环体将执行一次 C.循环体将执行无数多次 4. 执行以下程序后输出的结果是( main() { int y=10;
do{y--;}while(--y); printf(\
A.-1 B.1 5. 下面程序的输出结果是( )。
main()
{ int x=3,y=6,a=0; while (x++!=(y-=1)) {a+=1;
if (y printf(\}       C.321               D.210      C.10990           D.101091         B.循环体将执行两次            D.系统将提示有语法错误 )。   C.8               D.0                                                           ·27·  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                                                         ·28·  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 ( ; ;);                                                   ·29·  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                                                         ·30·  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.下列程序的输出为(  )。