循环结构程序设计练习题--内含答案概要_第1页
循环结构程序设计练习题--内含答案概要_第2页
循环结构程序设计练习题--内含答案概要_第3页
循环结构程序设计练习题--内含答案概要_第4页
循环结构程序设计练习题--内含答案概要_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三单元 循环结构练习题选择题:(有答案)1、有以下程序执行后的输出结果是( D )。main( ) int i,s=0; for(i=1;i10;i+=2) s+=i+1; printf(%dn,s); A自然数19的累加和 B自然数110的累加和C自然数19中的奇数之和 D自然数110中的偶数之和2、以下关于for语句的说法不正确的是( A )。A. for循环只能用于循环次数已经确定的情况 B. for循环是先判断表达式,后执行循环体语句C. for循环中,可以用break跳出循环体D. for循环体语句中,可以保含多条语句,但要用花括号括起来3、若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k+) printf(*n);下面关于语句执行情况的叙述中正确的是( D )。A.循环体执行两次 B.循环体执行一次 C.循环体一次也不执行 D.构成无限循环4、若运行以下程序时,输入2473,则程序的运行结果是:( A )main ( ) int c;while (c=getchar( ) ! =n)switch (c-2) case 0 :case 1 : putchar (c+4) ;case 2 : putchar (c+4) ; break ;case 3 : putchar (c+3) ;default : putchar (c+2) ; break ;printf(“n”);A) B) C) D)5、以下for循环的执行次数是:( C ) 。for (x=0,y=0; (y=123) & (x4) ; x+) ;A)无限循环 B)循环次数不定 C)4次 D)3次6、已知 intt=0; while(t=1). 则以下叙述正确的是( B )。 A)循环控制表达式的值为0B)循环控制表达式的值为1 C)循环控制表达式不合法D)以上说法都不对7、设有以下程序段( B )int x=0,s=0; while(!x!=0)s+=+x; printf(%d,s); 则 A)运行程序段后输出0B)运行程序段后输出1 C)程序段中的控制表达式是非法的D)程序段执行无限次8、设i,j,k均为int型变量,则执行完下面的for语句后,k的值为( C )。 for(i=0,j=10;i=j;i+,j-)k=i+j;A.6 B.9 C.10 D.119、C语言中,break; 语句可以用于循环语句和( B )语句中。A.if B.switch C.for D.while10、for(i=0; i=15; i+) printf(%d, i ); 循环结束后,i 的值为( C )。A.14 B.15 C.16 D.1711.有以下程序 main() char b,c; int i; b=a; c=A;for(i=0;i6;i+) if(i%2) putchar(i+b);else putchar(i+c); printf(n);程序运行后的输出结果是( B )A. ABCDEF B. AbCdEf C. aBcDeF D. abcdef12、与语句“while(!x)”等价的语句是( A )。A. while(x=0) B. while(x!=0) C. while(x=1) D. while(x!=1)13、下面程序段的运行结果是( D ) 。x=y=0;while (x15) y+,x+=+y ;printf(“%d,%d”,y,x);A)20,7 B)6,12 C)20,8 D)8,2014、以下程序中,while循环的次数是( B )。#include void main( )int i=0;while(i10) if(i1) continue; if(i= =5)break; i+;A. 1 B. 死循环,不能确定次数 C. 6 D. 1015.下面程序段int k=2;while (k=0) printf(“%d”,k);k-;则下面描述中正确的是( B ) 。A)while循环执行10次 B)循环是无限循环C)循环题语句一次也不执行 D)循环体语句执行一次16.以下程序段的循环次数是( B ) 。for (i=2; i=0; ) printf(“%d” , i-) ;A)无限次 B)0次 C)1次 D)2次17.下面程序的输出结果是(B)。main ( ) char c=A;int k=0;do switch (c+) case A : k+ ; break ;case B : k- ;case C : k+=2 ; break ;case D : k%=2 ; continue ;case E : k*=10 ; break ;default : k/=3 ;k+; while (c0; x-) if (x%3=0) printf(“%d”,-x);continue ; A)741 B)852 C)963 D)20. int i=100;以下不是死循环的程序段是( A ) 。 A)while (1) i=i%100+1 ;if (i100) break ; B)for ( ; ; ) ;C) int k=0; do +k; while (k=0); D)int s=36;while(s) ;-s ;21.下述程序段的运行结果是( C )。int a=1,b=2, c=3, t=4;while (ab=A & c=a & c=z) n+; A)c=getchar( ) B)getchar( ) C)c=getchar( ) D)scanf(“%c”,&c)23.下述语句执行后,变量k的值是( A ) 。 int k=1;while (k+10);A)10 B)11 C)9 D)无限循环,值不定24.下面程序的输出结果是( B ) 。main ( ) int k=0,m=0,i,j;for (i=0; i2; i+) for (j=0; j+y;x=i+) i=x ;B)for ( ; ; x+=i ) ;C)while (1) x+ ; D)for (i=10 ; ; i-) sum+=i ;28.执行语句for (i=1;i+4;) ; 后变量i的值是( B )。A)3 B)4 C)5 D)不定29.以下程序段( B ) 。 x=-1;do x=x*x; while (!x);A)是死循环 B)循环执行2次 C)循环执行1次 D)有语法错误30.下面程序的功能是在输入的一批正数中求最大者,输入0结束循环,选择填空。 ( B )main ( ) int a,max=0;scanf(“%d”,&a);while (【 】) if (maxa) max=a ; scanf (“%d”,&a); printf(“%d”,max);A)a=0 B)a C)!a=1 D)!a31. 设有程序段 int k=10; while (k0) k=k-1; 则下面描述中正确的是( )A while循环执行10次 B 循环是无限循环C 循环体语句一次也不执行 D 循环体语句执行一次32. 设有以下程序段 int x=0,s=0; while(x!=0)s+=+x;printf(%d,s) ;则( )A 运行程序段后输出0 B 运行程序段后输出1 C 程序段中的控制表达式是非法的 D 程序段执行无限次33、下面程序段的运行结果是()int n=0;while (n+=2); printf(%d,n);A,2 B、3 C、4 D 有语法错误34、设有程序段t=0;while(printf(*)t+; if(tb) t=a;a=b;b=t;printf(“%d,%dn”,a,b);A、!a=b B、a!=b C、a=b D、a=b36、下面程序的功能是从键盘输入的一组字符中统计出大写字母个数m和小写字母个数n,并输出m,n中较大者,请选择填空。#includemain( )int m=0,n=0;char c;while(_)!=n)if(c=A&ca&c=z) n+;printf(“%dn”,mn?_);A. c=getchar() B.getchar() C.c=getchar() D.scanf(“%c”,c)A. n:m B.m:n C.m:m D.n:n37、下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A,Z变成B。填空#includemain()char c;while(c=getchar( )!=n)if(c=a&c=Z&c=Z+2)_;printf(“%c”,c);A.c+=2 B.c-=32 C.c=c+32+2 D.c-=30A.c=B B.c=A C.c-=26 D.c=c+2638、下面程序的运行结果是()main( )int num=0;while(num=2)num+; printf(“%dn”,num);A.1 B.12 C.123 D.123439、语言中while和do-while循环的主要区别是().do-while的循环体至少无条件执行一次.while的循环控制条件比dowhile的循环控制条件严格.do-while允许从外部转到循环体内.do-while的循环体不能是复合语句40、以下描述中正确的是( )A.由于do -while循环中循环语句中只能是一条可执行语句,所以循环体内不能使用复合语句。B.do-while循环由do开始,且while结束,在while(表达式)后面不能写分号。C.在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作。D.do-while循环中,根据情况可以省略while41、若有以下后句int x=3;doprint(%dn,x- =2); while(!(-x);则上面程序段()A.输入的是1 B.输出的是1和-2 C.输出的是3和0 D.死循环42、下面程序的运行结果是( )main()int y=10;doy-; while(-y);printf(%dn,y-);A .-1 B.1 C.8 D.043、.下面有关for循环的正确描述是( )A.for循环只能有于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须花括号括起来44、对for(表达式1; 表达式3)可理解为( )A.for(表达式1;0; 表达式3)B.for(表达式1;1;表达式3)C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3)45、以下程序段的运行结果是( )for (y=1;y10;) y=(x=3*y,x+1),x-1);printf(“x=%d,y=%d”,x,y);A. x=27,y=27 B.x=12,y=13 C.x=15,y=14 D.x=y=2746、下面程序的功能是计算到中是的倍数的数值之和,请选择填空。Main()int I,sum=0;for(I=1;I=50;I+)if(_)sun+=I;printf(“%d”,sum);A(int)(i/7)=i/7 B.(int)i/7=i/7 C.i%7=0 D.i%7=047、下面程序段( )for(t=1;t=100;t+)scanf(“%d”,&x);if(x0) continue;ptintf(“%3d”,t);A. 当x=0时什麽也不输出C. printf函数永也不执行D. 最多允许输出100个非负整数48、下面程序的运行结果是( )main()int I,b,k=0;for(I=1;I=0) k+;printf(“%d,%d”,k,b);A.3,-1 B.8-1 C.3,0 D.8,-249、下面程序段( )x=3;doy=x-;if(!y) printf(“x”); continue;printf(“#”);while(1=x=2);A.将输出# B.将输出#*C.是死循环 D.含有不合法的控制表达式50、以下描述正确的是( )A goto语句只能用于退出多层循环 B switch语句中不能出现continue语句C 只能用continue语句来终止本次循环 D 在循环中break语句不能独立出现51、下面程序的运行结果是( )main()int a,b;for(a=1,b=1;a=20)break; if(b%3=1) b+=3;continue;b=-5;ptintf(“%dn”,a);A.7 B.8 C.9 D.1052、下面程序的运行结果是( )main()int I,j,x=0;for(I=0;I2;I+)x+;for(j=0;j=3;j+)if(j%2)continue;x+;ptintf(“x=%dn”,x);A.x=4 B.x=8 C.x=6 D.x=1253、下面程序的运行结果是( )main()int I;for(I=1;I=5;I+)if(I%2) printf(“*”);else continue;printf(“#”);printf(“$n”);A.*#*#*#$ B.#*#*#*$ C.*#*#$ D.#*#*$54、下面程序的运行结果是( )main()int I,j,a=0;for(I=0;I2;I+)for(j=0;j=0&c=9 ) n+; c=getchar();56、当运行以下程序时,从键盘输入right?,则下面程序的运行结果是:5 #includemain()char c;while(c=getchar()!=?); putchar(+c);)57、下面程序的运行结果是: s=128 main()int a,s,n,count;a=2;s=0;n=1;count=1;while(count0);60、当运行以下程序进,从键盘输入-1 0,则下面程序的运行结果是:_main()int a,b,m,n; m=n=1;scanf(“%d%d”,&a,&b);doif(a0)m=2*n;b+;else n=m+n;a+=2;b+;while(a=b);printf(“m=%dn=%d”,m,n);61、鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空。For(x=1;x=29;x+)y=30-x;if(_4*x+2*y=90_) printf(“%d,%dn”,x,y);m=4n=262、当运行以下程序进,从键盘输入-1 0,则下面程序的运行结果是:_main()int a,b,m,n; m=n=1;scanf(“%d%d”,&a,&b);doif(a0)m=2*n;b+;else n=m+n;a+=2;b+;while(a=b);printf(“m=%dn=%d”,m,n);63、鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空。For(x=1;x=29;x+)y=30-x;if(_4*x+2*y=90_) printf(“%d,%dn”,x,y);64、若for循环体用以下形式表示:for(表达式;表达式;表达式)循环体语句则执行语句for(I=0;I3;I+) printf(“*”);时,表达式执行(_1_)次,表达式执行(_3_)次。65、下面程序的功能是计算的值,请填空。Main()int I,t=1,s=0;for(I=1;I=101;I+=2)_t=i_;s=s+t;_s=-s_;printf(“%dn”,s);#66、下面程序的运行结果是:_sum=19_main()int I,t,sum=0;for(t=I=1;I=10;)sum+=t; +I;if(I%3=0)t=-I;else t=Iprintf(“sum=%d”,sum);67、下面程序的运行结果是:_main()int I;for(I=1;I=5;I+)switch(I%2)case0:I+;printf(“#”);break;case 1:I+=2;printf(“#”)default:printf(“n”);68、下面程序的运行结果是: _main()int I=1; while(I=15)if(+I%3!=2) continue;else printf(“%d”,I) ;printf(“n”);69、下面程序的输出结果是:_i=6,k=4_ main()int I,j,k=19;while(I=k-1)k-=3;if(k%5=0) I+;continue;else if(k50)break;while(a=14);printf(“a=%d y=%d”,a,y);读程题:1.以下程序的输出结果是 357 。main( ) int i,x33=1,2,3,4,5,6,7,8,9; for(i=0; i3; i+) printf(%d ,xi2-i);2.以下程序的输出结果是 0 。main()int n2,i,j;for(i=0;i2;i+)ni=0;for(i=0;i2;i+)for(j=0;j2;j+)nj=ni1;printf(”dn”,n1);3.以下程序的输出结果是 3 5 7 。main() int i, a6=2,3,4,5,6,7; for(i=1; i6; i+=2) printf(%d , ai);4.以下程序的输出结果是 7 8 0 04 5 62 0 。main() int i, j, a34=0,1,2,3,4,5,6,7,8;for(i=0;i3;i+) for(j=i;j=0&si=9) n+;printf(%dn,n); )6.写出下面程序运行的结果。 20 70 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) ; 7.写出下面程序运行的结果。 -3 -1-main ( ) int i,b,k=0 ;for (i=1; i=5 ; i+) b=i%2; while (b-) k+ ; printf(“%d,%d”,k,b);8.写出下面程序运行的结果。 -1-main ( ) int a,b;for (a=1,b=1 ; a=20) break;if (b%3=1) b+=3 ; continue ; b-=5;printf(“%dn”,a);9.写出下面程序运行的结果。 _36_main ( ) int k=1,n=263 ;do k*= n%10 ; n/=10 ; while (n) ;printf(“%dn”,k);10.写出下面程序运行的结果。 - 31-1-main ( ) int i=5 ;do switch (i%2) case 4 : i- ; break ;case 6 : i- ; continue ;i- ; i- ;printf(“%d”,i);while (i0) ;11.写出下面程序运行的结果。-3,1,-1,3,1,-1,-main ( ) int i,j;for (i=0;i=0; j-) if (j+i)%2) j- ;printf(“%d,”,j);continue ; -i ; j- ;printf(“%d,”,j) ; 12.写出下面程序运行的结果。 -a=16 y=60-main ( ) int a=10,y=0 ;do a+=2 ; y+=a ;if (y50) break ; while (a=14) ;printf(“a=%d y=%dn”,a,y) ;13.写出下面程序运行的结果。 -i=6,k=4-main ( ) int i,j,k=19;while (i=k-1) k-=3 ;if (k%5=0) i+ ; continue ; else if (k5) break ; i+;printf(“i=%d,k=%dn”,i,k);14.写出下面程序运行的结果。 -1,-2-main ( ) int y=2,a=1;while (y-!=-1)do a*=y ;a+ ; while (y-) ;printf(“%d,%dn”,a,y);15.写出下面程序运行的结果。 -2,3-main ( ) int i,k=0;for (i=1; ; i+) k+ ;while (ki*i) k+ ; if (k%3=0) goto loop ;loop:printf(“%d,%dn”,i,k);编程题:1.输入两个正整数m和n,求其最大公约数和最小公倍数。2.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。3.求 (即求1!+2!+3!+19!+20!)。4.打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。5.编写程序,求s=1+2+3+n,直到累加和大于或等于5000为止,输出s及n的值。6.编写程序输出如下图形。 * * * * * (1)#include stdio.hmain() int a,b,num1,num2,temp; printf(please input two numbers:n); scanf(%d,%d,&num1,&num2); if(num1num2)/*交换两个数,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论