C语言程序设计习题集第4章循环结构答案.docx

上传人:b****5 文档编号:7597447 上传时间:2023-01-25 格式:DOCX 页数:15 大小:21.86KB
下载 相关 举报
C语言程序设计习题集第4章循环结构答案.docx_第1页
第1页 / 共15页
C语言程序设计习题集第4章循环结构答案.docx_第2页
第2页 / 共15页
C语言程序设计习题集第4章循环结构答案.docx_第3页
第3页 / 共15页
C语言程序设计习题集第4章循环结构答案.docx_第4页
第4页 / 共15页
C语言程序设计习题集第4章循环结构答案.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C语言程序设计习题集第4章循环结构答案.docx

《C语言程序设计习题集第4章循环结构答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题集第4章循环结构答案.docx(15页珍藏版)》请在冰豆网上搜索。

C语言程序设计习题集第4章循环结构答案.docx

C语言程序设计习题集第4章循环结构答案

第4章循环结构

一、选择题

1、有以下程序段

intk=0;

while(k=1)k++;

while循环执行的次数是(A)

A)无限次B)有语法错,不能执行

C)一次也不执行D)执行1次

2、t为int类型,进入下面的循环之前,t的值为0while(t=1)

{……}

则以下叙述中正确的是(B)

A)循环控制表达式的值为0

B)循环控制表达式的值为1

C)循环控制表达式不合法

D)以上说法都不对

(B)

3、在C程序中,与while(m)中表达式m完全等价的是

A)m==0B)m!

=0C)m==1D)m!

=14、有以下程序,程序运行后的输出结果是(C)。

main()

{inti=1,sum=0;

while(i<=4)

{

sum=sum+i;

i=i+1;

}

printf(“%n”d,sum);}

A)4B)5C)10D)死循环

5、有以下程序,程序运行后的输出结果是(D)。

main(){inti=1,sum=0;

while(i<=4)sum=sum+i;

i=i+1;

printf(“%n”d,sum);

}

A)4B)5C)10D)死循环

6、有如下程序

main(){

intn=9;

while(n>6){n--;printf(“%d”,n);}

}

该程序段的输出结果是(B)

A)987B)876C)8765

D)9876

7、以下程序的输出结果是main()

{intnum=0;while(num<=2){num++;printf(}

%n”d,num);}

A)1B)1

22

33

4

8、有以下程序,若运行时输入main()

{floatx,y,z;

scanf(“%f%f”,&x,&y);z=x/y;

while

(1){

if(fabs(z)>1.0)

{

x=y;

y=z;z=x/y;}else

break;}

printf(“n%”f,y);}

A)1.500000B)1.6000009、执行以下程序段时

x=-1;

do

{x=x*x;}while(!

x);

则下面描述正确的是(A)

A)循环体将执行一次

C)循环体将执行无限次

10、有以下程序段其输出结果是intx=3;

do

{printf("%d",x-=2);}

while(!

(--x));

A)1B)30C)1-2D)

11、有如下程序main(){intx=23;

C)1D)l

2

3.62.4<回车>,则输出的结果是

C)2.000000D)2.400000

B)循环体将执行两次

D)系统将提示有语法错误

(C)

死循环

do

(B)。

 

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的值小于3D)P的值等于12345或者n的值大于等于313、以下不构成无限循环的语句或语句组是(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、有以下程序main(){

inty=9;

for(;y>0;y--)if(y%3==0)printf("%d",--y);

}程序的运行结果是(C)A)741B)963C)852D)875421

17、以下程序执行后sum的值是(C)

A)15B)14C)不确定D)0main()

{inti,sum;

for(i=1;i<6;i++)sum+=i;printf(“n%”d,sum);

}

18、有如下程序

main()

{inti,sum=0;for(i=1;i<=3;sum++)sum+=i;printf(“%n”d,sum);

}

该程序的执行结果是(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<6;x++)

printf((x%2)?

(“**%d”):

(”#n#”%d),x);

A)**3##4B)##3

**5**4##5

D)

