内容发布更新时间 : 2024/12/23 8:36:34星期一 下面是文章的全部内容请认真阅读。
第4章 循环结构
二、习题
(一)、是非题
1. C语言中,do-while语句构成的循环只能用break语句退出。
A.对 B.错
2.在循环外的语句不受循环的控制,在循环内的语句也不受循环的控制。
A.对 B.错
3.从语法角度看,for(表达式1;表达式2;表达式3)语句中的3个表达式均可省略。
A.对 B.错
4.for、while和do while循环结构的循环体均为紧接其后的第一个语句(含复合语句)。
A.对 B.错
5.由i=-1;while(i<10) i+=2;i++;可知,此while循环的循环体执行次数为6次。
A.对 B.错 6.循环for( ; ; )的循环条件始终为真。
A.对 B.错
7.do…while语句的循环体至少执行1次,while和for循环的循环体可能一次也不执行。
A.对 B.错
8.break;语句执行时退出本层循环,continue;语句结束本次循环。
A.对 B.错
9.for循环、while循环和do while循环结构之间可以相互转化。
A.对 B.错
10.break;语句执行时退出到包含该break;语句的所有循环外。。
A.对 B.错
11.二重循环for(i=0;i<5;i+=2) for(j=0;j<5;j++)的循环体的执行次数为15。
A.对 B.错
外循环i执行3次, 内循环j执行5次。3*5=15次。 12.执行i=-1; while(i<10) i+=2;i++; 后,i的值 为11。
A.对 B.错
13.int i=1;while(1) i++; 则在任何条件下,该循环语句都会执行无穷多次
A.对 B.错 14.while和do…while的功能完全相同。
A.对 B.错
15.while后的表达式只能是逻辑或关系表达式。
A.对 B.错 16.语句while(E);中的表达式E等价于E!=0。
25
A.对 B.错
17.只能在循环体内和switch语句体内使用break语句。
A.对 B.错
18.程序段 int k=10; while(k=0)k=k-1; 中,while循环执行10次。
A.对 B.错
19.若i为整型变量,则 for(i=2;i= =0;)printf(\循环执行次数是0次。
A.对 B.错
20.执行语句for(i=1;i++<4; );后,变量i的值是4。
A.对 B.错
(二)、选择题
1.下列程序的输出结果是______。
#include \void main()
{ int i,a=0,b=0; for(i=1;i<10;i++)
{ if(i%2==0) {a++; continue;} b++;}
printf(\
A.a=4,b=4 B.a=4,b=5 C.a=5,b=4 D.a=5,b=5 2.已知:int t=0; while(t=1) { ... } ,则以下叙述正确的是______。 A.循环表达式的值为0 B.循环表达式的值为1 C.循环表达式不合法 D.以上说法都不对 3.设有以下程序段 ,则 _____。
int x=0,s=0; while(!x!=0) s+=++x; printf(\ while(!0!=0) while(1!=0)
while(1) 执行 s=s+(++x) s=1
A.运行程序段后输出0 B.运行程序段后输出1 C.程序段中的表达式是非法的 D.程序段执行无限次 4.以下程序的运行结果是______。
#include
for( ; y>0;y--)
if(y%3==0) printf(\
A.741 B.963 C.852 D.875421
在循环中,能被3整除的数有9,6,3,输出前自减1,所以得8,5,2。 5.以下描述中正确的是______。
A.由于do-while的循环体只能有一条语句,所以循环体内不能使用复合语句
26
B.do-while由do开始,用while结束,在while(表达式)后面不能写分号 C.在do-while循环中,是先执行一次循环体,再进行判断 D.在do-while循环中,根据情况可以省略while 6.以下程序段的运行结果是______。
i=0; do printf(\ A.0,0 B.0,1 C.1,1 D.程序进入无限循环 7.若程序执行时的输入数据是2473<回车>,则下述程序的输出结果是______。
#include
while((cs=getchar())!='\\n') {switch(cs-'2') { case 0:
case 1: putchar(cs+4);
case 2: putchar(cs+4); break; case 3: putchar(cs+3); default: putchar(cs+2); } } }
A.668977 B.668966 C.6677877
8.以下程序的输出结果是______。
#include \void main() { int a,i;a=0; for(i=1;i<5;i++) switch(i)
{ case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5 ; } printf(\ A.31 B.13 C.10 D.20 9.以下程序的运行结果是______。
#include
27
D.6688766
for(i=1;i<=3;i++)
for(j=3;j<=i;j++) m=m%j; printf(\ A.0 B.1 C.2 D.3 10.以下程序的运行结果是______。
#include
for(i='a';i<'f';i++,i++)printf(\printf(\
A.ACE B.BDF C.ABD D.CDE 11.以下程序运行后的输出结果是______。
#include
{ case 1: case 3:n+=1;k--;break; default:n=0;k--;
case 2: case 4:n+=2;k--;break; } printf(\}while(k>0 && n<5); }
A.235 B.0235 C.02356 D.2356 12.下面程序的输出结果是______。
#include
{ int n=9; while(n>6){n--; printf(\A.987 B.876 C.8765 D.9876 13.下述程序的输出结果是_______。
#include
{ int x=0,y=0,i; for(i=1;;++i)
{ if(i%2==0) {x++;continue;} if(i%5==0) {y++;break;} }
printf (\A.2,1 B.2,2 C.2,5 D.5,2 14.下述程序的输出结果是_______。
#include
28