C程序设计上机实验报告04_第1页
C程序设计上机实验报告04_第2页
C程序设计上机实验报告04_第3页
C程序设计上机实验报告04_第4页
C程序设计上机实验报告04_第5页
已阅读5页,还剩2页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

第1页共7页C程序设计实验报告实验名称:实验四循环结构程序设计学时安排:第八周实验类别:操作型实验要求:1人1组 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄一、实验目的1.进一步熟练并掌握单步调试方法,学习使用“Debug”菜单调试程序的方法;2.熟练使用for、while和do…while语句实现循环程序设计;3.理解循环条件和循环体,以及for、while和do…while语句的相同及不同之处;4.熟练掌握break语句和continue语句的作用及使用。二、实验设备介绍软件需求:VisualC++6.0或CFree3.5以上版本硬件需求:对于硬件方面的要求,建议配置是PentiumIII450以上的CPU处理器,64MB以上的内存,200MB的自由硬盘空间、CD-ROM驱动器、能支持24位真彩色的显示卡、彩色显示器、打印机。三、实验内容1.改错题:源程序见error04_1.cpp,程序实现功能为输入2个正整数m和n,输出它们的最小公倍数和最大公约数。要求先读该源程序,并理解其中的算法。然后把正确的代码(按规范缩进)写入报告,并以注释的方式说明错误原因。注释示例如下:inti; /*循环控制变量不能定义为double类型*/思考:如果先求最大公约数该如何修改程序?2.求1-1/3+1/5-1/7+⋯⋯。读入1个正实数eps,计算并输出1-1/3+1/5-1/7+⋯⋯,直到最后一项的绝对值小于eps(保留6位小数)。例:括号内是说明Enterapositiveinteger(0<eps<1):0.00010.7853483.求a+aa+aaa+aa⋯a。输入2个正整数a和n,求a+aa+aaa+aa⋯a(n个a)之和。注:求取每一项时可以利用前后项之间的关系。例:下面括号内是说明Entermandn:85(a=8,n=5)98760(8+88+888+8888+88888)4.求最大最小值。输入一个正整数n,再输入n个整数,输出最大及最小值,求最大及最小值请参考书上例4-7。下面括号内是说明Enternandthecorrespondingintegers:42123-1000(n=4,后面是4个整数)max=123,min=-100。5.程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat(0<repeat<10),做repeat次下列运算:输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。注:输入时,一行字母的结束标识可以用换行符。例:下面括号内是说明Enterrepeatedtimesandthecorrespondingcharacters:2(repeat=2)Reoldbuildingroom123.letter=17,blank=3,digit=3,other=1Programmingisfunletter=16,blank=2,digit=0,other=0四、程序清单第一题#include<stdio.h>intmain(void){intm,n,j,k;/*j表示最小公倍数,k表示最大公约数*/do{printf("Inputm:");scanf("%d",&m);printf("Inputn:");scanf("%d",&n);}while(m<0||n<0); j=m;while(j%n!=0)/*调试时设置断点*//*最小公倍数对应n取余*/j=j+m; k=(m*n)/j;/*调试时设置断点*/printf("最小公倍数是%d\n最大公约数是%d\n",j,k);return0;}第二题#include<stdio.h>#include<math.h>intmain(){intb,flag;doubleitem,sum,eps;flag=1;b=1;item=1.0;sum=0;printf("Enterapositiveinteger(0<eps<1):");scanf("%lf",&eps);while(fabs(item)>=eps){item=flag*1.0/b;sum=sum+item;flag=-flag;b=b+2;}printf("%.6f\n",sum);return0;}第三题#include<stdio.h>intmain(){inti,s,a,n,item;printf("Enteraandn:");scanf("%d%d",&a,&n);s=0;item=a;for(i=1;i<=n;i++){s=item+s;item=item*10+a;}printf("%d\n",s);return0;}第四题#include<stdio.h>intmain(){inti,n,max,min,t;printf("Enternandthecorrespondingintegers:");scanf("%d",&n);scanf("%d",&t);max=t;min=t;for(i=1;i<n;i++){scanf("%d",&t);if(max<t)max=t;if(min>t)min=t;}printf("max=%d,min=%d\n",max,min);return0;}第五题#include<stdio.h>intmain(){intri,repeat;intblank,digit,letter,other;charc;printf("Enterrepeatedtimesandthecorrespondingcharacters:");scanf("%d",&repeat);getchar();for(ri=1;ri<=repeat;ri++){letter=digit=blank=other=0;while((c=getchar())!='\n'){ if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))letter++;elseif(c>='0'&&c<='9')digit++;elseif(c=='')blank++;elseother++;}printf("letter=%d,blank=%d,digit=%d,other=%d\n",letter,blank,digit,other);}return0;}五、运行结果第一题第二题第三题第四题第五题六、实验心得本章学习了三种循环语句:for、while和dowhile。Do-while语句先执行循环体,后判断循环条件。无论循环条件的值如何,至少会执行一次循环体。而for语句和while语句都是循环前先判断

温馨提示

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

评论

0/150

提交评论