**3##4

##5

21、有以下程序,执行后输出的结果是(A)。

main(){inti;

for(i=0;i<3;i++)switch(i)

{case1:

printf("%d",i);case2:

printf("%d",i);default:

printf("%d",i);

}

}

A)011122B)012C)012020D)120

22、有以下程序,程序运行后的输出结果是(C)。

main()

{intk=4,n=0;

for(;n

{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!

的程序段是(D)A)f=0;

for(i=1;i<=n;i++)f*=i;

B)f=1;

for(i=1;i

C)f=1;

for(i=n;i>1;i++)f*=i;

D)f=1;

for(i=n;i>=2;i--)f*=i;

24、执行下面程序片段的结果是(B)。

main()

{inta,b;

for(a=1,b=1;a<=100;a++)

{

if(b>=20)break;

if(b%3==1)

{

b+=3;continue;

}

b-=5;

}

printf(“%n”d,a);

}

A)7B)8C)9D)10

25、以下程序的输出结果是(B)。

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;

}

i+=11;a+=i;

}

printf("%d\n",a);

}

A)21B)32C)33D)11

26、以下程序的输出结果是(A)main()

{inti,j,x=0;

for(i=1;i<2;i++)

{x++;

for(j=0;j<=3;j++)

{if(j%2)continue;

x++;}

x++;}

printf(“x=%n”d,x);}A)x=4B)x=8C)x=6D)x=12

27、有以下程序

main()

inti,j;

for(i=3;i>=1;i--)

{

for(j=1;j<=2;j++)printf("%d",i+j);

printf("\n");

}

}

程序的运行结果是(D)

A)234B)432C)23

34554334

45

28、有以下程序

main()

{inti=5;

do

{

if(i%3==1)

if(i%5==2)

{printf("*%d",i);break;}

i++;

}while(i!

=0);

printf("\n");

}

程序的运行结果是(A)

A)*7B)*3*5C)*5

29、以下程序的结果是(A)

main()

{intn;

for(n=1;;)

{if(++n%2==0)continue;

if(++n%3==0)break;}

printf("n=%d",n);

}

A)n=6B)n=5C)n=4D)死循环

30

D)45

34

23

D)*2*6

、以下叙述中正确的是(C)

A)break语句只能用于switch语句题中

B)continue语句的作用是:

使程序的执行流程跳出包含它的所有循环

C)break语句只能用在循环体内和switch语句体内

D)在循环体内使用break语句和continue语句的作用相同

二、程序阅读题(共10题)

1、以下程序运行后的输出结果是52。

main()

{

inti=10,j=0;

do

{j=j+i;

i--;

}while(i>2);

printf(“%”,j);

}

2、设有以下程序:

main()

