第五章 循环结构 习题与答案Word文件下载.docx

上传人:b****5 文档编号:20379777 上传时间:2023-01-22 格式:DOCX 页数:17 大小:20.53KB
下载 相关 举报
第五章 循环结构 习题与答案Word文件下载.docx_第1页
第1页 / 共17页
第五章 循环结构 习题与答案Word文件下载.docx_第2页
第2页 / 共17页
第五章 循环结构 习题与答案Word文件下载.docx_第3页
第3页 / 共17页
第五章 循环结构 习题与答案Word文件下载.docx_第4页
第4页 / 共17页
第五章 循环结构 习题与答案Word文件下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

第五章 循环结构 习题与答案Word文件下载.docx

《第五章 循环结构 习题与答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《第五章 循环结构 习题与答案Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。

第五章 循环结构 习题与答案Word文件下载.docx

A)987B)876

C)8765D)9876

7)在下列选项中,没有构成死循环的是()

A)inti=100;

B)for(;

;

);

while

(1)

{i=i%100+1;

if(i>

100)break;

C)intk=10000;

D)ints=36;

do{k++;

}while(k>

10000);

while(s)--s;

8)以下程序中循环体总的执行次数是()

inti,j;

for(i=6;

i>

i--)

for(j=0;

j<

i;

j++)

{……}

A)20B)261

C)15D)25

9)已知

intt=0;

while(t=1)

{...}

则以下叙述正确的是()

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

C)循环控制表达式不合法D)以上说法都不对

10)以下程序的输出结果是()

{inti,j,x=0;

for(i=0;

i<

2;

i++)

{x++;

3;

{if(j%2)continue;

x++;

}

printf(″x=%d\n″,x);

A)x=4B)x=8

C)x=6D)x=12

11)下列说法正确的是()

inti,x;

for(i=0,x=0;

=9&

&

=876;

scanf(″%d″,x);

A)最多的执行10次B)最多执行9次

C)是无限循环D)循环体一次也不执行

12)下面程序的运行结果是()

#include<

{inty=10;

do{y--;

}while(--y);

printf(″%d\n″,y--);

A)-1B)1

C)8D)0

13)以下程序的输出结果是()

{inta,i;

a=0;

for(i=1;

5;

{switch(i)

{case0:

case3:

a+=2;

case1:

case2:

a+=3;

default:

a+=5;

}printf(″%d\n″,a);

A)31B)13

C)10D)20

14)下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,在划线处应填入的语句是()

{inta,b,t;

scanf(″%d%d″,&

a,&

b);

while(______)

{if(a>

b)

{t=a;

a=b;

b=t;

printf(″%d%d\n″,a,b);

A)!

a=bB)a!

=b

C)a==bD)a=b

15)下面程序的运行结果是()

{inta=1,b=10;

do

{b-=a;

a++;

}while(b--<

0);

printf(″a=%d,b=%d\n″,a,b);

A)a=3,b=11B)a=2,b=8

C)a=1,b=-1D)a=4,b=9

二、填空题

1)该程序的功能是:

统计所有小于等于x(x>

2)的素数的个数,例如,输入x=20,结果:

2,3,5,7,11,13,17,19。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

不得增行或删行,也不得更改程序的结构!

