《c语言循环控制练习题(14页).doc》由会员分享,可在线阅读,更多相关《c语言循环控制练习题(14页).doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-c语言循环控制练习题-第 14 页循环控制练习题1.设有程序段 int k=10; while (k=0) k=k-1; 则下面描述中正确的是(C)A while循环执行10次 B 循环是无限循环C 循环体语句一次也不执行D 循环体语句执行一次2.【程序1】# include main() int flag=0,x; scanf(%d,&x); if(x0)flag=1; else if(x=0)flag=0; else flag=-1; printf(%dn,flag);()程序1运行时,输入-10,输出 (13) 。B A1B0C-1D10()程序1运行时,输入0,输出 (14) 。B
2、A1B0C-1D10延伸【程序2】# include main() int x,y=0; scanf(%d,&x); if(x20) if(x10)y=9; else y=20; printf(%dn,y);()程序2运行时,输入5,输出 (15) B A5B9C10D20()程序2运行时,输入20,输出 (16) 。B A20B0C 9D103、语句while(E);中的表达式E特等价于( C)、!、!、=、下面程序段的执行结果是( AA )int a,b,c,t;a=1;b=2;c=2;while(abc ) t=a;a=b;b=t;c-;printf(%d,%d,%d,a,b,c);A、
3、1,2,0 B、2,1,0 C 、1,2,1 D、2,1,1真题实例:ak和aindex交换Aaindex=ak,ak=aindexBak=aindex,aindex=akCtemp=aindex,aindex=ak,ak=tempDtemp=ak,aindex=temp,ak=aindex5、下面程序段的运行结果是( )x=y=0;while(x15) y+,x+=+y;printf(%d,%d,y,x);A、20,7 B、6,12 C、20,8 D 8,206、下面程序段的运行结果是()int n=0;while (n+=2); printf(%d,n);A,2 B、3 C、4 D 有语法
4、错误7、设有程序段t=0;while(printf(*)t+; if(tb) t=a;a=b;b=t;printf(“%d,%dn”,a,b);scanf(“%d,%d”,&a,&b);A、!a=b B、a!=b C、a=b D、a=b9、下面程序的功能是从键盘输入的一组字符中统计出大写字母个数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
5、.scanf(“%c”,c)A. n:m B.m:n C.m:m D.n:n10、下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中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+2611,下面程序的功能是在输入的一批正整数中求出最大者,输入0时结束,请选择填空main( )int a,max=0; scanf(“%d”,&a);whil
6、e(_)if(maxa) max=a;scanf(“%d”,&a);printf(“%d”,max);A.a=0 B.a C!a=1 D.!a12、下面程序的运行结果是()main( )int num=0;while(num=2)num+; printf(“%dn”,num);A.1 B.12 C.123 D.123413.若运行以下程序时,从键盘输入2473,则下面程序的运行结果是( A )includemain( )int c;while(c=getchar( )!=n)switch(c-2)case 0:case 1:putchar(c+4);case 2:putchar(c+4);br
7、eak;case 3:putchar(c+3);default:putchar(c+2);break;printf(“n”);A668977 B.668966 C.66778777 D.6688766【程序2】#include main() char c; while(c=getchar()!=0) switch(c) case 1: case 9:continue; case A:putchar(a); continue; default:putchar(c);(19)程序2运行时,输入A1290,输出 (19) 。 Aa2BaA129CA129DA1290(20)程序2运行时,输入B134
8、0,输出 (20) 。 AB340BB34CB1340DB13414.语言中while和do-while循环的主要区别是().do-while的循环体至少无条件执行一次.while的循环控制条件比dowhile的循环控制条件严格.do-while允许从外部转到循环体内.do-while的循环体不能是复合语句15 .以下程序段()语句 int x=3;doprint(%dn,x-=2); while(!(-x);则上面程序段()A.输入的是1 B.输出的是1和-2 C.输出的是3和0 D.死循环18.下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环,填空。main()
9、long int num;scanf(%ld,&num);doif(_) printf(%ld,num);scanf(%ld,&num);while(_);A.num%100/10=3 .Bnum/100%10=3 C.num%10/10=3A.!num B.num0=0 C.!num=0 D.!num!=019.下面程序的运行结果是( )#includemain( )int y=10;do y-;while(-y);printf(“%dn”,-y);A .-1 B.1 C.8 D.-820.若运行以下程序时,从键盘输入ADescriptot(表示回车),下面程序的运行结果是 #include
10、main( )char c;int v0=0,v1=0,v2=0;doswitch(c=getchar( )case a:case A:case e:caseE: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=%dn”,v0,v1,v2);A)v0=7,v1=4,v2=7 B)v0=8,v1=4,v2=8C)v0=11,v1=4,v2=11 D)v0=12,v1=4,v2=1221.下面程序的运行结果是 #includemain( )in
11、t a=1,b=10;dob-=a;a+;while(b-0);printf(“a=%d,b=%dn”,a,b);a=3,b=11 B)a=2,b=8 C)a=1,b=-1 D)a=4,b=9用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须花括号括起来23.对for(表达式1; 表达式3)可理解为( B )A.for(表达式1;0; 表达式3)B.for(表达式1;1;表达式3)C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3)24
12、.若i为整型变量,则以下循环执行的次数是( )for(i=2;i=0;) printf(“%d”,i-);A.无限次 B.0次 C.1次 D.2次例:int i,k=1;for(i=0;i3;i+);k=k+2;printf(“%d”,k);程序的输出结果是( B )25.以下for循环的语句是( )for(x=0,y=0;(y=123)&(x+y;x=I+) I=x;B.for(; ;x+=I);C.while(1) x+;D.for(I=10; ;I-) sum+=I;27.以下程序段的运行结果是( )for (y=1;y10;) y=(x=3*y,x+1),x-1);printf(“x=
13、%d,y=%d”,x,y);A. x=27,y=27 B.x=12,y=13 C.x=15,y=14 D.x=y=2728. 下面程序段的运行结果是_for(x=3;x100)break;B. for(;)C. int k=0;do+k;while(k=0);D.int s=36; while(s); -s;30.执行语句for(I=1;I+4;);后变量I的值是().3; B.4 C.5 D.不定语句while (!e);中的条件!e等价于 。A. e=0B. e!=1C. e!=0D. e以下程序段的输出结果是#include main() int i; for (i=4;i=10;i+)
14、 if (!(i%3) continue; printf(%d,i);A. 45B. 457810C. 69D. 678910以下程序的输出结果是_。#include main() int num=0; while (num=2) num+; printf(%dn,num);A. 1B. 1C. 1D. 1 2 2 2 3 3 4程序说明(2007春季浙江省二级C语言考试)输入2个整数lower和upper,输出一张华氏-摄氏转换表,华氏温度的取值范围lower,upper,每次增加2F,计算公式:c=5*(f-32)/9;式中c表示摄氏,f表示华氏。运行示例:Enter lower:30En
15、ter upper:35fahr celsius程序:#include main()int fahr,lower,upper; double celsius; printf(Enter lower:); scanf(%d,&lower); printf(Enter upper:); scanf(%d,&upper); printf(fahr celsiusn);for(fahr=lower; (1) ; (2) ) celsius= (3) ; printf(%d (4) n,fahr,celsius);(1)A、fahr=upperB、fahr=upper D、fahrupper答案:A(2
16、)A、fahr+ B、fahr=fahr-2 C、fahr+2 D、fahr=fahr+2答案:D(3)A、5*(fahr-32)/9 B、(5.0/9.0)*(fahr-32)C、5/9*(fahr-32)D、5*fahr-32/9答案:BC、%6.1fD、%6.0f答案:C输入一个整数n(n=2),输入菲波那契序列的前n项,每行输出6个数,菲波那序列:1,1,2,3,5,8,13,数列的前两个数都是1,从第三项开始,每个数是前两个数之和。(2008年春季浙江省计算机二级C语言考试)运行示例:Enter n:10 1 1 2 3 5 8 13 21 34 55#include main()i
17、nt count,i,n,x1,x2,x;printf(Enter n:);scanf(%d,&n);x1=x2=1;printf(%6d%6d,x1,x2); (1) ;for(i=1;i=n-2;i+) (2) ; printf(%6d,x); count+; if( (3) )printf(n); x1=x2; (4) ;【供选择的答案】(1)A、count=2B、count=0C、count=1D、count=-1 答案:A(2) A、x=x1-x2B、x=x1+x2C、x=x1D、x=2答案:B(3) A、count/6=0B、count%6!=0C、count%6=0D、count
18、/6!=0答案:C(4) A、x=x1+x2B、x2=x1C、x=x2D、x2=x答案:D【程序说明】求1999之间所有满足各位数字的立方之和等于它本身的数。例如153的秋位数字的立方和是13+53+33=153运行示例:1 153 370 371 407程序#include main() int digit,j,sum,x;for(j=1;j1000;j+) (5) (6) do (7) sum=sum+digit*digit*digit;x=x/10;while( (8) );if(j=sum)printf(%d ,sum);【供选择的答案】(5)A、sum=0;B、sum=1; C、sum=j; D、;答案:A(6)A、x=1;B、x=j; C、; D、x=sum;答案:B(7)A、digit=x/10;B、digit=x; C、digit=x%10;D、;答案:C(8)A、x=0B、j!0 C、j=0D、x!=0答案:D