版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验名:循环结构实验目的1、掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数。2、了解条件型循环结构的基本测试方法。3、掌握如何正确地控制计数型循环结构的次数4、了解对计数型循环结构进行测试的基本方法5、了解在嵌套循环结构中,提高程序效率的方法二、实验内容(一)题目11、题目内容描述1、下面是一个计算e的近似值(使误差小于给定的S)的程序。main()(doublee=1.0,x=1.0,y,detax;inti=1;printf(npleaseinputenteraerror:);scanf(%lf”,&detax);y=1/x;while(y=detax)(x
2、=x*I;y=1/x;e=e+y;+i;)printf(12.10lf”,e);)2、实验步骤(1)阅读上面的程序,写出程序所依据的计算公式。(2)当输入的detax各是什么值时,能分别使程序按下面的要求运行:.不进入循环;.只循环一次;.只循环两次;.进入死循环(程序将永远循环下去)。为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句?(3)原程序中while语句中的y=detax,分别换成ydetax,y=detax,ydetax,y=detax,观察程序运行将会有什么变化。假如不知道机器内的程序中的各语句实际上是什么,分别输入什么样的detax来测试出while语句的循环条件写
3、错了。(4)把原程序中while语句之前的y=1/x语句去掉,观察程序的运行将会发生什么样的变化。假如不知道机器内的程序实际上是怎么写的,输入什么样的detax就能测试出少了上述这条语句。(5)若把原程序中的+i换成i+,观察程序的运行发生了什么变化?假如不知道这条语句到底是怎么写的输入什么样的detax就能测试出这条语句写错了(6)把原程序中的while结构改写成dowhile结构,再分别按上述的(2)、(3)两步进行实验。2、输入和输出信息描述及数据类型确定;(1)输入数据序号输入数据描述数据类型1e,x,y,detaxdouble2iint(2)输出数据序号输出数据描述数据类型1Edou
4、ble3、程序源代码(填写程序调试正确后的代码)#includeintmain()doublee,x,y,detax;inti;e=1.0;x=1.0;i=1.0;printf(pleaseinputenteraerror:n);scanf(%lf,&detax);y=1/x;while(y=detax)x=x*i;y=1/x;e=e+y;+i;printf(%12.10lf,e);return0;error:stray241inprogram|5error:stray241inprogram|是将scanf(%lf”,&detax);改为6error:Iundeclared(firstuse
5、inthisfunction)|是将I改为i7c|19|error:stray241inprogram|是将printf(12.10lf”,e);改为printf(%12.10lf,e);7、程序调试错误错误信息(列出出错语句以及出错是否解决方法序号提示)解决1格式不对是手动调整2warning:returntypedefaultstoint-Wreturn-type|是在main()前加上int3error:stray243inprogram|是将doublee=1.0,x=1.0,y,detax;inti=1;error:stray273inprogram|改为doublee,x,y,de
6、tax;inti;e=1.0;x=1.0;i=1.0;4程序e近似值main.c|In是将printf(npleaseinputenteraerror:functionmain改为printf(pleaseinputenteraerror:n););卜Wreturn-type|8、测试与结果分析(1)测试数据与结果测试测试用例选取原测试输入测试输出结果是否结果分析序号因数据正确1不循环21.0000000000是2循环一次1是3循环两次0.7是死循环0无是(2)相关问题回答(1)阅读上面的程序,写出程序所依据的计算公式。答:e=1+1/2+1/6+1/i!(2)当输入的detax各是什么值时,
7、能分别使程序按下面的要求运行:只循环两次; .进入死循环(程序将永远循环下去)。 为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句?答:大于1不进入循环,等于1只循环一次,大于0.5小于1只循环两次,等于0进入死循环(程序将永远循环下去)。应增加printf(i=%d,i-1);(3)原程序中while语句中的y=detax,分别换成ydetax,y=detax,ydetax,ydetax,输入不小于1时不进行循环,输出1;输入小于1时则会进行循环。y=detax,当输入为0时,y被赋值为0,直接结束循环;当输入不为0,则进入死循环。ydetax,输入不大于1时不进行循环,输出为1
8、;输入大于1时则进入死循环。y=detax,输入不小于1时进入死循环;输入小于1则不进行循环,输出1。分别输入3,0.5,1即可。(4)把原程序中while语句之前的y=1/x语句去掉,观察程序的运行将会发生什么样的变化。假如不知道机器内的程序实际上是怎么写的,输入什么样的detax就能测试出少了上述这条语句。答:输入1.(5)若把原程序中的+i换成i+,观察程序的运行发生了什么变化?假如不知道这条语句到底是怎么写的输入什么样的detax就能测试出这条语句写错了.(6)把原程序中的while结构改写成dowhile结构,再分别按上述的(2)、(3)两步进行实验。答:(2)步与原来while相同
9、。(3)步当有的输入条件不符合判断条件时,仍会先进行一次循环后结束,而while则直接结束。#includeintmain()doublee,x,y,detax;/定义变量inti;e=1.0;/赋值x=1.0;i=1.0;printf(npleaseinputenteraerror:);scanf(%lf,&detax);/输入detaxy=1/x;dox=x*i;y=1/x;e=e+y;+i;)while(y=detax);/执行do-while循环printf(%12.10lfn,e);/输出printf(i=%dn,i-2);)(二)题目2c|20|warning:controlrea
10、chesendofnon-voidfunction在后一个大号前加上return0;.不进入循环;.只循环一次;1、题目内容描述下面是一个用以计算的C程序。main()inti,j;longsum=0;for(i=1,i=20,i+)for(j=1;j=3;j+)sum=sum+(i+1)*(i+1)*(j+2)printf(sumis:%dn”,sum);)2、实验步骤(1)将上述程序中的和分别做什么样修改,能使程序按如下要求运行:.不循环;.外循环1次,不进入内循环;.外循环,内循环各1次;.外循环1次,内循环2次;外循环2次,内循环1次;.外循环19次,内循环3次;.外循环20次,内循环
11、2次;.外循环21次,内循环3次。(2)试修改程序,以便能知道控制表达式i=1;j=20;i+和j=1;j3;j+=各执行了多少次?(3)内循环与外循环的控制表达式进行对换,观察程序的执行结果有无变化,并且观察对换后的外循环与内循环控制表达式执行的总次数有无变化?(4)将(3)中程序写为main()inti,j,k;longsum=0;for(j=1.j=3.j+)k=j+2;for(i=1;i=20;i+)sum=sum+(i+1)*(i+1)*k;)printf(sumis:%dn”,sum);)观察程序的执行结果有无变化?(5)将(3)中程序改写为main()intI,j,m,n;lon
12、gsum=0;for(j=1;j=3;j+)(m=j+2;for(I=1;j=20;I+)(n=I+1;sum=sum+m*m*k;printf(sumis:%dn”,sum);观察程序的执行结果有无变化?(6)在(5)的程序中,若将外循环控制表达式分别做如下修改:.j=1;j=3;j+.j=1;j3;j+.j=1;j3;j-.j=1;j3;j+.j=0;j=3;j+=.j=0;j3;j+j=1;j=3;j+j=1;j3;+j2、输入和输出信息描述及数据类型确定;(1)输入数据序号输入数据描述1I,j2sum(2)输出数据序号输出数据描述1sum3 3、程序源代码(填写程序调试正确后的代码)#
13、includemain()(inti,j;longsum=0;for(i=1;i=20;i+)for(j=1;j=3;j+)sum=sum+(i+1)*(i+1)*(j+2);printf(sumis:%dn,sum);4 4、程序调试错误错误信息(列出出错语句以及出错提示)序号1|6|warning:valuecomputedisnotused卜Wunused-value|2|2|warning:returntypedefaultstoint-Wreturn-type|3|9|error:expected;beforeprintf|4|9|error:stray241inprogram|观察
14、程序的执行结果有无变化数据类型intlongint数据类型Longint是否解决方法解决是将for(i=1;i=20;i+)改为for(i=1;i3;j+).外循环,内循环各1次:改为for(i=1;,i=1;i+)for(j=1;j=1;j+).外循环1次,内循环2次:改为for(i=1;i=1;i+)intj=1;for(;j=2;j+).外循环2次,内循环1次:改为for(i=1;i=2;i+)for(;j2;j+).外循环19次,内循环3次:改为for(i=1;i=19;i+)intj=1;for(;j=3;j+).外循环20次,内循环2次:改为for(i=1;i=20;i+)intj
15、=1;for(;j=2;j+).外循环21次,内循环3次:改为for(i=1;i=21;i+)intj=1;for(;j=3;j+)(2)试修改程序,以便能知道控制表达式i=1;j=20;i+和j=1;j3;j+=各执行了多少次?答:添加printf(i=%d,j=%d,i,j);分别执行60和20次。(3)内循环与外循环的控制表达式进行对换,观察程序的执行结果有无变化,并且观察对换后的外循环与内循环控制表达式执行的总次数有无变化?答:无,次数外循环3次,内循环60次,内循环不变,外循环次数改变(4)将(3)中程序改写观察程序的执行结果有无变化?无。(5)将(3)中程序改写观察程序的执行结果有
16、无变化?无。(6)在(5)的程序中,若将外循环控制表达式分别做如下修改:j=1;j=3;j+.j=1;j3;j+.j=1;j3;j-.j=1;j3;j+.j=0;j=3;j+=.j=0;j3;j+j=1;j=3;j+j=1;j3;+j观察程序的执行结果有无变化答:(1).j=1;j=3;j+结果0.(4)j=1;j3;j+结果0(5)j=1;j3;j一结果不运行(7)j=1;j3;j+结果23170(8)j=0;j=3;j+=结果有错(9)j=0;j3;j+结果29790(10)j=1;j=3;j+结果39720.(11)j=1;j=1;i-)printf(sumis:%dn,sum);加上r
17、eturn0;绘制等腰空心梯形,下底和高都为输入变量右:2、程序源代码(填写程序调试正确后的代码)#includeintmain()inti,x,n,j;/printf(pleaseenterthen:);scanf(%d,&n);/n,n=5时,打印图形如定义变量输入格式for(j=0;jn-i;j+)for(x=1;x1&x2*i+n-2&(i!=n)&(i!=1)if(x=1|x=2*i+n-2|i=1|i=n)return0;3、测试与结果分析(四)题目41、题目内容描述不对就猜下一个数6、程序源代码(填写程序调试正确后的代码)猜十次:#includeintmain()i=1;sran
18、d(time(NULL);for(i=1;i=10;i+)if(numbermagic)printf();/当j小于n-i时循环输出空格(1)测试测试数据与结果测试用例测试输入数据测试输出结果是否结果分析序号选取原因正确正确正确13正确printf();/若满足条件则打印空格printf(*);/若满足则打印*printf(n);/换行想一个1100之间的数,猜对:right,猜错:wrong并提示大小。(1)最多猜10次猜多个数,2)10次猜#include/预处理magic#include/时间函数intmagic,number,i;/定义变量magic=rand()%100+1;/产生随机数printf(请输入你猜的数字:n);scanf(%d,&number);/输入nu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子商务与企业信息化学习情境设计
- 2025届山东省荣成市石岛实验中学中考生物考试模拟冲刺卷含解析
- 2024年09月2024华夏银行长春分行校园招聘笔试历年参考题库附带答案详解
- 工伤保险报销流程
- 2024年08月招商银行天津分行社会招聘笔试历年参考题库附带答案详解
- 2024年08月中国民生银行重庆分行诚聘英才笔试历年参考题库附带答案详解
- 2024年08月中国光大银行深圳分行综合柜员招聘笔试历年参考题库附带答案详解
- 2024年08月中国光大银行济南分行理财经理(济南)招聘笔试历年参考题库附带答案详解
- 2024年08月中国光大银行杭州分行支行行长副行长部门总经理副总经理招聘笔试历年参考题库附带答案详解
- 2024年08月东莞银行股份有限公司佛山分行招考笔试历年参考题库附带答案详解
- 社会学概论期末复习题及答案
- 物料吊笼安全技术标准
- 强基计划模拟卷化学
- 2022年江苏省南京市中考历史试题(含答案)
- 商务沟通第二版第6章管理沟通
- 培训课件-核电质保要求
- 过敏原检测方法分析
- TSG_R0004-2009固定式压力容器安全技术监察规程
- 室外给水排水和燃气热力工程抗震设计规范
- 《三国演义》整本书阅读任务单
- 大型平板车安全管理规定.doc
评论
0/150
提交评论