ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:96.55KB ,
资源ID:13245623      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-13245623.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(20吴琛实验三.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

20吴琛实验三.docx

1、20吴琛实验三 实验三 循环控制实验课程名:高级语言程序设计(C)专业班级: 电气本二 学号: 20 姓名: 吴琛 实验时间: 2012-4-18 实验地点: K4-202 指导教师: 吴建设 一、实验目的和要求1. 熟练掌握用while语句、do while语句和for语句实现循环的方法。2. 掌握在程序设计中用循的方法实现一些常用算法。并进一步学习调试程序的方法。二、实验内容1、任务名称程序求和:1+100,填空,实现该功能。源代码:#include void main()int s,i; s=0;for(i=1;i=100;i+)s=s+i;printf(1+.+100=%dn,s);p

2、rintf(学号:20 姓名:吴琛 实验三第一题);思考:(1)第5行能不能去掉?其作用是什么?不能,定义和的初始值。(2)不用for语句,用while语句改写该程序,实现同样的功能。#include void main()int s=0,i=1; while(i=100) s=s+i; i+;printf(1+.+100=%dn,s);printf(学号:20 姓名:吴琛 实验三第一题);运行结果:(需要截图)运行结果分析:根据for循环的语句形式和while循环语句形式输入即可。2、任务名称 比较下列两个程序。(验证)源代码:/* 第一个程序 */#include void main()

3、int i,n,sum=0;scanf(%d,&i);n=i;while(i=10) sum+=i; i+;printf(%d+.+10=%d,n,sum);printf(学号:20 姓名:吴琛 实验三第三题);/* 第二个程序 */#include void main() int i,n,sum=0;scanf(%d,&i);n=i;do sum+=i; i+; while(i=10);printf(%d+.+10=%d,n,sum);printf(学号:20 姓名:吴琛 实验三第三题);分别运行这两题,若输入7,这两个程序的结果分别是多少?若输入12,这两个程序的结果又分别是多少?比较为什

4、么会有这样的区别?第一个程序循环次数至少零次,即先判断后执行,第二个程序循环次数至少1次,即先执行后判断。运行结果:(需要截图)运行结果: 运行结果:运行结果:运行结果分析:输入程序,区分while和do.while语句的区别。3、任务名称、 预习下面程序,若输入12345,分析输出结果是多少?上机验证。源代码:#include void main( ) long data; scanf(%ld,&data); while(data) printf(%ld,data%10); data=data/10; printf(学号:20 姓名:吴琛 实验三第一题);运行结果:(需要截图)运行结果分析:

5、根据程序输入程序即可。4、任务名称实现求Fibonacci数列的前n个数。(验证、调试)运行程序,写出运行结果;采用单步跟踪技术运行该程序,观察一下变量的变化。思考:(1)f1、f2这两个变量为什么定义为long int 型?(2)第5行和第6行的相互作用,你会用这种方式来实现输入吗?(3)注意第9行的输出“%ld”中的“1”是字母“L”的小写形式,不是数字1。源代码:#include void main( ) long int f1, f2; int i,n; printf(Input n:); scanf(%d,&n); f1=f2=1;for(i=1;in;i+) printf(%ldt

6、%ldn,f1,f2); f1=f1+f2;f2=f2+f1; printf(学号:20 姓名:吴琛 实验三第四题);运行结果:(需要截图)运行结果分析:利用循环处理问题,重复利用变量名输入程序,运行即可。5、任务名称预习下面程序,写出预习结果并上机验证。(验证)源代码:#include void main( ) int i,j,x; x+;for(j=0;j3;j+)for(i=0,x=0;i2;i+) if(j%2) continue;x+;x+; printf(x=%dn, x); printf(学号:20 姓名:吴琛 实验三第五题);思考:用一句话概括if(j%2)语句的作用。通过选择

7、语句判断下一条语句是否执行,若j除以2的余数为0则跳出循环。运行结果:(需要截图)运行结果分析:嵌套for循环的执行过程及continue语句的作用。6、任务名称.输入一批考试分数,用1作为结束标志,若输入大于100分,则提示重新输入,然后计算最高分、最低分与平均分。请调试、检查程序中的错误,并改正之。#include void main( ) int mark; int n=0 ; sum=0 ; int max=100 ; min=0 ; for ( ; ; ) ; scanf(%d, &mark); if ( mark 100 ) printf( Mark 100 , Please re

8、input n ); break; if ( mark=-1) break; n + ; sum=sum + mark ; if( mark max ) max = mark ; if( mark 100 ) printf( Mark 100 , Please reinput n ); break;(3)写出您的测试数据及运行结果,注意输入的数据序列中最后一个应是-1。改正后的程序:#include void main( ) int mark; int n=0,sum=0; int max=0,min=100; for ( ; ; ) scanf(%d, &mark); if ( mark 1

