上机实验五 循环结构程序设计一

上传人:s9****2 文档编号:457741182 上传时间:2023-12-20 格式:DOCX 页数:12 大小:13.92KB
返回 下载 相关 举报
上机实验五 循环结构程序设计一_第1页
第1页 / 共12页
上机实验五 循环结构程序设计一_第2页
第2页 / 共12页
上机实验五 循环结构程序设计一_第3页
第3页 / 共12页
上机实验五 循环结构程序设计一_第4页
第4页 / 共12页
上机实验五 循环结构程序设计一_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《上机实验五 循环结构程序设计一》由会员分享,可在线阅读,更多相关《上机实验五 循环结构程序设计一(12页珍藏版)》请在金锄头文库上搜索。

1、上机实验五 循环结构程序设计(一)一目的要求1掌握 while、do-while、for 语句的语法规则、执行流程。2比较3 种循环语句的异同。3按题目要求,完成代码。二实验内容思考问题:种循环的异同点?能否相互转换? for循环控制单元 的表达式与 while 循环中表达式是如何对应的?第1题、分别用while、do-while、for语句编程,求数列前20项之 和:2/1, 3/2, 5/3, 8/5, 13/8算法提示:1)定义实变量sum、term、a、b、c,整变量i2)初始化:sum=0,分子a=2,分母b=13)初始化:i (计数器)=14)计算第i项term =a/b5)累加

2、sum=sum+term6)计算c=a+b,更新 b= a, 更新 a=c7)计数器加 1 , i+8)重复 4、5、6、7,直到 i209)输出2位精度的结果编写程序:方法一,用 while 语句#includevoid main()float s=0, a=2,b=1,c;int i=1;while(i=20)s=s+a/b;c=a+b;b=a;a=c;i+;printf(“s=%.2f”,s);方法二,用 do-while 语句#includevoid main()float s=0,a=2,b=1,c;int i=1;do s=s+a/b;c=a+b;b=a;a=c;i+; while

3、(i=20);printf(“s=%.2f”,s);方法三,用 for 语句:#includevoid main()float s=0,a=2,b=1,c;int i;for(i=1;i=20;i+)s=s+a/b;c=a+b;b=a;a=c;printf(“s=%.2f”,s);第2题、计算多项式的值:s=l!+2!+3!+4!+20!算法提示:该多项式迭代公式为: term=term*i,sum=sum+term注意:哪些变量需要初始化?变量应采用什么类型?编写程序:#includevoid main()int i;double s=0,fact=1;for(i=1;i=20;i+)fac

4、t*=i;s=s+fact;printf(“s=%f”,s);把每一次迭代结果输出,程序应做怎样的修改?第3题、输入x和n,计算并输出下式的值:s=x/l+x/3+x/n参考答案:#include int main()int n,i;float x,s=0;printf(”请输入x,n,以,分隔); scanf(%f,%d,&x,&n);for(i=1;i=n;i+=2)s+=(x/i);printf(ns=%f,s);第4 题、输入一批正整数,求出其中的偶数之和。(思考:如何表示 输入的结束?)参考答案:#include int main()int sum=0,n;printf(请输入若干正

5、整数,以空格分隔,并以0表示结束); scanf(%d,&n);while(n0)if(n%2=0) sum+=n;scanf(%d,&n); printf(sum=%d,sum);第6题、输入x,计算并输出下式的值:s=x/(l*2)+x/(3*4)+x/(5*6)+直到最后一项的绝对值小于 1E-5参考答案:#include #include int main()float sum,x,item;int i=1;printf(请输入 x=);scanf(%f,&x);doitem=x/(i*(i+1);sum+=item;i+=2;while(fabs(item)=1E-5); print

6、f(sum=%f,sum);第5题、输入正数n,要求输出Fibonacci数列的前n项。1, 1, 2,3, 5, 8参考答案:#include #include int main()long x1=1,x2=1,x,n,i;printf(请输入 n=);scanf(%d,&n);printf(%dt%dt,x1,x2);for(i=3;i=n;i+)x=x1+x2;printf(%dt,x);if(i%5=0)/每行输出 5 个数printf(n);x1=x2;x2=x;第6题、求下列多项式的和,直到最后一项的绝对值小于1E-5。s=l/2-l/5+l/8-l/ll+参考答案:#includ

7、e #includeint main()int flag=1;float sum=0,n=2,item;doitem= flag*1/n;sum+=item;flag=-flag;n+=3;while(fabs(item)=1E-5); printf(sum=%f,sum);第 7 题:计算 e=1+1/1!+1/2!+1/3!+1/4!,直到最后一项的绝对值V1E-5。(分别用while语句和do.while语句实现)参考代码:(do-While语句)#include #includevoid main()float sum=1,item=1;int fm=1,i=1;do sum=sum+

8、item;i+;fm*=i;item=1.0/fm;while(fabs(item)=1E-5);printf(e=%fn,sum);printf(谢谢,按回车键结束);While 语句)#include #includevoid main()float sum=1,item=1.0;int fm=1,i=1;while(fabs(item)=1E-5)sum=sum+item;i+;fm*=i;item=1.0/fm; printf(e=%fn,sum);printf(谢谢,按回车键结束);第8 题、给出任意一个位数不确定的正整数,要求分别从低位到高位 从高位到低位逐位分割输出。比如输入12

9、3456,输出6,5,4,3,2,1 和1,2,3,4,5,6 从高位到低位的参考答案:#include int main()long n,t=1;printf(请输入一个长整数n=);scanf(%ld,&n);while (n/t!=0)t*=10;t/=10;while (t!=0)printf(n%dt%dt%d,n,t,n/t);n=n%t;t=t/10;putchar(n);从低位到高位的参考答案#include int main()long n,t=1;printf(请输入一个长整数n=);scanf(%ld,&n);while (n!=0)printf(n%dt%d,n,n%1

10、0);n/=10;putchar(n);第9题、36块砖36人搬,男搬4 女搬3,小孩2人搬1砖。要求一 次全搬完,问男、女、小孩各需多少(人)?如有多种方案,输出第 一种方案及方案的数量。算法提示:设 x,y,z 表示男、女、小孩的人数,则有不定方程:x+y+z=364x+3y+z/2=36对 x,y,z 所有可能的组合测试出满足条件的解。x、y、z 的取值范围:x: 19,步长 1y: 1 12,步长1z: 236,步长 2对 x,y,z 所有可能的组合重复测试条件:4*x+3*y+z/2=36 &x+y+z=36 是否成立,若成立则打印出 x、y、z 的值。编写程序:#includevoid main()int x,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,%dn”,x,y,z);3,3,30

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号