{intx,i,j,count=0;

scanf(“%d”,&

for(i=2;

=x;

{

for(___1___;

if(___2___%j==0)

break;

if(___3___>

=i)

{count++;

printf(count%15?

"

%5d"

:

\n%5d"

i);

printf("

\nThenumberofprimeis:

%d\n"

count);

2)该程序的功能是:

计算n!

,即1*2*3*4*…*n

{

intn,i;

ints=__1__;

scanf("

%d"

&

n);

=__2__;

s=s*__3__;

s);

3)该程序的功能是:

统计个位数是5,且能被7整除的四位数及其个数。

{inti,n=__1__;

for(i=1000;

=9999;

if(i__2__==5&

i%7==0)

{n++;

%d\n"

个数为%d"

__3__);

4)该程序的功能是:

百马拉百砖。

用100匹马拉100块砖,红马拉3块,黑马拉2块,白马两匹拉1块,在红马、黑马和白马不可缺少的情况下,共有几种拉法?

{intr,b,w,sum=0;

for(r=1;

r<

=34;

r++)

{for(b=1;

b<

=50;

b++)

{w=__1__;

if(w__2__2==0&

w>

0)

{sum++;

%d%d%d\n"

r,b,w);

}

printf("

\nsum=%d\n"

5)该程序的功能是:

在屏幕上打印如下两个图形,要求图形2的第一行的“*”在第40列输出。

**

******

**********

**************

******************

图形1图形2

图形1程序:

{inti,j;

=__1__;

{for(j=1;

__3__"

\n"

图形2程序:

{inti,j,k;

=5;

{for(k=1;

k<

k++)

for(j=1;

*"

6)该程序的功能是:

求出1000以内的所有完全数。

若一个数恰好等于它的因子之和(除自身外),则称该数为完全数,例如:

6=1+2+3,故6是完全数。

{inti,j,t;

=1000;

{t=__1__;

if(__2__==0)t=t+j;

if(__3__==i)printf("

%6d"

三、改错题

1)下列给定程序的功能是:

求三个数的最小公倍数。

例如,给变量a、b、c分别输入15、11、2,则输出结果应当是330。

请改正程序中的错误,使其能得到正确的结果。

不要改动main函数,不能增行或删行,也不得更改程序的结构。

{inta,b,c,i,temp,n,m;

Inputabc:

%d%d%d"

b,&

c);

a=%d,b=%d,c=%d\n"

a,b,c);

/*******found*********/

i=1;

temp=m=n=1;

/********found********/

while(temp!

=0&

m!

n!

=0)

{i=i+1;

temp=i%a;

m=i%b;

n=i%c;

printf("

Theminimalcommonmultipleis:

2)下列给定程序的功能是:

计算正整数num的各位上的数字之积。

例如,若输入252,则输出应该是20;

若输入202,则输出应该是0。

请改正程序中的错误,使其能得出正确的结果。

{/**********found**********/

longn,k;

\Pleaseenteranumber:

"

%ld"

{k*=n%10;

/**********found**********/

n\=10;

}while(n);

\n%ld\n"

k);

3)下列给定程序的功能是:

计算1到100之间是8的倍数的数值之和。

{inti;

/**********found***********/

intsum=1;

=100;

if(i/8==0)sum=sum+i;

%f"

sum);

4)下列给定程序的功能是:

利用下面公式求π的近似值:

π2/6=1/12+1/22+1/32+1/42+…,直到某项绝对值不大于10-12为止。

math.h>

{doublen,sum=0,pa,cj;

n=0;

while(1/(n*n)>

pow(10,-12))

{sum=1/(n*n);

n++;

cj=sum;

pa=sqrt(cj);

pa);

5)下列给定程序的功能是:

求两个整数的最大公约数。

求法:

拿一个整数去除另一个整数取余,然后拿被除数去除以余数,直到余数为0,此时的被除数即为最大公约数。

{intm,n,r;

请输入两个整数m,n:

%d%d"

m,n);

r=m/n;

while(r!

{m=n;

n=m;

r=m%n;

最大公约数是:

n);

6)下列给定程序的功能是:

统计从键盘上输入的字符中大写字母、小写字母、数字字符、其它字符的个数,用换行符结束循环。

#include<

{intdx=0,xx=0,sz=0,qt=0;

charch;

%c"

ch);

while(ch!

='

\n'

{/**********found***********/

for(ch>

=65&

ch<

=90)dx++;

elseif(ch>

97'

&

122'

)xx++;

=48&

=57)sz++;

elseqt++;

%d%d%d%d"

dx,xx,sz,qt);

四、编程题

1)根据以下公式计算S:

S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…n)例如:

若n的值为11时,函数的值为:

1.833333。

2)编写程序,其功能是:

输出1到1000之间所有的同构数,所谓同构数指

一个数出现在它的平方数的右边,如5的平方是25,5出现在25的右边,25的平方是625,25出现有625的右边,因此5和25都是同构数。

3)编写程序,其功能是:

求100~999之间的水仙花数。

所谓“水仙花数”是指一个数,其各位数字立方和等于该数本身。

例如153就是一水仙花数。

4)编写程序,其功能是:

编写程序,其功能是:

求fibonacci数列的前20项。

第一项和第二项都是1,从第三项开始往后每一项都是相邻的前两项之和,如:

1,1,2,3,5,8,13……

5)编写程序,其功能是:

猴子吃桃问题。

猴子第一天摘下若干个桃子,立即吃了一半,还不过瘾又多吃了一个,第二天将第一天剩下的桃子吃了一半又多吃了一个,以后每天以这个规律吃下去,到第十天再去吃时发现只剩下一个桃子,问猴子第一天摘了多少个桃子。

第五章循环结构答案

1)D2)B3)C4)C5)B6)B7)D8)A9)B10)B

11)A12)D13)A14)B15)B

1、①j=2②i③j

2、①1②n③i

3、①0②%10③n

4、①(100-3*r-2*b)/2;

②%③sum

5、图形1:

①5②2*i-1③*

图形2:

①41-i②2*i-1③\n

6、①0②i%j③t

1、①将i=1;

改为:

i=0;

②将while(temp!

=0)改为:

while(temp!

=0||m!

=0||n!

2、①将longk;

改为:

longk=1;

或longk;

k=1;

②将n\=10;

n/=10;

3、①将intsum=1;

intsum=0;

②将if(i/8==0)sum=sum+i;

nif(i%8==0)sum=sum+i;

③将printf("

改为:

4、①将n=0;

n=1;

②将sum=1/(n*n);

sum+=1.0/(n*n);

③将cj=sum;

cj=6*sum;

5、①将scanf("

m,n);

scanf("

m,&

②将r=m/n;

r=m%n;

③将n=m;

n=r;

6、①将for(ch>

if(ch>

②将(ch>

=’97’&

=’122’)改为:

(ch>

=97&

=122)

③将printf("

scanf("

1、#include<

main()

{intn;

intt=0,k;

floats=0.0;

\nPleaseenterN:

&

for(k=1;

k<

=n;

k++)

{t+=k;

s+=1.0/t;

theresultis:

%f\n"

s);

2、方法一:

inti,m;

{m=i*i;

if(m%10==i||m%100==i||m%1000==i)

方法二:

{inti,m,n;

{m=i*i;

n=i;

while(n!

{if(n%10==m%10){n=n/10;

m=m/10;

elsebreak;

if(n==0)printf("

3、方法一:

{inti;

inta,b,c;

for(i=100;

=999;

{a=i%10;

b=(i/10)%10;

c=i/100;

if(i==a*a*a+b*b*b+c*c*c)printf("

{inti,g,m;

intsum;

{m=i;

sum=0;

while(m!

{g=m%10;

sum=sum+g*g*g;

if(sum==i)printf("

4、方法一:

{inti,f1,f2,f;

f1=1;

f2=1;

%10d%10d"

f1,f2);

for(i=3;

=20;

{f=f1+f2;

%10d"

f);

f1=f2;

f2=f;

{inti,f1,f2;

=9;

{f1=f1+f2;

f2=f1+f2;

5、

{inti,n;

n=1;

for(i=9;

=1;

n=(n+1)*2;

桃子个数为:

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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