《C语言基础》(循环)部分复习备考练习题
C语言基础(循环)部分复习备考练习题13C语言的for语句中的表达式可以部分或全部省略,但两个( )不可省略。但当三个表达式均省略后,因缺少判断条件,循环会无限制地进行下去,形成死循环。A) <B) +C) ;D) ,14下面有关for循环的正确描述是( )。A) for循环只能用于循环次数已经确定的情况B) for循环是先执行循环体语句,后判定表达式C) 在for循环中,不能用break语句跳出循环体D) for循环体语句中,可以包含多条语句,但要用花括号括起来15以下程序段( )。x=-1;do x=x*x;while(!x)A) 是死循环 B) 循环执行2次 C) 循环执行一次 D) 有语法错误16如下的数组中,数组array占用的内存空间是( )个字节。 char array=c,h,i,n,a; A. 1 B. 5 C. 6 D. 不确定 17设有程序段int k=10;while(k=0) k=k-1;则下面描述正确的是( )。A) while 循环执行10次B) 循环是无限循环C) 循环体语句一次也不执行D) 循环体语句执行一次18下列程序段的运行结果是( ) int n=0; while(n+<3); printf("%d",n) A. 2 B. 3 C. 4 D. 以上都不对19设有程序段t=0;while(printf("*"); t+; if (t<3) break; 下面描述正确的是( )。A) 其中循环控制表达式与0等价B) 其中循环控制表达式与0等价C) 其中循环控制表达式是不合法的D) 以上说法都不对20下面程序的运行结果是( )。#include <stdio.h>main() int y=10; do y-; while(-y); printf("%dn",y-);A) -1 B) 1 C) 8 D) 0 21以下程序段的输出结果是( ). main() int i=5; for ( ;i<=15; ) i+; if (i%4=0) printf("%d ",i); else continue; A. 8 12 16 B. 8 12 C. 12 16 D. 822以下不是无限循环的语句为( )。A) for(y=0,x=1;x>+y;x=i+) i=x;B) for( ; ;x+=i);C) while(1)x+;D) for(i=10; ; i-) sum+=i;23有如下语句 int x=3; do printf("%dn",x-=2); while(!(-x); 则上面程序段( ) A. 输出的是1 B. 输出的是1和-2 C. 输出的是3和0 D. 是死循环24以下不是无限循环的是( ) A. for(y=0,x=1;x>+y;x=i+) i=x; B. for( ; ;x+=i); C. while(1) x+; D. for(i=10; ;i-) s+=i;25以下正确的描述是( )。A) continue语句的作用是结束整个循环的执行B) 只能在循环体内和switch语句内使用break语句C) 在循环体内使用break语句或continue语句的作用相同D) 从多层循环嵌套中退出时,只能使用goto语句26以下程序输出结果为( ) #include "stdio.h" main() int i,b,k=0; for(i=1;i<=5;i+) b=i%2; while (b->=0) k+; printf("%d,%dn",k,b); A. 3,-1 B. 8,-1 C. 3,0 D. 8,-227以下程序段中循环体总的执行次数是( )int i,j;for(i=7;i;i-) for(j=0;j<6;j+).A) 42B) 21C) 13D) 3628以下不正确的描述是( )A. break 语句不能用于循环语句和switch语句外的任何其他语句B. 在switch语句中使用break语句或continue语句的作用相同C. 在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环的执行D. 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环1else语句总是和靠它最近的if匹配。2switch语句中一定有default分支3case后只能跟常量,不能跟变量4break语句的作用就是结束本层循环。5do-while语句构成的循环不能用其它语句构成的循环来代替。6用do-while语句构成循环时,只要while后的表达式为0时就结束循环。7for(表达式1;表达式2;表达式3)中,表达式1和表达式3不能同时都是逗号表达式。8for循环中,如果表达式2为空,则该循环一定是死循环。9while循环的while()后没有分号,而do-while循环的while()后一定要有一个分号。10for(i=0,j=10;i<=j;i+,j-) k=i+j;执行完后,k的值为50。1若a、b均为int型变量,且a=100,则以下的for循环是死循环. for (b=100;a!=b;+a,b+) printf("-n");执行语句:for(i=1;i+<4;+i);后;变量i的值是5。2以下程序的运行结果是【 】main()int x,y,z; x=1;y=2;z=3; x=y-<=x|x+y!=z; printf("%d,%d",x,y);3以下程序的运行结果是【 】main()int x,y,z;x=1;y=1;z=0;x=x|y&&z;printf("%d,%d",x,x&&!y|z);4以下程序的运行结果是【 】main()int a,b,c; int s,w=0,t; a=-1;b=3;c=3; if(c>0)s=a+b; if(a<=0) if(b>0) if(c<=0)w=a-b; else if(c>0)w=a-b; else t=c; printf("%d,%d,%dn",s,w,t);5阅读下面程序:main() int s, t, a, b; scanf("%d%d",&a, &b); s=1; t=1; if(a>0) s=s+1; if(a>b) t=s+t; else if (a=b) t=5; else t=2*s; printf("s=%d, t=%d", s, t);6为了使输出结果t=4, 输入量a和b应满足的条件是【 】7下面程序的功能是在输入的一批整数中求出最大者,输入0结束循环。#include <stdio.h>main() int a,max=0; scanf("%d",&a) while(【】) if (max<a) max=a; scanf("%d",&a); printf("%d",max);8执行下面的程序段后,k值是【】。k=1; n=263;do k*=n%10; n/=10; while(n);9等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项和中,输出能被4整除的所有的和。请填空。#include <stdio.h>main() int a,d,sum; a=2;d=3;sum=0; do sum+=a; a+=d; if (【】) printf("%dn",sum); while(sum<200);10鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空。for(x=1;x<=29;x+) y=30-x; if (【】) printf("%d,%dn",x,y);11写出下面程序的运算结果【】。 # include <stdio.h> main ( ) int a=14, b=63; while (a!=b) while (a>b) a-=b; while (a<b) b-=a; printf ("%dn",a); 12下列程序的输出为【】。 #include <stdio.h> main() int i,j,x=0; for(i=0;i<3;i+) if(i%3=2) break; x+; for(j=0;j<4;j+) if(j%2) break; x+; x+; printf("x=%dn",x);