9、00 ) printf(Mark100,Please reinputn); continue; if ( mark=-1) break; n + ; sum=sum+mark; if( markmax ) max = mark; if( markmin ) min=mark; sum=sum/n; printf(max=%d,min=%d,aver=%dn,max,min,sum); printf(学号:20 姓名:吴琛 实验三第六题);运行结果:(需要截图)运行结果分析:分析if选择和for循环嵌套的语句7、任务名称编程:输入20个190的整数,分类统计130、3160、6190的数各有多少

10、个? 编程点拨:(1) count1计130的个数,count2计3160的个数,count3计6190的个数。(2) 用for循环20次实现该程序的功能:输入一个整数x,判断该数所在的范围,若x是130,则count1加1;若x是3160,则count2加1;若x是6190,则count3加1。 (3) 最后,输出统计的结果。#include void main( ) int count1=0,count2=0,count3=0;int i,x;printf(“Please input 20 numbers:”);for(i=0;i20;i+) scanf(“%d”,&x); /*补充完成程

11、序*/* 输出统计结果 */源代码:#include void main( ) int count1=0,count2=0,count3=0; int i,x; printf(Please input 20 numbers:n); for(i=0;i=1&x=31&x=61&x=90) count3+; printf(count1=%d,count2=%d,count3=%dn,count1,count2,count3); printf(学号:20 姓名:吴琛 实验三第七题);运行结果:(需要截图)运行结果分析:利用if语句的循环语句套用来编写程序。8、任务名称编程:素数是除了1和其本身以外,

12、不能被其他自然数整除的自然数。从键盘输入一个数,判断该数是不是素数? 编程点拨:a) 输入这个数x。b) 用for循环2x-1,用2x-1的每一个数去除x,若有一个数整除x,则说明x不是素数;否则,x就是素数。c) 最后,将判断结果输出。#include void main( ) int i, x;printf(Enter one natural integer: );scanf(%d ,&x);for(i=2;ix-1;i+) /*补充完成该程序*/补充后的程序:#include void main() int n,s,i,k; printf(n=?); scanf(%d,&n); i=2;

13、 s=1; while (i=n) for (s=2;s=i-1) printf(%d ,i); i+; printf(学号:20 姓名:吴琛 实验三第八题);先判断,再用if语句就行了思考:其实,只需要判断2之间的整数能否整除x就可以判断x是否为素数,此时,如何修改程序?源代码:#include void main()int i,j,a;scanf(%d,&i);for(j=2;jsqrt(i);j+) a=i%j; if(a=0) printf(不是素数); break; if(j=i) printf(是素数);运行结果:(需要截图)运行结果分析:用for循环2x-1,用2x-1的每一个数

14、去除x,若有一个数整除x,则说明x不是素数;否则,x是素数。9、任务名称.编程:显示所有的水仙花数。谓水仙花数,是指一个3位数,其各位数字立方和等于该数字本身。例,153是水仙花数,因为153=13+53+33 。有两种解题思路,选择其中之一编程实现: (1) 利用三重循环,将这三个数通过一定的运算符连接成一个3位数,然后判断是否是水仙花数。for(i=1;i=9;i+)for(j=0;j=9;j+)for(k=0;k=9;k+) 注意,因水仙花是一个三位数,百位i是从1开始,不能从0开始,十位j和个数位k可以从0开始。(2) 利用一个循环,对100999范围内的每个3位数逐位分离后进行判断。

15、for(i=100;i999;i+) a=i/100; b=(i-a*100)/10; c=i%10;源代码:(1)#include void main() int i,j,k; for(i=1;i10;i+) for(j=0;j10;j+) for(k=0;k10;k+) if( (i*100+j*10+k)=(i*i*i)+(j*j*j)+(k*k*k) printf(%d%d%d ,i,j,k); getch(); printf(学号:20 姓名:吴琛 实验三第九题n);(2)#include void main()int i,x,y,z;for(i=100;i=999;i+)x=i%1

16、0; y=(i/10)%10; z=(i/100)%10;if (x*x*x + y*y*y + z*z*z = i) printf(%dn,i); printf(学号:20 姓名:吴琛 实验三第九题n);运行结果:(需要截图)运行结果分析:利用三重循环,将这三个数通过一定的运算符连接成一个3位数,然后判断是否是水仙花数。10、任务名称10.编程:输出下列图形。 分析:这是由星号构成的5行5列的三角形图形。每一行的星号数量为:1、3、5、7、9。考虑两点,一是每一行上星号的生成规则,二是每一行第一个星号字符的输出位置。每一行的星号与行号有关,即2*i+1,其中i是行号;每一行的输出位置比上一行

17、少一个空格,可以这样实现:for(j=1;j=40-i;j+) printf(“%c”, ),其中i是行号。源代码:#include #define N 5void main() int i,j; for(i=0;iN;i+) for(j=0;jN+i;j+) if(jN-i-1) printf( ); else printf(*); printf(n); printf(学号:20 姓名:吴琛 实验三第十题n);运行结果:(需要截图)运行结果分析:通过数列排列编写图形。三、结论(写本次实验的收获)1.掌握用while语句、do while语句和for语句实现循环的方法。2. 掌握在程序设计中用循的方法实现一些常用算法。并进一步学习调试程序的方法。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2