《C语言题库-循环结构(共26页).doc》由会员分享,可在线阅读,更多相关《C语言题库-循环结构(共26页).doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上一、 选择题1.以下叙述正确的是A: do-while 语句构成的循环不能用其它语句构成的循环来代替。B: do-while 语句构成的循环只能用break 语句退出。C: 用do-while 语句构成的循环,在while 后的表达式为非零时结束循环。D: 用do-while 语句构成的循环,在while 后的表达式为零时结束循环。2.下面有关for 循环的正确描述是A: for 循环只能用于循环次数已经确定的情况B: for 循环是先执行循环体语句,后判定表达式C: 在for 循环中,不能用break 语句跳出循环体D: for 循环体语句中,可以包含多条语句,但要
2、用花括号括起来3.C 语言中while 和dowhile 循环的主要区别是A: dowhile 的循环体至少无条件执行一次B: while 的循环控制条件比dowhile 的循环控制条件严格C: dowhile 允许从外部转到循环体内;D: dowhile 的循环体不能是复合语句;4.下列关于switch 语句和break 语句的结论中,正确的是A: break 语句是switch 语句中的一部分B: 在switch 语句中可以根据需要使用或不使用break 语句C: 在switch 语句中必须使用break 语句D: switch 语句是break 语句的一部分5.以下正确的描述是A: co
3、ntinue 语句的作用是结束整个循环的执行;B: 只能在循环体内和switch 语句体内使用break 语句;C: 在循环体内使用break 语句或continue 语句的作用相同;D: 从多层循环嵌套中退出时,只能使用goto 语句;6.语句while(!e);中的条件!e 等价于A: e0B: e!0C: e!1D: e7.在以下给出的表达式中,与while(E)中的E不等价的表达式是 A: !E=0B: E0|E=+y;x+)B: for(;x+)C: while(1)x+;D: for(i=10;i-)11.以下不构成无限循环的语句或者与语句组是 A: n=0;do+n;whilen
4、6) n-;printf(“%d”,n);该程序段的输出结果是A: 987B: 876C: 8765D: 987615.以下程序的输出结果是( )。main( ) int n=4;while(n-)printf(%d ,-n);A: 2 0B: 3 1C: 3 2 1D: 2 1 016.以下程序的输出结果是( )。main() int num= 0;while(num7) n-;printf(%dn,n);A: 10987B: 9876C: 1098D: 98718.以下程序的输出结果是( )main() int num0;while(num2) num+;printf(“%d,”,num)
5、;A: 1,B: 1,2,C: 1,2,3,D: 1,2,3,4,19.请读程序:#includemain() int mun=0;while(num=2) num+; printf(%dn,num);上面程序的输出结果是A: 12B: 123C: 1234D: 120.下面程序片段,退出while 循环时,s 的值是_。int i=0,s=1;while(i3) s+=(+i);A: 7B: 6C: 5D: 421.下面程序片段,退出while 循环时,s 的值是_。int i=0,s=1;while(i3) s+=(i+);A: 6B: 5C: 4D: 322.以下程序的输出结果是( )m
6、ain() int x0,y0;while(x15) y+,x+y;printf(“%d,%d”,y,x);A: 20,7B: 6,12C: 20,8D: 8,2023.以下程序的输出结果是( )main() int n0;while(n+7) n;printf(“%d,”,n); A: 10,9,8,B: 9,8,7,C: 10,9,8,7,D: 9,8,7,6,25.在执行以下程序时,如果从键盘上输入,ABCdef,则输出为#includemain() char ch;while(ch=getchar()!=n) if(ch=A & ch=a & ch=z) ch=ch-32;printf
7、(%c,ch);printf(n);A: ABCdefB: abcDEFC: abcD: DEF26.有以下程序:#includemain()inty=10;while(y-);printf(y=dn,y);程序执行后的输出结果是()。Ay=0By=-1Cy=lDwhile构成无限循环27.以下程序的输出结果是( )main() int a1,b2,c2,t;while(abc) ta;ab;bt;c;printf(“%d,%d,%d”,a,b,c);A: 1,2,0B: 2,1,0C: 1,2,1D: 2,1,128.有以下程序段#includemain()while(getchar()!=
8、n);以下叙述中正确的是()。A此while语句将无限循环Bgetchar()不可以出现在while语句的条件表达式中C当执行此while语句时,只有按回车键程序才能继续执行D当执行此while语句时,按任意键程序就能继续执行29.有以下程序:#includemain()inta=1,b=2;while(aO)switch(s)casel:printf(d,s+5); case2:printf(d,s+4);break; case3:printf(d,s+3); default:(d,s+1);break;scanf(d,&s);运行时,若输入123450,由输出结果是()。AB66656C6
9、6666D31.下面的程序main() int x=3;do printf(%dn,x-=2);while(!(-x);A: 输出的是1B: 输出的是1 和-2C: 输出的是3 和0D: 是死循环32.以下程序段是( )x1;do xx*x; while(!x);A: 死循环B: 循环执行两次C: 循环执行一次D: 有语法错误33.有以下程序段int x=3do printf(“%d”,x-=2); while (!(-x);其输出结果是A: 1B: 3 0C: 1 -2D: 死循环34.有以下程序段int n,t=1,s=0;scanf(%d,&n);do s=s+t; t=t-2; whi
10、le (t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是( )。A: 任意正奇数B: 任意负偶数C: 任意正偶数D: 任意负奇数35.下面的程序main() int x=3;do printf(%dn,x-=2);while(!(-x);A: 输出的是1B: 输出的是1 和-2C: 输出的是3 和0D: 是死循环36.有如下程序main( ) int x=23;do printf(“%d”,x-);while(!x);该程序的执行结果是A: 321B: 23C: 不输出任何内容D: 陷入死循环37.有以下程序main() int s=0,a=1,n;scanf(%d,&n);do
11、s+=1; a=a-2; while(a!=n);printf(%dn,s);若要使程序的输出值为2,则应该从键盘给n 输入的值是A: -1B: -3C: -5D: 038假定a 和b 为int 型变量,则执行以下语句后b 的值为a=1; b=10;do b-=a; a+; while (b-0) ;A: 9B: -2C: -1D: 839.执行以下程序后,输出的结果是 。main() int y=10 ;do y- ; while (-y);printf(“%dn”,y- );A: 1B: 1C: 8D: 040.以下程序的输出结果是( )main() int a1,b10;doba; a+
12、; while(b0);printf(“a%d,b%d”,a,b);A: a3,b11B: a2,b8C: a1,b1D: a4,b941.若i和k都是int类型变量,有以下for语句:for(i=0,k=-1;k=1;k+)printf(*n);下面关于语句执行情况的叙述中正确的是()。A循环体执行两次B循环体执行一次C循环体一次也不执行D构成无限循环42.以下程序执行后sum 的值是( )。min() int i , sum;for(i=1;i6;i+) sum+=i;printf(“%dn”,sum);A: 15B: 14C: 不确定D: 043.在C 语言中,执行语句:for (j=1
13、; j5; j+);后,变量j 的值是( )。A: 3B: 4C: 5D: 644.已知 int i,j;执行语句 for(i=1,j=10;ij;i+,j-=2) ;i,j 的值是_。A: 3,6B: 4,4C: 5,2D: 其它三个答案都不对45.以下循环体的执行次数是( )。main() int i,j;for(i=0,j=1; i=j+1; i+=2, j-)printf(%d n,i);A: 3B: 2C: 1D: 046.若i,j已定义为int类型,则一下程序段中内循环体的总的执行次数是for(i=5;i;i-)for(j=0;j4;j+)A: 20B: 25C: 24D: 304
14、7.有以下程序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 中的偶数之和48.若x 是int 型变量,且有下面的程序片段:for(x=3; x8;y=+i)printf(%d,%d ,x-,y);A: 10 1 9 2B: 9 8 7 6C: 10 9 9 0D: 10 10 9 150.有如下程序main( ) int i,sum;for(i=1;i=3;sum+) sum+=i;prin
15、tf(“%dn”,sum);该程序的执行结果是A: 6B: 3C: 死循环D: 051.以下程序的输出结果是( )main() int i;for(i1;i5;i+) if(i%2) printf(“*”);else continue;printf(“#”);printf(“$”);A: *#*#*#$B: *#*#$C: #*#*#*$D: #*#*$52.有以下程序#includemain()int y=9;for( ;y0;y-)if(y%3=0) printf(“%d”,-y);程序的运行结果是A: 852B: C: 741D: 96353.以下程序段中的变量已正确定义for(i=0;
16、i4;i+,i+)for(k=1;k3;k+);printf(“*”);该程序段的输出结果是()A: *B: *C: *D: *54.若有如下程序段,其中s、a、b、c 均已定义为整型变量,且a、c 均已赋值(c 大于0) s=a;for(b=1;b3;j-) if(j%3)j-;-j; -j;printf(%d ,j);A: 6 3B: 7 4C: 6 2D: 7 356.下述程序的输出结果是()。#includemain()inti;for(i=1;i=20)&(i*i=lOO)break;printf(dn,i*i);A49B36C25D6457.下列程序的输出结果是()。#includ
17、emain()inta=0,i;for(i=1;i5;i+)switch(i)case0: case3:a+=1; casel: case2:a+=2; default:a+=3;printf(d,i);A19B1C6D858.有下列程序:main()inti,j,x=0; for(i=0,i2;i+)x+;for(j=0;j=3;j+)if(j2)continue;x+:x+:printf(x=dnx);程序执行后的输出结果是()。Ax=4Bx=8Cx=6Dx=1259.有以下程序:#includemain()chara,b,C;b=l;c=A;for(a=0;a1;n-)s=s+1/n;p
18、rintf(“%6.4fn”,s);程序运行后输出结果错误,导致错误结果的程序行是()A:s=1.0B: for(n=100;n1;n-)C: s=s+1/n;D: printf(“%6.4fn”,s);二、 填空题1、 在C语言中,实现循环的语句主要有 、 、 2、在C语言程序中,当do-while语句构成的循环中的条件为_时,结束循环。3.下面程序的功能是计算1 至50 中是7 的倍数的数值之和,请进行填空。main()int i,sum0;for(i1;i50;i+)if(_) sum+i;printf(“%d”,sum);4.以下程序的功能是计算:s=1+12+123+1234+123
19、45。请填空。 main() int t=0,s=0,i; for( i=1; i=5; i+) t=i+ ; s=s+t; printf(s=%dn,s); 5.以下程序运行后的输出结果是 main()char c1,c2;for(c1=0,c2=9;c1=0;i-) t*=i; printf(“%dn”,t); 执行后输出结果是 7.以下程序的输出结果是 main() int s,i; for(s=0,i=1;i2); printf(“%dn”,j);9.设有以下程序:main() int n1,n2; scanf(“%d”,&n2); while(n2!=0) n1=n2%10; n2=
20、n2/10; printf(“%d”,n1);程序运行后,如果从键盘上输入1298;则输出结果为 10.下面程序的功能是:计算1 到10 之间奇数之和及偶数之和,请填空。#include main() int a, b, c, i;a=c=0for=(i=0;i10;i+=2) a+=i; c+=b;printf(偶数之和=%dn,a);printf(奇数之和=%dn,c-11);11.设i,j,k 均为int 型变量,则执行完下面的for 循环后,k 的值为 for(i=0,j=10;i=j;i+,j-) k=i+j;12.要使以下程序段输出10 个整数,请填入一个整数。for(i=0;im
21、ax) max=x;if( 2 ) min=x;scanf(“%f”,&x);printf(“max=%f,min=%f”,max,min);14.从键盘上输入10个数,求其平均值。main()int I;float f,sum;for(i=1,sum=0.0;i11;i+) 1 2 printf(“avetage=%fn”,sum/10);15.若变量i和j已正确定义,以下内循环的执行次数为 for(i=0;i10;i+)for(j=0;j7;i+)16.执行语句:for (j=1; j7; j+);后,变量j 的值是 17.已知 int i,j;执行语句 for(i=1,j=10;ij;i
22、+,j-=2) ;i,j 的值是_。18.下面程序的功能是:求100-200间的全部素数。请填空#include#includemain()int n,k,i,m=0;for(n=101;n=200;n=n+2)k=sqrt(n);for(i=2;i=k+1) printf(“%d”,n); m=m+1;if(m%10=0)printf(“n”); printf(“n”);19. 下面程序的功能是:输入一个大于3的整数n,判定它是否为素数。请填空#includemain()int n,i;scanf(“%d”,&n);for(i=2;i=n-1;i+) if(n%i=0)break; if( )printf(“%d is not a prime number.n”,n);else printf(“%d is a prime number.n”,n);20. 下面程序的功能是:求Fibonacci数列的前40个数。请填空#includemain()int f1=1,f2=1,f3;int i;printf(“%12dn%12dn”,f1,f2);for(i=1;i=0.0 2、x=min141、scanf(“%f”,&f); 2、sum+=f;1570167174,418n%i=019in20f2=f3专心-专注-专业