【习题】
一、选择题
1.循环结构的三要素不包含( )。
A.循环变量 B.循环体 C.循环终止条件 D.程序结构图
2.语句 while (!a)中条件!a 等价于( )
A.a==0 B.a!=0 C.a!=1 D.~a
3.已知 int t=0;while (t=1) {...}则以下叙述正确的是( )。
A.循环控制表达式的值为 0 B.循环控制表达式的值为 1
C.循环控制表达式不合法 D.以上说法都不对
4.与以下程序段等价的是( )。
while (a){if (b) continue; c;}
A.while (a){ if (!b) c;} B.while (c){ if (!b) break; c;}
C.while (c){ if (b) c;} D.while (a){ if (b) break; c;}
5.以下程序段,以下哪种说法正确( )。
int x=0,s=0;
while(!x!=0)s+=++x;
printf("%d",s);
A.运行程序段后输出 0 B.运行程序段后输出 1
C.程序段中的控制表达式是非法的 D.程序段执行无限次
6.以下描述中正确的是( )。
A.由于 do-while 循环中循环体语句只能是一条可执行语句,所以循环体
内不能使用复合语句。
B.do-while循环由do开始,用while结束,在while(表达式)后面不能写
分号。
C.在 do-while 循环体中,是先执行一次循环,再进行判断。
D.do-while 循环中,根据情况可以省略 while。
7.for(i=0;i<10;i++)结束后,i 的值是( )。
A.9 B.10 C.11 D.12
8.关于 for 循环语句的写法正确的是( )。
A.for (i=0,y=3;y<4;i++,y++) B.for (i=0 y=3;y<5;i++)
C.for (i=0,y=3;y<4 i<4;i++,y++)
D.for (i=0,y=3;y<4 i<4;i++2,y++2)
9.若变量已正确定义,有以下程序段
i=0;
do{ printf("%d,",i);}while(i++);
printf("%d\n",i);
其输出结果是( )。
A.0,0 B.0,1 C.1,1 D.程序进入无限循环
10.有如下程序
main(){
int n=9;
while(n>6){n--; printf("%d",n);} }
该程序的输出结果是( )。
A.987 B.876 C.8765 D.9876
11.以下不构成无限循环的语句或语句组是
A.n=0; do{++n;}while(n<=0);
B.n=0; while(1){n++;}
C.n=10; while(n);{n--;}
D.for(n=0,i=1; ;i++) n+=i;
12.下列有关 for 循环描述正确的是( )。
A.for 循环只能用于循环次数已确定的情况。
B.for 循环是先执行循环体语句,后判断表达式。
C.for 循环中,不能用 break 语名跳出循出环体。
D.for 循环语句,可以包含多条语,但要用花括号括起来。
13.下列语句中,错误的是( )。
A.while(x=y) printf(“$$$”); B.do{x++}while(x==10);
C.while(0); D.do{i+=2;}while(a==b);
14.下面的 for 语句( )。
智能终端技术与应用专业教学资源库 《C 语言程序设计》
38
for(x=0,y=10;(y>0)&&(x<4);x++,y-- );
A.无限循环 B.循环次数不定 C.循环执行 4 次 D.循环执行 3 次
15.以下描述正确的是( )。
A.break 语句只能退出多层循环。 B.continue 语句只能退出多层循环。
C.break 语句只能终止本层循环。 D.continue 语句只能终止本层循环。
二、判断题
1.do-while 循环至少要执行一次循环语句。( )
2.continue 只能用于循环体中。( )
3.break 是结束整个循环过程,不再判断执行循环的条件是否成立。( )
4.for 循环的三个表达式可以任意省略,while,do-while 也是如此。( )
5.选择结构不可以使用嵌套形式,但是循环结构可以使用嵌套形式。( )
三、运行结果题
写出下列程序运行后结果( )。
#include<stdio.h>
main(){
int a,b,c=0;
for(a=10;a>=2;a- -)
for(b=5;b>=1;- -b)
c++;
printf(“c=%d\n”,++c);}
四、编程题
1.输出所有的水仙花数。(水仙花数是一个三位数,且各位数的立方和
等于该数本身,如:153=1^3+5^3+3^3)
2.从键盘输入两个正整数,输出其最大公约数和最小公倍数。
3.从键盘输入一行字符,统计英文字母、数字字符、空格或其它字符的
个数并输出。
4.有若干只鸡兔同在一个笼子里,从上面数,有 35 个头,从下面数,有
94 只脚。问笼中各有多少只鸡和兔?

