当前位置:文档之家› while循环和do-while循环的主要区别是(

while循环和do-while循环的主要区别是(

第4章
一、选择题
1. while循环和do-while循环的主要区别是( )。
A. do-while的循环体至少无条件执行一次
B. while的循环控制条件比do-while的控制条件严格
C. do-while允许从循环外部转到循环体内
D. do-while的循环体不能是复合语句
2. 关于for循环的正确描述是( )。
A. for循环只能用于循环次数已经确定的情况
B. for循环是先执行循环体语句后判断表达式
C. for循环中不能用break语句结束循环
D. for循环体可以包含多条语句,但必须用花括号括起来
3. 以下正确的说法是( )。
A. continue语句的作用是结束整个循环的执行
B. 只能在循环体内和swtich语句体内使用break语句
C. 在循环体内使用break或continue语句的作用相同
D. 从多层嵌套中退出只能使用goto语句
4. 以下描述正确的是( )。
A. goto语句只能用于退出多层循环
B. swtich语句中不能使用continue语句
C. 只能用continue语句来终止本次循环
D. 在循环中break语句不能独立出现
5. 求“s=1+2+3+...+9+10”,下列语句中错误的是( )。
A. s=0;for(i=1;i<=10;i++) s+=i; B. s=0;i=1;for(;i<=10;i++) s=s+i;
C. for(i=1,s=0;i<=10;s+=i,i=i+1); D. for(i=1;s=0;i<=10;i++) s=s+i;
6. 下列语句中,哪一个可以输出26个大写英文字母( )。
A. for(a=’A’;a<=’Z’;printf("%c",++a));
B. for(a=’A’;a<’Z’;a++)printf("%c",a);
C. for(a=’A’;a<=’Z’;printf("%c",a++));
D. for(a=’A’;a<’Z’;printf("%c",++a));
7. 有程序段“int k=10;while(k=0) k=k-1;”,则正确的是( )。
A. while循环10次 B. 循环是无限循环
C. 循环体一次也不执行 D. 循环体只执行一次
8. 语句“while(!E);”中的表达式!E等价于( )。
A. E==0 B. E!=1
C. E!=0 D. E==1
9. 程序段“int n=0; while(n++<=2);printf(“%d ”,n);”的运行结果是( )。
A. 2 B. 3 C. 4 D. 1 2 3
10. 程序段“int i=4; while(--i) printf("%d",i);”中循环体将执行( )。
A. 3次 B. 4次 C. 0次 D. 无限次
11. 执行“for(s=0,k=1;s<20||k<10;k=k+2) s+=k;”后,s、k的值为( )。
A. 25、9 B. 25、11 C. 36、11 D. 36、9
12. 执行“int k=4,s=0; while(--k) s+=k;”后k、s值分别为( )。
A. 10、0 B. 0、10 C. 6、0 D. 0、6
13. 执行“float s,x;for(x=0,s=0;x!=10;x=x+0.3)s=s+x;”后,变量x的值( )。
A. 远大于10 B. 等于10
C. 小于10 D. 语法错误
14.与while(i>=0&&i<=10) {if(i++==5)continue; printf("%f\n",1.0/(i-5));}功能相同的是
( )。
A. for(;i>=0&&i<=10;i++) if(i!=5) printf("%f\n",1.0/(i-5));
B. for(;i>=0&&i<=10;i++) if(i==5) printf("%f\n",1.0/(i-5));
C. for(;i>=0&&i<=10;i++) if(i!=5) printf("%f\n",1.0/(i-5)); else break;
D. for(;i<=0&&i>=10;i++) if(i!=5) printf("%f\n",1.0/(i-5));
15. 下面程序段的运行结果是( )。
x=y=0;
while(x<15) y++,x+=++y;
printf(“%d,%d”,y,x);
A. 20,7 B. 6,12 C. 20,8 D. 8,20
16. 与while(1){if(i>=100)break;s+=i;i++;} 功能相同的是( )。
A. for(;i<100;i++) s=s+i; B. for(;i<100;i++;s=s+i);
C. for(;i<=100;i++) s+=i; D. for(;i>=100;i++;s=s+i);
二、填空题
1.循环结构可分为_____循环和_____两种结构,前者是“先判断,后循环”,
相应的循环语句有_____和_____,后者是“先循环,后判断”,相应的循环语句
有_____。
2. do while循环是一种___型循环,其特点是_____。
3. for循环是一种___型循环,其特点是_____。
4.for语句中表达式1、表达式2和表达式3分别是:__________、___
_______和__________。
5. 对于同一个循环问题,3种循环语句for、while和do.while_____(随便哪一个
都可以/只能是其中一个)实现。
6. for循环中如果有多个变量需要进行初始化,可以使用_____。
7. for循环中的3个表达式_____(是/不是)必需的。
8. 循环的嵌套是指_______________。
9. 在循环嵌套结构中,内层循环执行的次数等于_______________,循
环的层数越多,程序执行的速度就越慢。
10. break语句用于_______________,continue语句用于______
_________。
三、判断题
1. 循环结构中语句中循环体至少被执行一次。( )
2. 复合语句、选择语句和循环语句都可以嵌套使用。( )
3. 循环体可以是一个空语句,但不可为空。( )
4. 开关语句可以有一个或多个default子句。( )
5. for循环结构是一种“当型”循环。( )
6. while是一种“先判断,后执行”的循环结构。( )
7. do while是一种“当型”循环结构。( )
8. for(;;)或while (1)形式的循环都是永久循环。( )
9. for循环语句格式中可以使用逗号表达式,它可以给多个变量进行初始化;也允许存
在两个或多个循环控制变量。( )
10. 没有循环体的循环是不正确的,即不允许有空循环。( )
11. continue和break语句功能相同。( )
四、写出下列程序运行结果
1. #include
main()
{ int i=1;
while(i<=15)
if(++i%3!=2) continue;
else printf("%d",i);
printf("\n");
}
2. #include
main()
{ int a,b,i;
a=1;b=3;i=1;
do { printf("%d,%d,",a,b);
a=(b-a)*2+b;
b=(a-b)*2+a;
if (i++%2==0) printf("\n");
} while (b<100);
}
3. #include
main()
{ int i,j=4;
for (i=j;i<=2*j;i++)
switch (i/j)
{ case 0:
case1: printf("*"); break;
case2: printf("#");
}
}
五、编程题
1. 编程计算1至50中是7的倍数的数值之和。
2. 从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
3. 输入一批正整数,输出其中的最大值和最小值,输入数字“0”结束循环。
4. 输入一个整数,将其数值按小于10,10-99,100-999,1000以上分类并显示。例如:
输入358时,显示358 is 100 to 999。
5. 编程实现屏幕输出“九九乘法表”,要求以三角形形式输出。
(提示:外循环变量i从1开始到9,内循环变量j从1开始到i)。
6. 求3到M之间的全部素数,M为任意整数。
7. 用公式e=1+1/1!+1/2!+1/3!+ „„+1/n!求e的近似值,精度为1/n!<10-6。
8. 从键盘输入一位整数,当输入数字0叶程序结束;当输入1~7时,显示下面对应的
英文星期名称缩写。
1: MON 2: TUE 3: WED 4: THU 5: FRI 6: SAT 7: SUN

相关主题