循环结构程序设计习题答案.docx

上传人:b****8 文档编号:12677465 上传时间:2023-06-07 格式:DOCX 页数:18 大小:19.60KB
下载 相关 举报
循环结构程序设计习题答案.docx_第1页
第1页 / 共18页
循环结构程序设计习题答案.docx_第2页
第2页 / 共18页
循环结构程序设计习题答案.docx_第3页
第3页 / 共18页
循环结构程序设计习题答案.docx_第4页
第4页 / 共18页
循环结构程序设计习题答案.docx_第5页
第5页 / 共18页
循环结构程序设计习题答案.docx_第6页
第6页 / 共18页
循环结构程序设计习题答案.docx_第7页
第7页 / 共18页
循环结构程序设计习题答案.docx_第8页
第8页 / 共18页
循环结构程序设计习题答案.docx_第9页
第9页 / 共18页
循环结构程序设计习题答案.docx_第10页
第10页 / 共18页
循环结构程序设计习题答案.docx_第11页
第11页 / 共18页
循环结构程序设计习题答案.docx_第12页
第12页 / 共18页
循环结构程序设计习题答案.docx_第13页
第13页 / 共18页
循环结构程序设计习题答案.docx_第14页
第14页 / 共18页
循环结构程序设计习题答案.docx_第15页
第15页 / 共18页
循环结构程序设计习题答案.docx_第16页
第16页 / 共18页
循环结构程序设计习题答案.docx_第17页
第17页 / 共18页
循环结构程序设计习题答案.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

循环结构程序设计习题答案.docx

《循环结构程序设计习题答案.docx》由会员分享,可在线阅读,更多相关《循环结构程序设计习题答案.docx(18页珍藏版)》请在冰点文库上搜索。

循环结构程序设计习题答案.docx

循环结构程序设计习题答案

循环结构程序设计习题答案

一"、单选题。

1.下面有关for循环的正确描述是()

A.for循环只能用于循环次数已经确定的情况

B.for循环是先执行循环体语句,后判定表达式

C.在for循环中,不能用break语句跳出循环体

D.for循环体语句中,可以包含多条语句,但要用花括号括起来

[解答]:

Do

2.对于for(表达式1;;表达式3)可理解为()

A.for(表达式1;1;表达式3)

B.for(表达式1:

1;表达式3)

C.for(表达式1;表达式1;表达式3)

D.for(表达式1;表达式3;表达式3)

[解答]:

Bo

3.以下正确的描述是()。

A.continue语句的作用是结束整个循环的执行

B.只能在循环体内和switch语句体内使用break语句

C.在循环体内使用break语句或continue语句的作用相同

D.从多层循环嵌套中退出时,只能使用goto语句

[解答]:

Bo

4.C语言中()。

A.不能使用do-while语句构成的循环

B.do-while语句构成的循环必须用break语句才能退出

C.do-whiLe语句构成的循环,当while语句中的表达式值为非零时结束循环

D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环[解答]:

Do

5.C语言中while和do-while循环的主要区别是()

A.do-while的循环体至少无条件执行一次

B.while的循环控制条件比do—while的循环控制条件严格

C.do-while允许从外部转到循环体内

D.do-while的循环体不能是复合语句

[解答]:

A。

6.下面程序段不是死循环的是()。

A.intI=100;B.for(;;);

while

(1)

