C语言循环实验报告_第1页
C语言循环实验报告_第2页
C语言循环实验报告_第3页
C语言循环实验报告_第4页
C语言循环实验报告_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、. . - 优选实验名:循环结构实验目的1、掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数。2、了解条件型循环结构的基本测试方法。3、掌握如何正确地控制计数型循环结构的次数4、了解对计数型循环结构进行测试的基本方法5、了解在嵌套循环结构中,提高程序效率的方法二、实验容(一) ) 题目 1 1、题目容描述1、下面是一个计算e 的近似值(使误差小于给定的)的程序。main() double e=1.0,x=1.0,y,detax ;int i=1; printf( “n please input enter a error:”); scanf(“%lf”,&

2、detax); y=1/x; while(y=detax) x=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 ,观察程序运行将会有什么变化。假如不知道机器的程序中的各

3、语句实际上是什么,分别输入什么样的detax 来测试出while 语句的循环条件写错了。(4)把原程序中while 语句之前的y=1/x 语句去掉,观察程序的运行将会发生什么样的变化。假如不知道机器的程序实际上是怎么写的,输入什么样的detax 就能测试出少了上述这条语句。(5) 若把原程序中的+i 换成i+,观察程序的运行发生了什么变化?假如不知道这条语句到底是怎么写的,输入什么样的detax 就能测试出这条语句写错了. . . - 优选(6)把原程序中的while 结构改写成dowhile 结构,再分别按上述的 (2)、( 3)两步进行实验。2、输入和输出信息描述及数据类型确定;、输入数据

4、序号输入数据描述数据类型1 e,x,y,detax double 2 i int (2)输出数据序号输出数据描述数据类型1 e double 3、程序源代码(填写程序调试正确后的代码)#include int main() double e,x,y,detax; int i; e=1.0; x=1.0; i=1.0; printf(please input enter a error:n ); scanf(%lf,&detax); y=1/x; while(y=detax) x=x*i; y=1/x; e=e+y; +i; printf(%12.10lf,e); return 0; 7

5、、程序调试错误序号错误信息 (列出出错语句以及出错提示)是否解决解决方法1 格式不对是手动调整2 warning: return type defaults to int -wreturn-type| 是在main()前加上 int 3 error: stray 243 in program|error: stray 273 in program| 是将double e=1.0,x=1.0,y,detax ;int i=1; 改为 double e,x,y,detax;int i;e=1.0;x=1.0;i=1.0; 4 程序 e近似值 main.c|in function main erro

6、r: stray 241 in program| 是将printf( “n please input enter a error:”);改为printf(please input enter a error:n ); 5 error: stray 241 in program| 是将scanf(“%lf”,&detax);改为6 error: i undeclared (first use in this function)| 是将i改为 i 7 c|19|error: stray 241 in program| 是将printf( “%12.10lf”,e);改为 printf(%1

7、2.10lf,e); 8 c|20|warning: control reaches end of 是在后一个大括号前加上return 0; . . - 优选non-void function -wreturn-type| 8、测试与结果分析、测试数据与结果测试序号测试用例选取原因测试输入数据测试输出结果是否正确结果分析1 不循环2 1.0000000000 是2 循环一次1 2.5000000000 是3 循环两次0.7 2.5000000000 是死循环0 无是、相关问题回答(1)阅读上面的程序,写出程序所依据的计算公式。答: e=1+1/2+1/6+1/i! (2)当输入的detax 各

8、是什么值时,能分别使程序按下面的要求运行:.不进入循环;.只循环一次;.只循环两次;.进入死循环 (程序将永远循环下去)。为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句?答:大于 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,直接结束循环;当输

9、入不为0,则进入死循环。 ydetax,输入不大于 1时不进行循环,输出为1;输入大于 1时则进入死循环。 y=detax,输入不小于 1时进入死循环;输入小于1则不进行循环,输出1。分别输入 3,0.5,1即可。(4)把原程序中while 语句之前的y=1/x 语句去掉,观察程序的运行将会发生什么样的变化。假如不知道机器的程序实际上是怎么写的,输入什么样的detax 就能测试出少了上述这条语句。答:输入 1. (5) 若把原程序中的+i 换成i+,观察程序的运行发生了什么变化?假如不知道这条语句到底是怎么写的,输入什么样的detax 就能测试出这条语句写错了. (6)把原程序中的while

