第5部分 循环结构
- 格式:doc
- 大小:59.00 KB
- 文档页数:8
第5部分循环结构一、选择题1、以下程序:void main(){ int x,i;for(i=1;i<=100;i++){ x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)printf(“%d “,x);}printf(“\n”);}其输出结果是( D )。
A.39 81 B.42 84 C.25 68 D.28 70 2、设i和x都是int类型,则for循环语句( A )。
for(i=0,x=0;i<=9&&x!=876;i++) scanf(“%d”,&x);A.最多执行10次B.最多执行9次C.是无限循环D.循环体一次也不执行3、下述for循环语句( B )。
int i,k;for(i=0,k=-1;k=1;i++,k++) printf(“***”);A.判断循环结束的条件非法B.是无限循环C.只循环一次D.一次也不循环4、下述循环的循环次数是( B )int k=2;while(k=0) printf(“%d”,k);k--; printf(“\n”);A.无限次B.0次C.1次D.2次5、对于(1),(2)两个循环语句,( A )是正确的描述。
(1) while(1);(2) for(;;);A.(1)(2)都是无限循环B.(1)是无限循环,(2)错误C.(1)循环一次,(2)错误D.(1)(2)皆错误6、下述程序的输出结果是( B )。
#include<stdio.h>void 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(“x=%d\n”,x);}A.x=4 B.x=8 C.x=6 D.x=127、在下述程序中,判断i>j共执行了( D )。
#include<stdio.h>void main(){ int i=0,j=10,k=2,s=0;for(;;){ i+=k;if(i>j){ printf(“%d “,s);break;}s+=i;}}A.4 B.7 C.5 D.68、若下述程序运行时输入的数据是:“3.6,2.4,1.5”,则输出结果是( B )。
#include<stdio.h>#include<math.h>void main(){ float x,y,z;scanf(“%f,%f”,&x,&y);z=x/y;while(1){ if(fabs(z)>1.0){ x=y; y=z; z=x/y; }elsebreak;}printf(“%f”,y);}A.1.500000 B.1.600000 C.2.000000 D.2.4000009、以下程序的输出结果是( A )。
#include<stdio.h>void main(){ int i;for(i=1;i<=5;i++){ if(i%2) putchar(…<‟);else continue;putchar(…>‟);}putchar(…#‟);}A.<><><># B.><><><#C.<><># D.><><#10、下述程序的输出结果是( B )。
#include<stdio.h>void main(){ int k=0,m=0;int i,j;for(i=0;i<2;i++){ for(j=0;j<3;j++)k++;k-=j;}m=i+j;printf(“k=%d,m=%d”,k,m);}A.k=0,m=3 B.k=0,m=5C.k=1,m=3 D.k=1,m=511、while循环语句中,while后一对圆括号中的表达式的值决定了循环体是否进行,因此进入while循环后,一定要有能使此表达式的值变为( A )的操作,否则循环将会无限制地进行下去。
A.0 B.1 C.成立D.212、下面程序的输出结果是( A )。
void main(){ int n=0;while(n++<=1)printf(“%d\t”,n);printf(“%d\n”,n);}A.1 2 3 B.0 1 2 C.1 1 2 D.1 2 213、下面程序的输出结果是( C )。
void main(){ char s[5]=”121”;int k=0,a=0,b=0;do{ k++;if(k%2==0){ a=a+s[k]-…0‟;continue;}b=b+s[k]-…0‟;a=a+s[k]-…0‟;}while(s[k+1];printf(“k=%d a=%d b=%d\n”,k,a,b);}A.k=3 a=2 b=3 B.k=3 a=3 b=2C.k=2 a=3 b=2 D.k=2 a=2 b=314、当输入为“quert?”时,下面程序的执行结果是( A )。
#include<stdio.h>void main(){ char c;c=getchar();while(c!=‟?‟){ putchar(c);c=getchar();}}A.quert B.Rvfsu C.quert? D.rvfsu?15、在do…while循环中,循环由do开始,用while结束。
必须注意的是:在while表达式后面的( C )不能丢,它表示do…while循环的结束。
A.0 B.1 C.;D.,16、若i,j已定义为int型,则以下程序段中循环体总的执行次数是( A )。
for(i=5;i>0;i--)for(j=0;j<4;j++){ ……}A.20 B.24 C.25 D.3017、分析下列程序:void main(){ int n[3],i,j,k;for(i=0;i<3;i++) n[i]=0;k=2;for(i=0;i<k;i++)for(j=0;j<k;j++)n[j]=n[i]+1;printf(“%d\n”,n[1]);}上述程序运行后,输出结果是( D )。
A.2 B.1 C.0 D.318、在C语言的循环语句for、while、do…while中,用于直接中断最内层循环的语句是( C )。
A.switch B.continue C.break D.if19、执行下面的程序后,a的值为( B )。
void main(){ int a,b;for(a=1,b=1;a<=100;a++){ if(b>=20) break;if(b%3==1){ b+=3;continue;}b-=5;}}A.7 B.8 C.9 D.1020、以下程序段:int n=10;while(n>7){ n--;printf(“%d\n”,n);}其输出结果是( B )。
A.10 B.9 C.10 D.99 8 9 88 7 8 77 621、以下程序:void main(){ int i,sum;for(i=1;i<6;i++) sum+=sum;printf(“%d\n”,sum);}其输出结果是( C )。
A.15 B.14 C.不确定D.022、若x是int型变量,以下程序段:for(x=3;x<6;x++)printf((x%2)?(“**%d”):(“##%d\n”),x);其输出结果是( D )。
A.**3 B.##3 C.##3 D.**3##4 ##4 **4 **4##5 **5**5 ##523、以下叙述正确的是( D )。
A.do…while语句构成的循环不能用其它语句构成的循环来代替B.do…while语句构成的循环只能用break语句退出C.用do…while语句构成循环时,只有在while后的表达式为非零时结束循环D.用do…while语句构成循环时,只有在while后的表达式为零时结束循环24、以下程序段:int k,j,s;for(k=2;k<6;k++,k++){ s=1;for(j=k;j<6;j++) s+=j;}printf(“%d\n”,s);其输出结果是( D )。
A.9 B.1 C.11 D.1025、以下程序段:int i,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4) m++;printf(“%d\n”,m);其输出结果是( C )。
A.12 B.15 C.20 D.2526、以下程序段:int x=3;do{ printf(“%3d”,x-=2);}while(!(--x));其输出结果是( C )。
A.1 B.3 0 C.1 -2 D.死循环27、以下程序:void main(){ int y=10;for(;y>0;y--)if(y%3==0){ printf(“%d”,--y);continue;}}其输出结果是( B )。
A.741 B.852 C.963 D.875421二、填空题1、当执行以下程序段后,i的值是 5 ,j的值是 4 ,k的值是 6 。
int a,b,c,d,i,j,k;a=10;b=c=d=5;i=j=k=0;for(;a>b;++b) i++;while(a>++c) j++;do k++; while(a>d++);2、以下程序的输出结果是-1 。
void main(){ int x=2;while(x--);printf(“%d\n”,x);}3、有以下程序段:s=1.0;for(k=1;k<=n;k++) s=s+1.0/(k*(k+1));printf(“%f\n”,s);请填空,使下面的程序段的功能完全与之等同。
s=0.0;d=1.0 ;k=0;do{ s=s+d;k++ ;d=1.0/(k*(k+1));}while( k<=n );printf(“%f\n”,s);4、下列是计算n!的值的程序,请填空:void main(){ int i,s,n;s=1;printf(“Enter n:”);scanf(“%d”,&n);for(i=1;i<=n;i++){ s*=i ; }printf(“s=%d”,s);}5、以下程序段的输出结果是无限循环,没有输出结果。
int k,n,m;n=10;m=1;k=1;while(k<=n) m*=2;printf(“%d\n”,m);6、continue语句的作用是结束本次循环执行,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判断。