循环习题集锦
一. 选择题
1.for(i=0;i<10;i++);结束后,i的值是;
A 9 B 10 C 11 D 12
2.下面程序的循环次数是:
int k=0;
while(k<10)
{if(k<1) continue;
if(k==5) break;
k++;
}
A. 5 B 6 C 4 D 死循环,不能确定循环次数
3.下面程序的输出结果是()
main()
{
int s,k;
for(s=1,k=2;k<5;k++)
s+=k;
printf(“%d\\n”,s);
}
A 1 B 9 C 10 D 15
4.要使下面程序输出10个整数,则在下画线处填入正确的数是:
for(i=0;i<= ;) printf(“%d\\n”,i+=2);
A 9 B 10 C 18 D 20
5.运行下面程序:
main()
{ int i=10,j=0;
do
{ j=j+i;
i--;
}while(i>5);
printf(“%d\\n”,j);
}
输出结果是:
A 45 B 40 6.运行下面程序
#include “stdio.h”main()
C 34
55
D
{ int k=0,a=1;
while(k<10)
{
for( ; ;)
{ if((k%10)==0)
break;
else
k--;
}
k+=11;
a+=k;
}
printf(“%d %d\\n”,k,a);
}
则输出的结果是()
A 21 32 B 21 33 C 11 12 D 10 11
7.以下叙述正确的是:
A. do---while语句构成的循环不能用其他语句构成的循环来代替。
B. do---while语句构成的循环只能用break语句退出。
C.用do---while语句构成的循环,在while 后的表达式为非零时结束循环。
D.用do---while语句构成的循环,在while后的表达式为零时结束循环。
8.有如下程序:
main()
{ int x=3;
do{
printf(“%d”,x--);
}while(!x);
}
该程序的执行结果是:
A 3 2 1 B 2 1 0 C 3 D 2
9.若k为整型变量,则下面while循环执行的次数为:
k=10;
while(k==0) k=k-1;
A 0 B 1 C 10 D无限次
10.下面有关for循环的正确描述是
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.在for循环中,不能用break语句跳出循环体。
D.for循环的循环体语句汇总,可以包含多条语句,但必须用花括号括起来。
11.对for(表达式1;;表达式3)可理解为
A for(表达式1;0;表达式3)
B for(表达式1;1;表达式3)
C for(表达式1;表达式1;表达式3)
D for(表达式1表达式2;表达式3)
12.若i为整型变量,则以下循环执行的次数是()
for(i=2;i==0;)printf(“%d”,i--);
A.无限次 B 0次 C 1次 D 2次
13.以下循环体的执行次数是;
main()
{
int I,j;
for(i=0,j=3;i<=j;i+=2,j--)
printf(“%d\\n”,i);
}
A 3 B 2 C 1 D 0
14.执行以下程序后,输出结果是:
main()
{ int y=10;
do { y--;}while(--y);
printf(“%d”,y--);
}
A -1 B 1 C 8 D 0
15 以下程序的输出结果是:
mian()
{ int a,b;
for(a=1,b=1;a<=100;a++)
{
if(b>=10) break;
if(b%3==1) {b+=3; continue;}
}
printf(“%d”,a);
}
A 101 B 3 C 4 D 5
二、填空题
1. 循环的3个常见语句分别是?
2. 下面程序的运行结果为:
main()
{int a=10,y=0;
do
{a+=2;y+=a;
if(y>50) break;
}while(a<14);
printf(“a=%d,y=%d\\n”,a,y);
}
3.从键盘输入1 2 3 4 5 -1 回车,则下面程序运行的结果是:
main()
{ int n,k=0;
do
{ scanf(“%d”,&n);
k+=n;
}while(n!=-1);
printf(“k=%d,n=%d”,k,n);
}
4.下面程序的运行结果为:
main()
{int i,j,s=0;
for(i=1,j=5;i printf(“\\n%d”,s); } 5.下面程序的运行结果是 main() { int i=10,s=0; for(;--i;) if(i%3==0) s+=i; s++; printf(“\\ns=%d”,s); } 6.下面程序的运行结果是 main() {int a=2,n=5,s; s=a; for(;--n;) s=s*10+a; printf(“%d”,s); } 7.下面的程序运行时,循环体语句“a++”运行的次数为: main() {int i,j,a=0; for(i=0;i<2;i++) for(j=4,j>=0;j--) a++; } 8.下面的程序运行后,a的值为: main() { int i,j,a=0; for(i=0;i<2;i++) a++; for(j=4,j>=0;j--) a++; } 9.下面程序的运行结果为: int i=1,s=3; do{ s+=i++; if(s%7==0) continue; else ++i; }while(s<15); printf(“%d”,i); 10.当运行以下程序时,从键盘输入China# 回车,则下面程序的运行结果是: #include “stdio.h” main() { int v1=0,v2=0; char c; while((c=getchar())!=’#’) { switch(c) { case ‘a’: case ‘h’: default:v1++; case ‘o’:v2++; } } printf(“%d,%d\\n”,v1,v2); } 三、改错题 1. for(i-0,i<5,i++) j++; 2. while(j<10); {j++;i=j;} 3. do {j++;a=j;}while(j<10) 4. 用下面程序来实现5! int s=1,i=1; while(i<=5) s*=i; i++; 5.下面程序段实现求半径r=1到r=10的圆面积,直到面积大于100为止。 For(r=1;r<=10;r++) {s=3.14*r*r; if(s>100) continue; printf(“%f”,s); } 四、编程题 1. 求1-2+3-4+…+99-100。 2. 任意输入10个数,分别计算输出其中的正数和负数之和。 3. 计算1---100以内的所有含6的数的和。 4. 输出所有的3位水仙花数。所谓水仙花数是指所有位的数字的立方之和等于该数, 例如:153=13+33+53 5. 编写程序输出下面图形。 1 23 456 7890 6. 编写程序输出下面图形 * *** ***** ******* ***** *** 因篇幅问题不能全部显示,请点此查看更多更全内容