10、结构改写成dowhile 结构,再分别按上述的 (2)、( 3)两步进行实验。答:( 2)步与原来while 相同。( 3)步当有的输入条件不符合判断条件时,仍会先进行一次循环后结束,而 while 则直接结束。#include int main() double e,x,y,detax; /定义变量int i; e=1.0; /赋值x=1.0; i=1.0; printf(n please input enter a error:); scanf(%lf,&detax); /输入 detax y=1/x; do . . - 优选x=x*i; y=1/x; e=e+y; +i; whi

11、le(y=detax); /执行 dowhile循环printf(%12.10lfn,e); /输出printf(i=%dn,i-2); ) 题目 21、题目容描述下面是一个用以计算的c 程序。main() int i ,j; long sum=0; for(i=1,i=20,i+) for(j=1;j=3;j+) sum=sum+(i+1)*(i+1)*(j+2) printf( “sum is :%dn”,sum); 2、实验步骤(1)将上述程序中的和分别做什么样修改,能使程序按如下要求运行:.不循环;.外循环1 次,不进入循环;.外循环,循环各1 次;.外循环1 次,循环2 次;外循环2

12、次,循环1 次; .外循环19 次,循环 3 次; .外循环20 次,循环2 次; .外循环21 次,循环3 次。(2)试修改程序,以便能知道控制表达式i=1;j=20;i+ 和 j=1;j3;j+= 各执行了多少次?(3)循环与外循环的控制表达式进行对换,观察程序的执行结果有无变化,并且观察对换后的外循环与循环控制表达式执行的总次数有无变化?(4)将( 3)中程序写为main() int i,j,k; long sum=0; for (j=1.j=3.j+) k=j+2; for(i=1;i=20;i+) sum=sum+(i+1)*(i+1)*k; printf( “sum is :%dn

13、”,sum); 观察程序的执行结果有无变化?(5)将( 3)中程序改写为main() int i,j,m,n; . . - 优选long sum=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(“sum is :%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;+j

14、 观察程序的执行结果有无变化2、输入和输出信息描述及数据类型确定;、输入数据序号输入数据描述数据类型1 i,j int 2 sum long int (2)输出数据序号输出数据描述数据类型1 sum long int 3、程序源代码(填写程序调试正确后的代码)#include main() int i ,j; long sum=0; for(i=1;i=20;i+) for(j=1;j=3;j+) sum=sum+(i+1)*(i+1)*(j+2); printf(sum is :%dn,sum); 4、程序调试错误序号错误信息(列出出错语句以及出错提示)是否解决解决方法1 |6|warnin

15、g: value puted is not used -wunused-value| 是将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+) int j =1;for(;j=2;j+) .外循环 2次,循环 1次:改为 for(i=1;i=2;i+) for(;j2;j+) .外循环 19次,循环 3次:改为 for(i=1;i=19;i+) int j=1; for(;j=3;j+) .外循环 20次,循环 2次:

16、改为for(i=1;i=20;i+) int j=1; for(;j=2;j+) .外循环 21次,循环 3次:改为 for(i=1;i=21;i+) int j=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)中程序改写观察程

17、序的执行结果有无变化?无。(5)将( 3)中程序改写观察程序的执行结果有无变化?无。(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;

18、j+结果 39720 .(11)j=1;j3;+j结果 23170。、题目 3 1、 题目容描述绘制等腰空心梯形,下底和高都为输入变量n,n=5时,打印图形如右:2、程序源代码(填写程序调试正确后的代码)#include . . - 优选int main() int i,x,n,j; /定义变量printf(please enter the n:); scanf (%d,&n); /输入格式for(i=n;i=1;i-) for(j=0;jn-i;j+) printf( ); /当j小于 n-i时循环输出空格for(x=1;x1&x2*i+n-2&(i!=n)&

19、(i!=1) printf( ); /若满足条件则打印空格if(x=1|x=2*i+n-2|i=1|i=n) printf(*); /若满足则打印 * printf(n); /换行 return 0; 3、测试与结果分析、测试数据与结果测试序号测试用例选取原因测试输入数据测试输出结果是否正确结果分析1 6 正确2 8 正确3 13 正确. . - 优选(四)题目 4 1、题目容描述想一个 1100之间的数,猜对 : right,猜错 :wrong并提示大小。( 1)最多猜 10次猜多个数,( 2)10次猜不对就猜下一个数6、程序源代码(填写程序调试正确后的代码)猜十次:#include #include /预处理 magic #include /时间函数int main() int magic,number,i; /定义变量i=1; srand(time(null); magic = rand() % 100 + 1; /产生随机数for (i=1;i=10;i+) printf(请输入你猜的数字:n); scanf (%d,&number); /输入 number if

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论