2011年计算机等级二级C语言章节习题及答案(5)

  • 格式:doc
  • 大小:31.00 KB
  • 文档页数:15

2011年计算机等级二级C语言章节习题及答案(5)第6章循环控制一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。

)6.1 对表达式for(表达式1; ;表达式3)可理解为A)for(表达式1;0;表达式3)B)for(表达式1;1;表达式3)C)for(表达式1;表达式1;表达式3)D)for(表达式1;表达式3;表达式3)正确答案: B6.2 在下列选项中,没有构成死循环的是A)int i=100;while(1){i=i 0+1;if(i>100)break;}B)for(;;);C)int k=10000;do{k++;}while(k>10000);D)int s=36;while(s)--s;正确答案: D6.3 下面有关for循环的正确描述是A)for循环只能用于循环次数已经确定的情况B)for循环是先执行循环体语句,后判断表达式C)在for循环中,不能用break语句跳出循环体D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来正确答案: D6.4 若int i,j;,则for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体执行的次数是A)9B)8C)3D)2正确答案: C6.5 阅读下列程序段,则程序的输出结果是#include "stdio.h"main(){ int a=10,b=10,k;for(k=0;a>8;b=++k)printf("%d,%d,",a- -,- -b);printf("\n");}A)10,10,10,0,B)10,9,9,0,C)10,10,9,1,D)9,9,9,1,考生答案: 正确答案: B6.6 有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。

下面程序是求这堆零件总数,请选择填空。

#includemain(){ int i;for(i=100;i<200;i++)if((i-2)%4==0)if(!((i-3)%7))if(_______)printf("%d",i);}A)i%9=5B)i%9!=5C)(i-5)%9!=0D)(i-5)%9==0正确答案: D6.7 下列程序的输出结果是#include "stdio.h"main(){int i,a=0,b=0;for(i=1;i<10;i++){ if(i%2= =0){ a++;continue; }b++; }printf("a=%d,b=%d",a,b);}A)a=4,b=4B)a=4,b=5C)a=5,b=4D)a=5,b=5正确答案: B6.8 阅读下列程序,则执行结果是#include "stdio.h"main(){int a=0,b=0,c=0,i;for(i=0;i<4;i++)switch(i){ case 0:a=i++;case 1:b=i++;case 2:c=i++;case 3:i++; }printf("%d,%d,%d,%d\n",a,b,c,i);} A)0,1,3,4B)1,2,3,4C)0,1,2,5D)0,2,3,4正确答案: C6.9 阅读下列程序,程序的输出结果是#include "stdio.h"main(){int m,n;float k;for(m=6;m>2;m- -){ k=0;for(n=m;n>1;n- -)k=k+m*n;}printf("%f\n",k);}A)5.000000B)15.000000C)25.000000D)35.000000正确答案: B6.10 下面程序的运行结果是#include "stdio.h"main(){ int j,i,k=0;for(j=50;j<=60;j++){ if(!(k )) printf("\n"); for(i=2;i<J;I++)&NBSP;if(!(j%i)) break;if(i>=j-1){ printf("%d",j);k++; }}}A)5359B)5953C)3595D)9535正确答案: A6.11 已知int t=0;while(t=1){...}则以下叙述正确的是A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法D)以上说法都不对正确答案: B6.12 设有以下程序段int x=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段执行无限次正确答案: B6.13 下列程序的输出结果是#include "stdio.h"main(){ int i=6;while(i- -)printf("%d",- -i);printf("\n");}A)531B)420C)654321D)死循环正确答案: B6.14 对下Ⅰ,Ⅱ两个语句描述正确的是Ⅰ.while(1)Ⅱ.for(;;)A)都是无限循环B)Ⅰ是无限循环,Ⅱ错误C)Ⅰ循环一次,Ⅱ错误D)以上答案都错正确答案: A6.15 以下程序段的描述,正确的是x=-1;do{x=x*x;}while(!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误正确答案: C6.16 若有如下语句int x=3;do{ printf("%d\n",x-=2);}while(!(- -x)); 则上面程序段A)输出的是1B)输出的是1和-2C)输出的是3和0D)是死循环正确答案: B6.17 下面程序的运行结果是#includemain(){ int a=1,b=10;do{ b-=a; a++; }while(b- -<0);printf("a=%d,b=%d\n",a,b);}A)a=3,b=11 B)a=2,b=8 C)a=1,b=-1 D)a=4,b=9正确答案: B6.18 若运行以下程序时,从键盘输入 ADescriptor(表示回车),则下面程序的运行结果是#includemain(){char c;int v0=1,v1=0,v2=0;do{switch(c=getchar()){case ′a′:case′A′:case ′e′:case′E′:case ′i′:case′I′:case ′o′:case ′O′:case ′u′:case′U′:v1+=1;default:v0+=1;v2+=1; }}while(c!=′\n′);printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}A)v0=7,v1=4,v2=7B)v0=8,v1=4,v2=8C)v0=11,v1=4,v2=11D)v0=13,v1=4,v2=12正确答案: D6.19 下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。

#includemain(){ int i=0,j,k;do{ i++; k=316-13*i; }while(______);j=k/11;printf("316=13*%d+11*%d",i,j);}A)k/11B)kC)k/11==0D)k ==0正确答案: B6.20 C语言中 while 和do-while循环的主要区别是A)do-while的循环体至少无条件执行一次B)while的循环控制条件比do-while的循环控制条件更严格C)do-while允许从外部转到循环体内D)do-while 的循环体不能是复合语句正确答案: A6.21 下列说法中错误的是A)只能在循环体内使用break语句B)在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环C)在while和do…while循环中,continue语句并没有使整个循环终止D)continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环判断正确答案: A二、填空题(请将每一个空的正确答案写在答题卡相应序号后。

)6.22 设i,j,k均为int型变量,则执行完下面的for语句后,k的值为【1】。

for(i=0, j=10; i<=j; i++, j- -) k=i+j;正确答案: 106.23 下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。

main(){int i, x, y=1;scanf("%d", &x);for(i=2; i<=x/2; i++)if【2】{ y=0; break;}printf("%d\n", y);}正确答案: (x%i= =0)6.24 以下程序的输出结果是【3】。

main(){ int y=9;for(; y>0; y- -)if (y%3= =0){ printf("%d", - -y); continue; }}正确答案: 8526.25 阅读下面程序段,则执行后的输出结果为【4】。

#include "stdio.h"main(){ int a=1;for(;a<=15;)if(++a%5!=2) continue;else printf("%d",a);printf("\n"); }正确答案: 27126.26 阅读下面语句,则执行后的输出结果为【5】#include "stdio.h"main(){char a,b;for(a=′0′,b=′9′;aprintf("%c%c",a,b);printf("\n");}正确答案: 09182736456.27 阅读下面程序,则执行后程序的结果为【6】#include "stdio.h"main(){ int a=0,b=0;while(a<15)a++;while(b++<15);printf("%d,%d\n",a,b);} 正确答案: 15,16。