上机实验五 循环结构程序设计一带参考答案Word格式.docx

上传人:b****8 文档编号:22872534 上传时间:2023-02-05 格式:DOCX 页数:11 大小:18.32KB
下载 相关 举报
上机实验五 循环结构程序设计一带参考答案Word格式.docx_第1页
第1页 / 共11页
上机实验五 循环结构程序设计一带参考答案Word格式.docx_第2页
第2页 / 共11页
上机实验五 循环结构程序设计一带参考答案Word格式.docx_第3页
第3页 / 共11页
上机实验五 循环结构程序设计一带参考答案Word格式.docx_第4页
第4页 / 共11页
上机实验五 循环结构程序设计一带参考答案Word格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

上机实验五 循环结构程序设计一带参考答案Word格式.docx

《上机实验五 循环结构程序设计一带参考答案Word格式.docx》由会员分享,可在线阅读,更多相关《上机实验五 循环结构程序设计一带参考答案Word格式.docx(11页珍藏版)》请在冰豆网上搜索。

上机实验五 循环结构程序设计一带参考答案Word格式.docx

7)计数器加1,i++

8)重复4、5、6、7,直到i>

20

9)输出2位精度的结果

编写程序:

方法一,用while语句:

#include<

stdio.h>

voidmain(){

floats=0,a=2,b=1,c;

inti=1;

while(i<

=20){

s=s+a/b;

c=a+b;

b=a;

a=c;

i++;

}

printf(“s=%.2f”,s);

}

方法二,用do-while语句:

floats=0,a=2,b=1,c;

do{

}while(i<

=20);

}

方法三,用for语句:

inti;

for(i=1;

i<

=20;

i++){

第2题、计算多项式的值:

s=1!

+2!

+3!

+4!

+20!

该多项式迭代公式为:

term=term*i,sum=sum+term

注意:

哪些变量需要初始化?

变量应采用什么类型?

inti;

doubles=0,fact=1;

for(i=1;

fact*=i;

s=s+fact;

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

把每一次迭代结果输出,程序应做怎样的修改?

 

第3题、输入x和n,计算并输出下式的值:

s=x/1+x/3+……+x/n

参考答案:

#include<

intmain()

{

intn,i;

floatx,s=0;

printf("

请输入x,n,以,分隔"

);

scanf("

%f,%d"

&

x,&

n);

=n;

i+=2)

{

s+=(x/i);

}

\ns=%f"

s);

第4题、输入一批正整数,求出其中的偶数之和。

(思考:

如何表示输入的结束?

intsum=0,n;

请输入若干正整数,以空格分隔,并以0表示结束"

%d"

while(n>

0)

if(n%2==0)sum+=n;

sum=%d"

sum);

第6题、输入x,计算并输出下式的值:

s=x/(1*2)+x/(3*4)+x/(5*6)+……

直到最后一项的绝对值小于1E-5

math.h>

floatsum,x,item;

inti=1;

请输入x="

%f"

x);

do

item=x/(i*(i+1));

sum+=item;

i+=2;

}while(fabs(item)>

=1E-5);

sum=%f"

第5题、输入正数n,要求输出Fibonacci数列的前n项。

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

longx1=1,x2=1,x,n,i;

请输入n="

%d\t%d\t"

x1,x2);

for(i=3;

i++)

x=x1+x2;

%d\t"

x);

if(i%5==0)//每行输出5个数

\n"

x1=x2;

x2=x;

第6题、求下列多项式的和,直到最后一项的绝对值小于1E-5。

s=1/2-1/5+1/8-1/11+……

intflag=1;

floatsum=0,n=2,item;

item=flag*1/n;

flag=-flag;

n+=3;

第7题:

计算e=1+1/1!

+1/2!

+1/3!

+1/4!

......,直到最后一项的绝对值<

1E-5。

(分别用while语句和do...while语句实现)

参考代码:

(do-While语句)

voidmain()

floatsum=1,item=1;

intfm=1,i=1;

{sum=sum+item;

fm*=i;

item=1.0/fm;

e=%f\n"

谢谢,按回车键结束"

(While语句)

floatsum=1,item=1.0;

while(fabs(item)>

=1E-5)

sum=sum+item;

item=1.0/fm;

第8题、给出任意一个位数不确定的正整数,要求分别从低位到高位、从高位到低位逐位分割输出。

比如输入123456,输出6,5,4,3,2,1和1,2,3,4,5,6

从高位到低位的参考答案:

longn,t=1;

请输入一个长整数n="

%ld"

while(n/t!

=0)

t*=10;

t/=10;

while(t!

\n%d\t%d\t%d"

n,t,n/t);

n=n%t;

t=t/10;

putchar('

\n'

从低位到高位的参考答案

while(n!

\n%d\t%d"

n,n%10);

n/=10;

第9题、36块砖36人搬,男搬4女搬3,小孩2人搬1砖。

要求一次全搬完,问男、女、小孩各需多少(人)?

如有多种方案,输出第一种方案及方案的数量。

设x,y,z表示男、女、小孩的人数,则有不定方程:

x+y+z=36

4x+3y+z/2=36

对x,y,z所有可能的组合测试出满足条件的解。

x、y、z的取值范围:

✧x:

1~9,步长1

✧y:

1~12,步长1

✧z:

2~36,步长2

对x,y,z所有可能的组合重复测试条件:

4*x+3*y+z/2==36&

&

x+y+z==36

是否成立,若成立则打印出x、y、z的值。

intx,y,z;

for(x=1;

x<

=9;

x++)

for(y=1;

y<

=12;

y++)

for(z=2;

z<

=36;

z=z+2)

if(x+y+z==36&

4*x+3*y+z/2==36)

printf(“%d,%d,%d\n”,x,y,z);

3,3,30

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

当前位置:首页 > 工程科技 > 冶金矿山地质

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

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