第4章 循环结构答案Word格式.docx
《第4章 循环结构答案Word格式.docx》由会员分享,可在线阅读,更多相关《第4章 循环结构答案Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
222
33
4
8、有以下程序,若运行时输入<
回车>
,则输出的结果是(B)。
{floatx,y,z;
scanf(“%f%f”,&
x,&
y);
z=x/y;
while
(1){
if(fabs(z)>
{
x=y;
y=z;
else
break;
printf(“%f\n”,y);
A)B)1.600000C)D)
9、执行以下程序段时
x=-1;
do
{x=x*x;
}
while(!
x);
则下面描述正确的是(A)
A)循环体将执行一次B)循环体将执行两次
C)循环体将执行无限次D)系统将提示有语法错误
10、有以下程序段其输出结果是(C)
intx=3;
do
{printf("
%d"
x-=2);
}
while(!
(--x));
A)1B)30C)1-2D)死循环
11、有如下程序
intx=23;
{
printf(“%d”,x);
x--;
}while(!
x);
该程序的执行结果是(B)
A)321B)23C)不输出任何内容D)陷入死循环
12、有以下程序段
intn=0,p;
do{scanf(“%d”,&
p);
n++;
}while(p!
=12345&
&
n<
3);
此处do—while循环的结束条件是(D)
A)P的值不等于12345并且n的值小于3
B)P的值等于12345并且n的值大于等于3
C)P的值不等于12345或者n的值小于3
D)P的值等于12345或者n的值大于等于3
13、以下不构成无限循环的语句或语句组是(A)
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;
14、若i为整型变量,则以下循环执行的次数是(B)
for(i=2;
i==0;
)printf(“%d”,i--);
A)无限次B)0次C)1次D)2次
15、执行语句for(i=1;
i++<
4;
)后,变量i的值是(C)
A)3B)4C)5D)不定
16、有以下程序
inty=9;
for(;
y>
0;
y--)
if(y%3==0)printf("
--y);
程序的运行结果是(C)
A)741B)963C)852D)875421
17、以下程序执行后sum的值是(C)
A)15B)14C)不确定D)0
{inti,sum;
for(i=1;
i<
6;
i++)sum+=i;
printf(“%d\n”,sum);
18、有如下程序
{inti,sum=0;
for(i=1;
=3;
sum++)sum+=i;
该程序的执行结果是(C)
A)6B)3C)死循环D)0
19、执行语句for(i=3;
i>
0;
i--);
i--;
后,变量i的值是(C)
A)0B)10C)-1D)1
20、执行下面程序片段的结果是(A)。
intx;
for(x=3;
x<
x++)
printf((x%2)(“**%d”):
(”##%d\n”),x);
A)**3##4B)##3
**5**4##5
C)##3**4D)**3##4
**5##5
21、有以下程序,执行后输出的结果是(A)。
{inti;
for(i=0;
3;
i++)
switch(i)
{case1:
printf("
i);
case2:
default:
A)011122B)012C)012020D)120
22、有以下程序,程序运行后的输出结果是(B)。
{intk=4,n=0;
for(;
n<
k;
)
{n++;
if(n%3!
=0)continue;
k--;
printf("
%d,%d\n"
k,n);
A)1,1B)2,2C)3,3D)4,4
23、设变量已正确定义,则以下能正确计算f=n!
的程序段是(A)
A)f=0;
=n;
i++)f*=i;
B)f=1;
for(i=1;
n;
i++)f=f*i;
C)f=1;
for(i=n;
1;
D)f=1;
for(i=n;
=2;
i--)f*=i;
24、执行下面程序片段的结果是(B)。
{inta,b;
for(a=1,b=1;
a<
=100;
a++)
if(b>
=20)
if(b%3==1)
b+=3;
continue;
b-=5;
printf(“%d\n”,a);
A)7B)8C)9D)10
25、以下程序的输出结果是(B)。
{inti=0,a=0;
while(i<
20)
{for(;
;
)
{if((i%10)==0)break;
elsei--;
i+=11;
a+=i;
%d\n"
a);
A)21B)32C)33D)11
26、以下程序的输出结果是(A)
main()
{inti,j,x=0;
2;
i++)
{x++;
for(j=0;
j<
j++)
{if(j%2)continue;
x++;
x++;
printf(“x=%d\n”,x);
A)x=4B)x=8C)x=6D)x=12
27、有以下程序
inti,j;
for(i=3;
=1;
i--)
{
for(j=1;
j++)
printf("
i+j);
printf("
\n"
);
程序的运行结果是(D)
A)234B)432C)23D)45
3455433434
4523
28、有以下程序
{inti=5;
do
if(i%3==1)
if(i%5==2)
{printf("
*%d"
i++;
}while(i!
=0);
\n"
);
程序的运行结果是(A)
A)*7B)*3*5C)*5D)*2*6
29、以下程序的结果是(A)
{intn;
for(n=1;
{if(++n%2==0)continue;
if(++n%3==0)break;
n=%d"
n);
A)n=6B)n=5C)n=4D)死循环
30、以下叙述中正确的是(C)
A)break语句只能用于switch语句题中
B)continue语句的作用是:
使程序的执行流程跳出包含它的所有循环
C)break语句只能用在循环体内和switch语句体内
D)在循环体内使用break语句和continue语句的作用相同
二、程序阅读题(共10题)
1、以下程序运行后的输出结果是52。
inti=10,j=0;
{j=j+i;
i--;
}while(i>
2);
printf(“%d\n”,j);
2、设有以下程序:
intn1,n2;
scanf(“%d”,&
n2);
while(n2!
=0)
n1=n2%10;
n2=n2/10;
printf(“%d”,n1);
程序运行后,如果从键盘上输入1298;
则输出结果为8921。
3、以下程序的输出结果是5。
{ints,i;
for(s=0,i=1;
i++,s+=i);
s);
4、阅读下面程序,程序的结果是2,1,0。
{inti=7;
for(i=2;
i--)
printf(”%d,”,i);
printf(”%d”,i);
5、阅读下面程序,程序的结果是14,4。
main()
{inti,j,m=0;
=10;
i+=4)
for(j=3;
=4;
j++)
{m++;
i++;
%d,%d"
i,m);
6、阅读下面程序,程序的结果是1978。
{intj,a=2,n=4;
longs=0,t=0;
t=t*10+a;
s=t;
for(j=1;
n-1;
{t=t/10;
s=s-t;
printf(”%d”,s);
7、以下程序运行后的输出结果是05
charc1,c2;
for(c1='
0'
c2='
9'
c1<
c2;
c1++,c2--)
%c%c"
c1,c2);
8、以下程序的输出结果是5。
ints,i;
9、执行以下程序后,输出'
#'
号的个数是6。
{inti,j;
i<
5;
i++)
for(j=2;
j<
=i;
j++)putchar('
10、以下程序的输出结果是x=4
三、程序填空题
1、以下程序的功能是计算:
m=1-2+3-4+…+9-10,并输出结果。
请填空。
main()
{intm=0,f=1,i,n;
n);
{m+=i*f;
f=-f;
printf(“m=%d”,m)
2、以下程序的功能是计算s=1+1/2!
+1/3!
+1/4!
+…+1/n!
,请填空。
doubles=,fac=;
inti;
intn;
scanf(“%d”,&
for(i=1,i<
{fac=fac*i;
s=s+fac;
printf(“s=%lf”,s);
3、以下程序的功能是计算:
s=1+12+123+1234+12345。
{intt=0,s=0,i;
for(i=1;
=5;
{t=i+t*10;
s=s+t;
s=%d\n"
4、要使以下程序段输出10个整数,请填入一个整数。
=18;
printf(“%d\n”,i+=2));
5、以下函数的功能是:
求x的y次方,请填空。
doublefun(doublex,inty)
doublez;
for(i=1,z=x;
y;
i++)z=z*y;
returnz;
6、以下程序的功能是根据以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n)
现在请你在下面的函数中填空,完成求π的功能。
doubles=;
longi,n;
scanf(“%ld”,&
i++)s=s+(i*i);
printf(“%lf”,sqrt(6*s));
7、以下用来输出两整数M和N之间的所有素数(质数),请填空,使程序能正确运行。
#defineM4
#defineN30
{
inti,j,k,s=0;
for(i=M;
=N;
{for(j=2;
i;
j++)
if(i%j==0)break;
if(j>
=i)
{printf("
%5d"
i);
s=s+1;
if(s%5==0)printf("
}
8、以下程序实现:
从键盘输入一位整数,计算其各位数字之和。
比如输入整数31421,则打印结果为11。
main(){
inti,sum=0,a;
scanf("
&
i);
while(i>
0){
a=i%10;
sum+=a;
i=i/10;
sum);
9、以下程序实现:
计算1~10之间(不含10)的奇数之和以及偶数之和
inta,b,i;
a=b=0;
10;
i+=2)
a=a+i;
b=b+i+1;
偶数为:
%d,奇数和为:
a,b);
10、以下程序的功能是:
输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。
inti,j;
for(i=0;
10;
i++){
j=i*10+6;
if(j%3==0)continue;
printf(“%d”,j);
}
四、编程题
1、写一个程序,程序的功能是:
从键盘输入一个整数m,输出1到m(含m)能被7或11
整除的所有整数,并计算出这些数的个数。
例如:
如果m为50,则程序输出7、11、14、
21、22、28、33、35、42、44、49共11个数。
2、计算100到1000间有多少个数其各位数字之和是5。
3、从键盘输入整数n,输出1+3+5+7+…前n项的和(输入的n<
=10)
4、编写程序,实现如下图形
1
12
123
1234
12345
5、打印100-999以内所有满足条件的数。
条件为,这个数等于其个位数,十位数,百位数立方和,如153=1*1*1+5*5*5+3*3*3