实验6循环结构答案.doc

实验6循环结构答案.doc

ID:62051450

大小:61.00 KB

页数:6页

时间:2021-04-16

实验6循环结构答案.doc_第1页
实验6循环结构答案.doc_第2页
实验6循环结构答案.doc_第3页
实验6循环结构答案.doc_第4页
实验6循环结构答案.doc_第5页
资源描述:

《实验6循环结构答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、个人收集整理勿做商业用途上机实验六 循环结构程序设计学号:ﻩ ﻩ姓名:一.目的要求1.掌握用for、while、do-while语句实现循环的基本技巧;2.掌握循环次数不确定的解题技巧;3.掌握break语句、continue语句在循环语句中的作用以及不同之处;4.掌握多重循环的编程技巧。二.实验内容【实验题1】. 程序填空:分别用for、while、do-while语句编程,输出菲波那契数列的前20项,要求每行输出10项。源程序1: 用for语句实现  #include

2、int i,x1,x2,x; x1=x2=1; printf("%6d%6d",x1,x2); /*Line5:输出前2项*/for(i=3;i<=20; i++){ﻩx=x1+x2;  printf("%6d",x);/*Line8*/if(i==10 )printf("");ﻩﻩ/*每行输出10项*/x1=x2 ;x2=x; }}编译、连接并运行该程序,则显示思考:line5和line8行中printf()函数的格式控制符均为“%6d”, 假如均改为“%d”,输出结果有何不同?答:所有数字都紧挨在一起,

3、而不是单个显示。也就是说输出的是两行长串的数字,而不是一个数列。源程序2:用while语句实现个人收集整理勿做商业用途#include<stdio.h>intmain(){ inti,x1,x2,x;x1=x2=1;printf("%6d%6d",x1,x2); /*输出前2项*/i=3 ; while(i<=20){ﻩx=x1+x2; printf("%6d",x);if( i%10==0) printf("n");ﻩﻩ/*每行输出10项*/x1=x2;x2=x; i++;} }源程序3:用do-while

4、语句实现  #include<stdio.h>intmain(){ inti,x1,x2,x; x1=x2=1;printf("%6d%6d",x1,x2);/*输出前2项*/i=3;do{x=x1+x2; printf("%6d",x);if(i%10==0)printf("");ﻩ/*每行输出10项*/ﻩx1=x2;ﻩx2=x;i++ ; }while(i<=20);}ﻬ【实验题2】 程序填空,计算e=1+1/1!+1/2!+1/3!+1/4!+…,直到最后一项的绝对值<10-5 (核心问题:学会找规律

5、,写出递推公式,学会类似的多项式计算)【参考代码】(个人收集整理勿做商业用途#include<stdio.h>#include<math.h>voidmain(){ doublesum=1,item=1;   int  i;for( i=1;fabs(item)>1e-5;i++)  {   item=item/ i;  //递推生成第i项item=1/i! sum=sum+item;//各项累加  }printf("e=%.15f\n",sum);}【附加思考题】以e为底的指数:math.h中有对应的函数ex

6、p(x),直到最后一项的绝对值<10-10ex=1+x1/1!+x2/2!+ x3/3!+x4/4!……+xn/n!个人收集整理勿做商业用途【实验题3】程序填空:输入一个整数,从高位开始逐位分割各位数字,如输入7358,则输出 7358(2007年春笔试真题)【分析】我们已经学习了如何用整除运算和求余运算求出一个整数number的位数、以及从低位到高位的各位数字。本题则是从高位向低位逐步分解各个数位,关键是先求出这个整数是几位数?如果已知number是k位数,那么该整数整除10k-1,就可得到最高位的数字;然后

7、对剩余部分除以10k-2,得到下一个数位上的数字;再对剩余部分除以10k-3,…实例如下:被除数numberﻩﻩk   最高位权重power=10k-1 高位数字number/powerﻩ余数ﻩ7358ﻩﻩ4ﻩ1000ﻩﻩﻩ7ﻩﻩ358ﻩﻩﻩ358ﻩ3100ﻩﻩ3ﻩﻩ58ﻩ58ﻩ2ﻩﻩ10ﻩﻩﻩﻩ5ﻩﻩ8ﻩ 8ﻩﻩ1ﻩ1ﻩﻩﻩﻩﻩ8ﻩ0ﻩ 0-----------结束!源程序如下:#includeintmain(){inti, digit,k,power, t ,number;printf("

8、Enter an integer:"); scanf("%d",&number);//输入整数numberif(number<0)number= -number;//如果number为负数,取其相反数ﻩ//求number的位数:kt=number;ﻩ/*line 7:复制number到t*/k=0;do{ k++;t=t/10 ;}while(t!=0);ﻩ//求最高位的权重:powe

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。