{

intn1,n2;

scanf(“%d,&n2);

while(n2!

=0)

{

n仁n2%10;

n2=n2/10;

printf(“%d',n1);

}

}

8921

程序运行后,如果从键盘上输入1298;则输出结果为

3、以下程序的输岀结果是5。

main()

{ints,i;

for(s=0,i=1;i<3;i++,s+=i);

printf("%d\n",s);

}

4、阅读下面程序,程序的结果是2,1,0。

main()

{inti=7;

for(i=2;i>0;i--)

printf(”%d”i);

printf(”%c”i);}

5、阅读下面程序,程序的结果是14,4。

main()

{inti,j,m=0;

for(i=2;i<=10;i+=4)for(j=3;j<=4;j++)

{m++;i++;}

printf("%d,%d",i,m);}

6、阅读下面程序,程序的结果是1978。

main()

{intj,a=2,n=4;

longs=O,t=O;

for(j=0;j

t=t*1O+a;

s=t;

for(j=1;j

{t=t/10;

s=s-t;}

printf(”%d,s);

}

7、以下程序运行后的输出结果是0918273645

main()

{

charc1,c2;

for(c仁'0',c2='9';c1

printf("%c%c",c1,c2);

printf("\n");

}

8、以下程序的输出结果是_5_。

main()

{

ints,i;

for(s=0,i=1;i<3;i++,s+=i);

printf("%d\n",s);

}

9、执行以下程序后,输出#号的个数是6。

main()

{inti,j;

for(i=1;i<5;i++)

for(j=2;j<=i;j++)putchar('#');

}

10、以下程序的输出结果是x=4

main()

{inti,j,x=0;

for(i=1;i<2;i++)

{x++;

for(j=0;j<=3;j++)

{if(j%2)continue;

x++;}

x++;}

printf(“x=%dn”,x);}

三、程序填空题

1、以下程序的功能是计算:

m=1-2+3-4+…+9-10,并输出结果。

请填空。

main()

{intm=0,f=1,i,n;

scanf(“%d,&n);

for(i=1;i<=n;i++)

{m+=i*f;

f=-f;

}

printf(“m=%'d,m)

}

2、以下程序的功能是计算s=1+1/2!

+1/3!

+1/4!

+…+1/n!

,请填空。

main()

{

doubles=0.0,fac=1.0;inti;

intn;

scanf(“%d,&n);

for(i=1,i<=n;i++)

{fac=fac*1.0/i;

s=s+fac;

}

printf(“s=%lf”,s);

}

3、以下程序的功能是计算:

s=1+12+123+1234+12345。

请填空。

main()

{intt=0,s=0,i;

for(i=1;i<=5;i++)

{t=i+t*10;s=s+t;}

printf("s=%d\n",s);

}

4、要使以下程序段输出10个整数,请填入一个整数。

for(i=0;i<=18;printf("%”,i+=2));

5、以下函数的功能是:

求x的y次方,请填空。

doublefun(doublex,inty)

{inti;

doublez;

for(i=1,z=x;i

returnz;

}

6、以下程序的功能是根据以下近似公式求n值:

(n*n)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n)

现在请你在下面的函数中填空,完成求n的功能。

main(){

doubles=0.0;longi,n;

scanf(“%ld”,&n);

for(i=1;i<=n;i++)s=s+1.0/(i*i);

printf(“%lf”,sqrt(6*s));

}

7、以下用来输出两整数M和N之间的所有素数(质数),请填空,使程序能正确运行。

#defineM4

#defineN30

main()

{

inti,j,k,s=0;

for(i=M;i<=N;i++)

{for(j=2;j<_J—;j++)

if(i%j==0)break;

if(j>=i)

{printf("%5d",i);

s=s+1;

if(s%5==0)printf("\n");

}

}

printf("\n");}

8、以下程序实现:

从键盘输入一位整数,计算其各位数字之和。

比如输入整数31421,则

打印结果为11。

请填空。

main(){

inti,sum=O,a;

scanf("%d",&i);

while(i>0){

a=i%10;

sum+=a;

i=i/10;

}

printf("%d\n",sum);

}

9、以下程序实现:

计算1~10之间(不含10)的奇数之和以及偶数之和

main()

{

inta,b,i;

a=b=O;

for(i=0;i<10;i+=2)

{

a=a+i:

b=b+i+1:

}

printf("偶数为:

%d,奇数和为:

%d\n",a,b);

}

10、以下程序的功能是:

输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。

main()

inti,j;

for(i=0;i<10;i++){

j=i*10+6;

if(j%3==0)continue;

printf(“%d”,j);

}

}

四、编程题

m,输出1至Um(含m)能被7或11

m为50,则程序输出7、11、14、

5。

1、写一个程序,程序的功能是:

从键盘输入一个整数整除的所有整数,并计算出这些数的个数。

例如:

如果

21、22、28、33、35、42、44、49共11个数。

2、计算100到1000间有多少个数其各位数字之和是

3、从键盘输入整数n,输出1+3+5+7+…前n项的和(输入的*=10)

4、编写程序,实现如下图形12

123

123412345

5、打印100-999以内所有满足条件的数。

条件为,这个数等于其个位数,十位数,百位数立方和,如153=1*1*1+5*5*5+3*3*3

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1