{I=I%100+1;

if(I>100)break;

 

D.ints=36;

while(s);

--s;

*10的程序是()。

B.do{i=1;s=0;

s=s*i;

i++;}while(i<=10);

D.i=1;s=0;

do{s=s*i;

i++;

}while(i<=10);

C.intk=0;

do{++k;}

while(k>=0);

[解答]:

Co

7.以下能正确计算1*2*3*

A.do{i=1;s=1;

s=s*i;i++;

}while(i<=10);

C.i=1;s=1;

do{s=s*i;

i++;

}while(i<=10);

[解答]:

Co

8.下面程序的运行结果是()。

#include

voidmain()

{inty=10;

do{y--;}

while(--y);

printf("%d\n",y--);}

A.-1B.1C

[解答]:

Bo

9.下面程序的运行结果是()。

#include

voidmain()

{intnum=0;

while(num<=2)

{num++;

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

}

}

123D.1234

A.1B.12C

[解答]:

Co

10.若运行以下程序时,从键盘输入3.62.4

结果是()。

#include

#include

voidmain()

{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("%f\n",y);

}

A.1.500000B.1.600000C.2.000000D.2.400000[解答]:

Bo

二、看程序,写运行结果。

1.若运行以下程序时,从键盘输入2473/,则下面程序的运行结果是()。

#include

voidmain()

{intc;

while((c=getchar())!

='n')

switch(c-'2')

{case0:

case1:

putchar(c+4);case2putchar(c+4);break

case3:

putchar(c+3);

default:

putchar(c+2);break;

}

printf("\n”);

}

[解答]:

668977。

2.若运行以下程序时,从键盘输入ADescriptor/,则下面程序的运行结果是()。

#include

voidmain()

{charc;

Intv0=0,v1=0,v2=0;

do{

switch(c=getchar())

{case

'a'

case'

A:

case'

e':

case'

E

case'

■,i

case'

I':

case'

o':

case'

O:

case’

u':

case’

U':

v+=1;

default

:

v0+=1;v2+=1;}

}while(c!

=n);

printf("v0=%d,v1=%d,v2=%d\n”,v0,v1,v2);

}

[解答]:

v0=12,v1=4,v2=12。

3.下面程序的运行结果是()。

#include

voidmain()

{inti,b,k=0;

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

{b=i%2;

while(b-->=0)k++;

}

printf("%d,%d,k,b);

}

[解答]:

8,-2。

4.下面程序的运行结果是()。

#include

voidmain()

{inta,b;

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

{if(b>=20)break;

if(b%3==1){b+=3;continue;}

b-=5;

}

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

}

[解答]:

8。

5.下面程序的运行结果是()。

#include

voidmain()

{inti,j,x=0;

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

{x++;

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

{if(j%2)continue;

x++;

}

x++;

}

printf("x=%d\n”,x);

[解答]:

x=8o

6.下面程序的运行结果是()。

#include

voidmain()

{inti;

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

{if(i%2)printf("*");

elsecontinue;

printf("#");

}

printf("$\n");

}

[解答]:

*#*#*#$。

7.下面程序的运行结果是()。

#include

voidmain()

{inti,j,a=0;

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

{for(j=0;j<4;j++)

{if(j%2)break;

a++;

}

a++;

}

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

}

[解答]:

4。

8.下列程序运行后的输出结果是()

#include

voidmain()

{

inti,j,k;

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

{

for(j=1;j<=20-3*i;j++)printf("");

for(k=1;k<=2*i-1;k++)

printf("%3s","*");

printf("\n");

}

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

for(j=1;j<=20-3*i;j++)

printf("");

for(K=1;k<=2*i-1;k++)

printf("%3s","*");

printf("\n");

}

}

[解答]:

*

***

*****

*******

*****

***

*

9.下列程序运行后的输出结果是()

#include

voidmain()

inti,j,k;

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

for(j=1;j<=20-3*j;j++)

printf("%3d",k);

for(k=i-1;k>0;k--)

printf("%3d",k);

printf("\n"0);

}

}

[解答]:

1

121

12321

1234321

123454321

12345654321)

三、程序填空。

1.下面程序的功能是将小写字母变成对应的大写字母后的第二个字母,其中y变成A,z

变成B,请在内填入正确内容。

#include

voidmain()

charc;

while((c=getchar())!

='n')

{if(c>='a'&&c<=z')

{_

for(c>'Z"&&c<=Z"+2);

}printf("%c,c);

}

}

[解答]:

c-=30,c-=26。

2.下面程序的功能是将从键盘输入的一组字符中统计出大写字母的个数m和小写字母的

个数n,并输入m,n中的较大数,请在内填入正确内容。

#includevoidmain(){

intm=0,n=0;

charc;

while(()!

='n')

{if(c>='A&&c<=Z')m++;

if(c>='a,&&c<=z,)n++;

}

printf("%d\n",m

);

}

[解答]:

c=getchar(),n:

m

3.下面程序的功能是把316表示为两个加数分别能被13和11整除。

请在内填入正

确内容。

#includevoidmain()

{

inti=0,j,k;

do{i++;k=316-13*i;}

while();

j=k/11;

printf("316=13*%d+11*%d,i,j);

}

[解答]:

k%11。

4.从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束。

请在内填入正确内容。

#include

voidmain()

{

floatx,amax,amin;

scanf(%f",&x);

amax=x;

amin=x;

while()(

if(x>amax)

amax=x;

if()amin=x;

scanf(%f",&x);

printf("amax=%f\namin=%f\n",amax,amin);

[解答]:

x>=0,x

5.求算式xyz+yzz=532中x,y,z的值(其中xyz和yzz分别表示一个三位数)。

请在

内填入正确内容。

#include

voidmain()

intx,y,z,i,result=532;

for(x=1;;x++)

for(y=1;;y++)

for(z=0;;z++)(

i=100*x+10*y+z+100*y+10*z+z;

if()

printf("x=%d,y=%d,z=%d\n",x,y,z);

[解答]:

x<10,y<10,z<10,i==result。

6.根据公式e=1+1/1!

+1/2!

+1/3!

+,求e的近似值,精度要求为10-6。

请在内填入正

确内容。

#include

voidmain()

inti;doublee,new;

e=1.0;new=1.0;

for(i=1;;i++)

;

)printf("e=%f\n",e)

[解答]:

new>=1e-6,new/=(double)i,e+=new

7.完成用一元人民币换成一分、两分、五分的所有兑换方案。

请在内填入正确内容。

#include

voidmain(){

inti,j,k,l=1;

for(i=0;i<=20;i++)

for(j=0;;j++)

{;

if(k>=0)

{printf("%2d,%2d,%2d",i,j,k);

;

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

))

[解答]:

j<=50,k=100-i*5-j*2,l=l+1。

8.统计正整数的各位数字中零的个数,并求各位数字中的最大者。

请在内填入正确内容。

#include

voidmain(){

intn,count,max,t;

count=max=0;

scanf("%d,&n);do

{

;

if()

++count;

elseif()

max=t;

}while(n);

printf("count=%d,max=%d',count,max);

}

[解答]:

t=n%10,t==0,max

四、编程题。

1.根据公式口2/6~1/12+1/22+1/32+,+1/n2,求口的近似值,直到最后一项的值小于10

的负六次方为止。

[解答]:

#include

#include

main()

{longi=1;

doublepi=0;

while(I*I<=10e+6)

{pi=pi+1.0/(i*i);

i++;

}

pi-sqrt(6.0*pi);

printf("pi=%10.6f\n",pi);

}

2.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天后可以卖完,请编程计算。

[解答]:

#include

main()

{intday,x1,x2;

day=0;x1=1020;

while(x1){x2=(x1/2-2);x1=x2;day++;}printf("day=%d\n",day);

}

3.编程实现用“辗转相除法”求两个正整数的最大公约数。

[解答]:

#include

main()

{intr,m,n;

scanf("%d%d,&m,&n);

if(m

r=m%n;

while(r){m=n;n=r;r=m%n;}printf("%d\n",n);

}

4.等差数列的第一项a=2,公差d=3,编程实现在前n项和中,输出能被4整除的所有的和。

[解答]:

#include

main()

{inta,d,sum;

a=2;d=3;sum=0;

do

{sum+=a;

a+=d;

if(sum%4==0printf("%d\n",sum);

}while(sum<200);

5.求出用数字0至9可以组成多少个没有重复的三位偶数。

[解答]:

#include

main()

{intn,i,j,k;

n=0;

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

if(k=0;k<=8;k+=2)if(k!

=i)

for(j=1;j<9;j++)if(j!

=i&&j!

=k)

n++;printf("n=%d\n”,n);

}

6.输出1至100之间每位数的乘积大于每位数的和的数。

[解答]:

#includemain()

{intn,k=1,s=0,m;

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

{k=1;s=0;

m=n;

while(m)

{k*=m%10;

s+=m%10;

m/=10;

}

if(k>s)printf("%d,n);

}

}

7.下面程序的功能是求1000以内的所有完全数。

(说明:

一个数如果恰好等于它的因子之

和(除自身外),则称该数为完全数,例如:

6=1+2+3,6为完全数)

[解答]:

#include

main()

{inta,i,m;

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

{for(m=0,i=1;i<=a/2;i++)if(!

(a%i))m+=i;

if(m==a)printf("%4d',a);

))

8.有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。

求这堆零件总数。

[解答]:

#includemain(){inti;

for(i=100;i<200;i++)

if((i-2)%4==0)

if(!

((i-3)%7))

if((i-5)%9!

=0)

printf("%d',i);

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2