6循环控制练习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6 循环控制
一、单项选择题
1、for(i=1;i<9;i+=1); 该循环共执行了()次。
A. 7
B. 8
C. 9
D. 10
2、int a=2;while(a=0) a--; 该循环共执行了()次。
A. 0
B. 1
C. 2
D. 3
3、执行完循环for(i=1;i<100;i++); 后,i 的值为()。
A. 99
B. 100
C. 101
D. 102
4、以下for 语句中,书写错误的是。
A. for(i=1;i<5;i++)
B. i=1;for(;i<5;i++)
C. for(i=1;i<5;i++);
D. for(i=1;i<5;)i++;
5、()语句,在循环条件初次判断为假,还会执行一次循环体。
A. for
B. while
C. do-while
D. 以上都不是
6 、有以下程序段int i=5; do{if(i%3==1) if(i%5==2) {printf("*%d",i); break; } i++; }while(i!=0); 其运行结果是()
A.*2*6
B. *7
C.*5
D. *3*5
7、i 、j 已定义为int 类型,则以下程序段中内循环体的执行次数是()。
for(i=5;i;i-- ) for(j=0;j<4;j++){,}
A. 20
B. 24
C. 25
D. 30
8、以下不构成无限循环的语句或语句组是()。
A.n=10; while(n);{n--;}
B.n=0; while(1){n++;}
C.n=0; do{++n;}while(n<=0);
D.for(n=0,i=1;;i++)n+=i;
9、有以下程序段int y=9; for(y>0;y--) if(y%3==0) printf("%d",--y); 其运行结果是()。
A. 875421
B.963
C.852
D. 741
10 、有以下程序段:inti,j;for(i=3;i>=1;i--){for(j=1;j<=2;j++)
printf("%d",i+j);printf("\n");}
其运行结果是()。
A.2 3 4
B.4 3 2
C.2 3
D.4 5
3 4 5 5 4 3 3 4 3 4
4 5 2 3
二、判断题
()1、do {,,} while(0); 程序块至少会执行一次
()2、语句for(i=0;i=10;i++) {,,}; 至多循环10 次
()3、for(;;) 表示无限循环。
()4、下面的循环不能正常结束: for (s=0,i=1; i<=10; ) { s=s+i; i++; }
()5、continue 语句是终止整个循环的执行。
()6、对for( 表达式1;; 表达式3;) 可理解为for( 表达式1;1; 表达式3;) 。
()7、下列程序段执行循环二次x=-1; do {x=x*x;}while(!x);
()8、下列程序段能计算s=10! 的值i=1;s=1; do {s=s*i;i++;} while(i<=10); ()9、下列程序段将输出 3 和0 ,int x=3; do{printf( “%d n”,x -=2);}while(!--x));
三、程序填空题
1. 有1020 个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天后卖完?
main( )
{ intday,x1,x2;
day=0; x1=1020;
while()
{ x2=; x1= ; day++; }
printf("day=%d\n",day);
}
2. 输入若干个字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。
#include
void main( )
{ int s1=0,s2=0;
charch;
while(()!='\n')
{ if(ch>='0'&&ch<='9') s1++;
if(ch>='a'&&ch<='z' || ) s2++;
} printf( “%d,%d”,s1,s2);
}
3. 下面程序的功能是计算1-3+5-7+ ,, -99+101 的值,请填空。
#include
main( )
{ inti=1,t=1,s=0;
for(i=1;i<=101; i=i+2 )
{ ; ;}
printf( “%d\n”,s);
}
四、阅读下列程序,写出程序运行的输出结果
1.void main( )
{ int y=9;
for( ;y>0; y--)
if(y%3==0) { printf("%d", --y); continue;}
}
程序运行后输出结果为
4. main()
{ int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{ n1=n2%10;n2=n2/10;printf("%d",n1);}
}
程序运行后,如果从键盘上输入1298;则输出结果为
5. main()
{ints,i;
for(s=0,i=1;i<3;i++,s+=i);
printf("%d\n",s);
}
程序运行后输出结果为
6. #include
void main( )
{ int s=1,t=1,a,n;
scanf("%d%d",&a,&n);
for(inti=1;i { t=t*10+1; s=s+t; } s*=a; printf("SUM=%d\n",s); } 程序运行后,如果从键盘上输入2,4;则输出结果为 五、程序改错 1、以下程序是显示[200 ,300] 所有能被7 整除的数,每行显示 5 个数,此程序有 5 处错。main() { inti,n=0; /*n 用来记录每行已打印数的个数*/ while(i<300) { if(i%7==0) break; printf("%5d",i); n=n+1; if(n=5)/* 满5 个换行*/ { printf("\n"); n=0; } } } 2、以下程序是求1!+2!+3!+4!+5!+6!+7 !的值,其中有 3 处错误。 main() { inti,s,t=0; for(i=1;i<=7;i++) { s=0; t=t*i; s=s+t; } printf("sum=d\n",s);