实验项目四结构化程序设计_循环结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《程序设计基础I》实验报告实验项目四:结构化程序设计_循环结构
一、实验目的及要求
(1)熟悉掌握用while语句,do-while语句和for语句实现循环的方法。
(2)掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。
(3)掌握多重循环的选择时机和使用方法;
(4)掌握使用break和continue语句的方法。
二、实验设备(环境)及要求
使用Visual C++ 6.0;windows系列操作系统的环境。
三、实验内容与步骤(要求以“学号_姓名_题号”为名建立项目;
例项目名为:2013050201_***_01)
1.分别用while、do-while、for语句编程,求数列前20项之和:2/1,3/2,5/3,8/5,13/8······算法提示:
1)定义实变量sum、term、a、b、c,整变量i
2)初始化:sum=0,分子a=2,分母b=1
3)初始化:i(计数器)=1
4)计算第i项term =a/b
5)累加sum=sum+term
6)计算c=a+b,更新b= a,更新a=c
7)计数器加1,i++
8)重复4、5、6、7,直到i>20
9)输出2位精度的结果
把每一次迭代结果输出,程序应做怎样的修改?
3输入正数n ,要求输出Fibonacci 数列的前n 项。1,1,2,3,5,8……
#include
开始
结束
term=0 sum=0 i=1
i ≤20?
i=i+1
sum=sum+term
term=term *i
输出sum
是 否
#include
{float term,sum;int i; term=1,i=1,sum=0; while(i<=20) {term=term*i; sum=sum+term;
printf("sum=%.1f\n",sum); i++; }
printf("sum=%f\n",sum); return 0; }
int main()
{
int a,b,c,n,i; a=1,b=1;
scanf("%d",&n);
printf("%d,%d,",a,b); for(i=3;i<=n;i++) {c=a+b,a=b,b=c; printf("%d,",c);
if(i%10==0) printf("\n"); }
return 0; }
4下面是计算s = n!的源程序,在这个源程序中存在若干语法和逻辑错误。
要求在计算机上对这个例子源程序进行调试修改,使之能够正确完成指定任务。例如,8! = 40320。
#include
int i, n, s = 1;
printf("Please enter n:"); scanf("%d", n);
for(i = 1, i <= n, i++)
s = s * i;
printf("%d! = %d", n, s);
}
return 0;
修改上述计算s = n!的源程序,要求输入改为“整数S ”,输出改为“满足n! >=S 的 最小整数n ”。例如,输入整数为40310,输出结果为n = 8。。
要求:每道题目分别画出程序流程图,书写程序,试运行(如何输入,结果如何)
#include
int main()
{
int i, n, s = 1;
printf("Please enter n:");
scanf("%d",&n);
for(i = 1; i <= n;i++) s = s * i;
printf("%d! = %d\n", n, s); return 0;
}
5. 分析题
(1) 先分析程序运行的结果,然后上机编辑和运行程序,并将运行的结果与分析的结果 进
行比较,若分析有误,试找出原因。 答:要想循环,则while 后面不加分号
开始
结束
输入s
Term
否
输出n
Term=term ×i ; I=i+1
Term=1
#include
i=1,n; printf("请输入S 的值
"); scanf("%f",&S); while(term
N=n-i
(2)若把第5行中的k++改为++k,结果如何
答:输出Final k=1 Final k=2
6.分析题
(1)先分析程序运行的结果,然后上机编辑和运行程序,并将运行的结果与分析的结果进行比较,若分析有误,试找出原因。
<><><>#
(2)若把第7行中的i%2改为!(i%2),结果如何变化?
<><>#
(3)若把第7行中的continue改为break,结果如何变化?
<>#
通过(3)的操作,你对break和continue语句有什么认识?
break语句跳出循环,不再重复,continue语句本次循环不输出继续执行循环语句
7.分析题
(1)先分析程序运行的结果,然后上机编辑和运行程序,并将运行的结果与分析的结果进行比较,若分析有误,试找出原因。
####
###*
##**
#***
8.分析题
(1)先分析程序运行的结果,然后上机编辑和运行程序,并将运行的结果与分析的结果进行
比较,若分析有误,试找出原因。
b=22