C语言循环习题答案.docx
《C语言循环习题答案.docx》由会员分享,可在线阅读,更多相关《C语言循环习题答案.docx(7页珍藏版)》请在冰豆网上搜索。
![C语言循环习题答案.docx](https://file1.bdocx.com/fileroot1/2023-1/12/a9cee80d-0f73-4612-a4b9-cea5909da5ac/a9cee80d-0f73-4612-a4b9-cea5909da5ac1.gif)
C语言循环习题答案
循环习题集锦
一.选择题
1.for(i=0;i<10;i++);结束后,i的值是;(10)
A9B10C11D122.下面程序的循环次数是:
(D)
intk=0;
while(k<10)
{if(k<1)continue;
if(k==5)break;
k++;
}
A.5B6C4D死循环,不能确定循环次数3.下面程序的输出结果是(10)main()
{
ints,k;
for(s=1,k=2;k<5;k++)
s+=k;
printf(“n%”d,s);
}
A1B9C10D15
4.要使下面程序输出10个整数,则在下画线处填入正确的数是:
(c)
for(i=0;i<=;)
Printf(“%d,i+=2);
A9B10C18D20
5.运行下面程序:
(B)
main()
{inti=10,j=0;
do
{j=j+i;
i--;
}while(i>5);
Printf(αr%d,j);
}
输出结果是:
55
A45B40C34D
6.运行下面程序
#irclude“stdio.h”
mair()
{intk=0,a=1;
while(k<10)
{
for(;;)
{if((k%10)==0)
break;
else
k--;
}
k+=11;
a+=k;
}
printf(“%dn%”d,k,a);
}
则输出的结果是(C)
A2132B2133C1112D10117.以下叙述正确的是:
(D)
A.do---while语句构成的循环不能用其他语句构成的循环来代替。
B.do---while语句构成的循环只能用break语句退出。
C.用do---while语句构成的循环,在while后的表达式为非零时结束循环。
D.用do---while语句构成的循环,在while后的表达式为零时结束循环。
8.有如下程序:
main()
{intx=3;
do{
printf(“%-d-”);,x
}while(!
x);
}该程序的执行结果是:
(C)
A321B210C3D2
9.若k为整型变量,则下面while循环执行的次数为:
(A)k=10;
while(k==0)k=k-1;
A0B1C10D无限次10.下面有关for循环的正确描述是(D)
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.在for循环中,不能用break语句跳出循环体。
D.for循环的循环体语句汇总,可以包含多条语句,但必须用花括号括起来。
11.对for(表达式1;;表达式3)可理解为(B)
Afor(表达式1;0;表达式3)
Bfor(表达式1;1;表达式3)
Cfor(表达式1;表达式1;表达式3)
Dfor(表达式1表达式2;表达式3)
12.若i为整型变量,则以下循环执行的次数是(B)
A.无限次B0次C1次D2次
13.以下循环体的执行次数是;(B)main()
{
intI,j;
for(i=0,j=3;i<=j;i+=2,j--)
printf(“n%”d,i);
}
A3B2C1D0
14.执行以下程序后,输出结果是:
(D)main()
{inty=10;
do{y--;}while(--y);
printf(“%-d-”);,y
}
A-1B1C8D0
15以下程序的输出结果是:
(C)mian()
{inta,b;
for(a=1,b=1;a<=100;a++)
{
if(b>=10)break;
if(b%3==1){b+=3;continue;}
}
printf(“%d”,a);
}
A101B3C4D5二、填空题
1.循环的3个常见语句分别是?
(for,while,do,break,continue)2.下面程序的运行结果为:
(14,26)
main()
{inta=10,y=0;
do
{a+=2;y+=a;if(y>50)break;
}while(a<14);
printf(“a=%d,y=n%”d,a,y);
}
3.从键盘输入12345-1回车,则下面程序运行的结果是:
(14,-1)main()
{intn,k=0;
do
{scanf(“%d”,&n);
k+=n;
}while(n!
=-1);
printf(“k=%d,n=%d”,k,n);
}
4.下面程序的运行结果为:
39(--i=1,i=2两次循环)main()
{inti,j,s=0;
for(i=1,j=5;is+=i*10+j;
printf(n%“d”,s);
}
5.下面程序的运行结果是19(i=9,s=9;i=6,s=15;i=3,s=18)
main()
{
inti=10,s=0;
for(;--i;)
if(i%3==0)
s+=i;
s++;
printf(ns“=%d”,s);
}
6.下面程序的运行结果是-22222(n=4,s=22;n=4,s=222;n=2,s=2222;n=1,s=22222)
main()
{inta=2,n=5,s;
s=a;
for(;--n;)
s=s*10+a;
printf(“%d”,s);
}
7•下面的程序运行时,循环体语句“a++”运行的次数为:
10
main()
{inti,j,a=0;
for(i=0;i<2;i++)
for(j=4;j>=0;j--)
a++;
}
8.下面的程序运行后,a的值为:
7
main()
{inti,j,a=0;
for(i=0;i<2;i++)a++;
for(j=4;j>=0;j--)a++;
}
9.下面程序的运行结果为:
(8)--(s=4,i=3;s=7,i=4;s=11,i=6;s=17,i=8)
inti=1,s=3;
do{
s+=i++;
if(s%7==0)continue;
else++i;
}while(s<15);
printf(“%d”,i);
10.当运行以下程序时,从键盘输入China#回车,则下面程序的运行结果是:
5,5
#include“stdio.h”
main()
{intv1=0,v2=0;
charc;
while((c=getchar())!
=?
#?
)
{switch(c)
{case,a?
:
case,h?
:
default:
v1++;
case,o?
:
v2++;
}
}
printf(“%d,n%”d,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!
ints=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
23
456
7890
6.编写程序输出下面图形
*
***
*****
*******
*****
***