


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计实验报告班级日期2012/4/16学生学号第2次上机实验1函数与程序结构(一) 实验目的1熟悉和掌握函数的定义、声明;函数调用与参数传递方法;以及函数返回值类型的定义和返回值使用。2熟悉和掌握不同存储类型变量的使用。3熟悉多文件编译技术。(二) 实验内容及要求1.源程序改错下面是计算s=1!+2!+3!+n!的源程序,在这个源程序中存在假设干语法和逻辑错误。要求在电脑上对这个例子程序进行调试修改,使之能够正确完成指定任务。源程序:#include<stdio.h>voidmain(void)intk;for(k=1;k<6;k+)printf("k=%
2、dtthesumis%ldn”,k,sum_fac(k);longsum_fac(intn)longs=0;inti;longfac;for(i=1;i<=n;i+)fac*=i;s+=fac;returns;改后:#include<stdio.h>longsum_fac(int);voidmain(void)intk;for(k=1;k<6;k+)printf("k=%dtthesumis%ldn”,k,sum_fac(k);longsum_fac(intn)longs=0;inti;longfac=1;for(i=1;i<=n;i+)(fac*=i;
3、s+=fac;returns;thethethe+hetheSUHSUJlSUJUsumsujnISisisISis13g39153returnedIS(Ok13)executicntime:0,(>80冬rocassressanykeytocontinue.2.源程序修改替换1修改上述源程序中的2修改上述源程序中的sum_fac函数,使其计算量最小。sum_fac函数,计算2!13!1n!1#include<stdio.h>longsum_fac(int);voidmain(void)(intk;for(k=1;k<6;k+)printf("k=%dtthe
4、sumis%ldn”,k,sum_fac(k);longsum_fac(intn)(staticlongs=0;staticlongfac=1;fac*=n;s+=fac;returns;theswis1Ethesumis3k=3thssujnis9k=4thesum1s33k-5thesumis153ProcessreturriadID(0«L3)SKectitiaiAtune!0.LOOsPressanykeytocoritiriue.2#include<stdio.h>doublesum_fac(int);voidmain(void)(intk;for(k=1;k&
5、lt;6;k+)printf("k=%dtthesumis%fn”,k,sum_fac(k);一doublesum_fac(intn)(一doubles=0;inti;longfac=1;for(i=1;i<=n;i+)(fac*=i;s+=1.0/fac;returns;-1thesumis1*000030-2the宜tu>xs500000f:3th?mujbisL56SS57-4thegunisb708333:='5thesui»is1.710657'recessreturned24(Qe13)esecutiontime;0085sanyke
6、ytocontinue-3. 跟踪调试下面是计算fabonacci数列前n项和的源程序,现要求单步执行该程序,并观察p,i,sum,n值,即:1刚执行完scanf("%d",&k);语句时,p,i值是多少?2从fabonacci函数返回后,光条停留在哪个语句上?3进入fabonacci函数时,watch窗口显示的是什么?4当i=3时,从调用fabonacci函数到返回,n值如何变化?源程序:voidmain(void)(inti,k;longsum=0,*p=∑scanf("%d",&k);for(i=1;i<=k;
7、i+)(sum+=fabonacci(i);printf("i=%dtthesumis%ldn",i,*p);longfabonacci(intn)(if(n=1|n=2)return1;elsereturnfabonacci(n-1)+fabonacci(n-2);其中,"longsum=0,*p=∑"声明p为长整型指针并用&sum取出sum的地址对p初始化。*p表示引用p所指的变量*p即sum。1p=0x0012ff74,i=-858993460(2)sum+=fabonacci(i)3显示n的值(4)n从3变成44. 程序设
8、计编写并上机调试运行能实现以下功能的程序。编写一个程序,让用户输入两个整数,计算两个数的最大公约数并且输出之。要求用递归函数实现求最大公约数,同时以单步方式执行该程序,观察其递归过程。(1) 编写一个程序,验证歌德巴赫猜想:一个大于等于4的偶数都是两个素数之和。(2) 编写一个程序,证明对于在符号常量BEGIN和END间的偶数这一猜测成立。例如,如果BEGIN为10,EN以20,则程序的输出应为:GOLDBACH'SCONJECTURE:Everyevennumbern>=4isthesumoftwoprimes.10=3+712=5+720=3+17#include<st
9、dio.h>inta(intx,inty)(inttemp;temp=x%y;if(temp=0)(returny;else(returna(y,temp);voidmain()(intx,y;printf("Inputx,y(x>y):n");scanf("%d%d",&x,&y);printf("最大公约数是%dn",a(x,y);Inputw(茉y):易大公约数是4Fiocessreturned14(0kE)executiontiiiie:5.820sPressanykeytocontimie.#in
10、clude<stdio.h>#include<math.h>inta(intj)(inti,n;n=sqrt(j);for(i=2;i<=n;i+)if(j%i=0)return0;returnj;voidmain()(intn,j,up;printf("inputup:n");scanf("%d”,&up);printf("4=2+2n");for(n=6;n<=up;n+=2)for(j=3;j<=n/2;j+=2)if(a(j)&&a(n-j)printf("%d
11、=%d+%dn”,n,j,n-j);break;inputup:204=2+2&=时510=3+712=5+714=3+1116=ma13=5+1320=3+17Processreturned20(Ok14)executiontime:3.430sPressanyto#include<stdio.h>#include<math.h>inta(intj)inti,n;n=sqrt(j);for(i=2;i<=n;i+)if(j%i=0)return0;returnj;voidmain()(intn,j,BEGIN,END;printf("Input
12、BEGIN,ENDn");scanf("%d%d”,&BEGIN,&END);printf("GOLDBACH'SCONJECTURE:nEveryevennumbern>=4isthesumoftwoprimes.n");for(n=BEGIN;n<=END;n+=2)for(j=2;j<=n/2;j+)if(a(j)&&a(n-j)printf("%d=%d+%dn”,n,j,n-j);break;IgwtEEGI1T,END1020GOLDEACH*SCOHJECTURE:Evex
13、yevennumberri>-Aisthasumoft>opTimss.10=3+712=5+714=3+1116-M318=5+1320=3+17Processreturned20(0x14)eiecutiantime;6.430sPressanykeytocontinue.实验心得与体会通过编程,调试,从错误中学习各种语法细节,补充自己平时没注意的知识,而且明白了程序设计不单单需要对代码熟练,更重要的是要有好的设计思路。一个好的设计思路不仅能处理一些实用的问题,还能节约设计程序所用的时间和运行程序所花的时间。所以我应该尝试多设计一些简捷实用的程序,尽量多想一些简单可行的方法。选
14、做题(1)假设一个C程序由file1.c和file2.c两个源文件及一个file.h头文件组成,file1.c、和e2.c和file.h的内容分别如下所述。试编辑该多文件C程序,并编译和链接。然后运行生成的可执行文件。源文件file1.c的内容为:#include"file.h"intx,y;/*外部变量的定义性说明*/charch;/*外部变量的定义性说明*/voidmain(void)x=10;y=20;ch=getchar();printf("infilelx=%d,y=%d,chis%cn”,x,y,ch);func1();源文件file2.c的内容为:#
15、include"file.h"voidfunc1(void)x+;y+;ch+;printf("infile2x=%d,y=%d,chis%cn",x,y,ch);头文件file.h的内容为:#include<stdio.h>externintx,y;/*外部变量的引用性说明*/externcharch;/*外部变量的引用性说明*/voidfuncl(void);/*funci函数原型*/4anagernertXfilel,匚kfle.h£ProjectsS/rrbGteResA£34&683101L1213tzn.eLude*fila-h*int-虬Y,/*jM*定义说*/chareh./*外部变的定义性说明*/voidvoid)By=20;ch=geccliart"in.filelk=%d,chis%cr"rx,yseh.)fnncij);LWorlcsps-ze冲&Sojrce?fil-l.c1filW.匚B"H»3d«K£_file.hIIIin.filelckismin.file2工=11,7=21,cLisnProcessreturned27eKS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钻床工组织能力考核试卷及答案
- 离婚协议书是否具有法律效力
- 绝缘成型件制造工转岗考核试卷及答案
- 电影摄影设备装配调试工安全操作规程考核试卷及答案
- 浸渍干燥工标准化技术规程
- 2026届江苏省扬州市邗江区部分学校九年级数学第一学期期末检测模拟试题含解析
- 2025合同模板健身器材采购合同书范本
- 买卖合同范本汇编15篇
- 代理合同范文(20篇)
- EMIP培训资料-课件
- 二年级趣味数学校本教材
- 好利来工作协议合同模板
- 煤矿回收材料管理制度
- 2025年云南事业单位a类真题及答案
- 美容皮肤临床技术操作规范方案
- 2025年机关意识形态工作要点
- (高清版)DB36∕T 1324-2020 公路建设项目档案管理规范
- 《凯勒战略品牌》课件
- 畜禽粪污资源化利用培训
- 女生穿搭技巧学习通超星期末考试答案章节答案2024年
- 2024年大学试题(政治学)-比较政治制度考试近5年真题集锦(频考类试题)带答案
评论
0/150
提交评论