一、单选题1、关于下面程序段,正确的是()。intk=10;while(!k)k--;A.循环体一次也不执行B.死循环C.循环体执行1次D.循环体执行10次正确答案:A2、下面程序的运行结果是()。#includeintmain(){intx=3;do{printf("%3d",x-=2);}while(!(--x));return0;}A.1B.死循环C.1-2D.10正确答案:C3、已定义intj;下面程序段的输出结果是()。for(j=7;j<10;j++)printf("%d",j);A.无结果B.8910C.789D.91011正确答案:C4、下面程序的输出结果是()。#includeintmain(){inti,j,s=0;for(j=1,i=7;j<=i;j++,i--)s=s+i+j;printf("%d",s);return0;}A.0B.死循环C.32D.28正确答案:C5、下面程序的输出结果是()。#includeintmain(){intj,s;for(j=1;j<=7;j++)s=s+j;printf("%d",s);}A.死循环B.0C.不确定D.28正确答案:C6、已定义intj,s;则下面程序段的输出结果是()。intj,s;for(j=1,s=0;j<=5;j++)s*=j;printf("%d",s);A.0B.无结果C.120D.死循环正确答案:A7、从循环体内某一层跳出,继续执行循环外的语句是()。A.if语句B.break语句C.空语句D.continue语句正确答案:B8、针对for循环语句,for(表达式1;表达式2;表达式3),下列说法正确的是()。A.continue语句可以一次性跳出多层嵌套循环B.continue语句只能跳出所在层循环C.break语句只能跳出所在层循环D.break语句可以一次性跳出多层嵌套循环正确答案:C9、下面程序的运行结果是()。#includeintmain(){inti,j,sum;for(i=2;i<7;i++){sum=1;for(j=i;j<7;j++)sum=sum+j;}printf("%d",sum);return0;}A.48B.1C.49D.7正确答案:D10、下面程序的运行结果是()。#includeintmain(){inti=10,s=0;while(i>0){if(i%3==0)continue;s=s+i;i--;}printf("s=%d",s);return0;}A.37B.死循环C.55D.10正确答案:B11、下面程序的运行结果是()。#includeintmain(){intx=15;do{x--;}while(x--);printf("%d",x--);return0;}A.0B.-1C.1D.-2正确答案:B二、判断题1、dowhile循环语句中,根据情况可以省略关键字while。(×)2、dowhile循环语句至少无条件执行一次循环体。(√)3、for循环语句先判断循环条件是否成立,然后再决定是否执行循环体。(√)4、for循环的三个表达式中间用逗号相分隔,并且不能省略。(×)5、while循环语句和dowhile循环语句在任何情况下都可以互换。(×)6、for循环的三个表达式中间用分号相分隔,第一个表达式执行一次。(√)7、continue语句用于终止循环体的本次执行。(√)8、break语句能够终止当前进行的多层循环。(×)9、continue语句对于while和do-while循环来说,意味着转去计算While表达式。(√)10、continue语句在循环体中出现,其作用是结束本次循环,接着进行是否执行下一循环的判定。(√)11、goto语句和break语句都能够实现使程序执行的流程从循环体内跳至循环体外。(√)12、break终止包含该语句的最内层循环。(√)13、程序中遇到goto语句无条件跳到标号指定的位置继续执行。(√)三、填空题1、下面程序用来计算自然数1-10之和,请完善程序。#includeintmain(){intj,s;______;for(j=1;j<=10;j++)s=s+j;printf("%d",s);return0;}正确答案:s=02、下面程序计算并输出1100之间(包括100)能被3整除同时能被7整除余3的所有数之和,请完善程序。#includeintmain(){intsum=0,i;i=1;while(______){if(i%3==0&&i%7==3)sum=sum+i;i++;}printf("sum=%d",sum);return0;}正确答案:i<=100或i<1013、下面程序计算并输出500以内最大的10个能被13或17整除的自然数之和。请完善程序。#includeintmain(){intm=0,mc=0,k=500;while(k>=1&&______){if(k%13==0||k%17==0){m=m+k;mc++;}k--;}printf("sum=%d",m);return0;}正确答案:mc<10或mc<=94、/*程序的功能是:求1到10的阶乘的和*/#include"stdio.h"intmain(){intn,j,s=0,t;for(n=1;n<=10;n++){______;for(j=1;j<=n;j++)t=t*j;s=s+t;}printf("s=%d\n",s);return0;}正确答案:t=15、/*程序的功能是:从键盘输入10个字符,输出其中数字字符*/#includeintmain(){inti;charc;for(i=1;i<=10;i++){c=getchar();if(c<'0'||c>'9')______;putchar(c);}return0;}正确答案:continue6、/*用10元人民币兑换角币有多少种换法(角币有1角、2角、5角三种)。*/#includeintmain(){inti,j,k,m=0;for(i=0;i<=20;i++)for(j=0;______;j++)for(k=0;k<=100;k++)if(i*5+j*2+k==100){m++;printf("i=%d,j=%d,k=%d\n",i,j,k);}printf("m=%d",m);return0;}正确答案:j<=50