资源描述:
《实验四实验报告卓越14彭佳伟》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、C语言程序设计实验报告班级卓越工程师班成绩指导教师李开学号U201414716同组人姓名专业计算机科学与技术FI期2014年11刀26H第四次实验函数与程序结构实验学生姓名彭佳伟实验组別实验名称函数与程序结构实验一、实验目的(1)熟悉和学握函数的定义、声明,函数调用与参数传递方法,以及函数返回值类型的定义和返回值使用。(2)熟悉和掌握不同存储类型变量的使用。(3)熟悉多文件编译技术。二、实验任务1、源程序改错下面是计算s=1!+2'3!+...+n!的源程序,在这个源程序中存在若T语法和逻辑错误。要求在计算机上对这个例子源程序进行调
2、试修改,使Z能够正确完成指定任务。源程序1#includeintmain(void){intk;for(k=1;k<6;k++)printf(Hk=%dtthesumis%ldM,k,sum_fac(k));}return0;longsum_fac(intn){longs=0;inti;longfac;for(i=l;i<=n;i++)fac*=i;s+=fac;returns;}2、源程序修改替换(1)修改上术源程序中的sum.fac函数,使其计算量最小。(2)修改上述源程序中的sum_fac函数,计算s=
3、1+1⑵+1/3!++l/n!3•跟踪调试下面是计算fabonacci数列而n项和的源程序,现要求单步执行该程序,并观察p,i,sum,n的值,即:(1)刚执行完“scanf(“%d”,&k);”语句时,p,i值是多少?(2)从fabonacci函数返回后,光条停留在哪个语句上?(3)进入fabonacci函数时,watches窗口显示的是什么?(4)当i二3时,从调用fabonacci函数到返回,n值如何变化?源程序2:#includelongfabonacci(int);intmain(){inti,k;lon
4、gsum=0,*p=∑scanf(,,%dl&k);for(i=1;i<=k;i++){sum+=fabonacci(i);printf(ni=%dtthesumis%dn,i,*p);}return0;}longfabonacci(intn){if(n==1
5、
6、n==2)return1;elsereturnfabonacci(n・1)+fabonacci(n-2);}4•程序设计编写并上机调试运行能实现以下功能的程序:(1)编写一个程序,让用户输入两个整数,计算两个数的最大公约数并且输岀之。要求用递归函数实现求最大
7、公约数,同时以单步方式执行该程序,观察其递归过程。(2)编写一个程序,验证哥徳巴赫猜想:一个人于等于4的偶数都是两个素数之和。(3)编写一个程序,证明对于在符号常量BEGIN和END之间的偶数这一猜测成立。如,如果BEGIN为10,END为20,则程序的输出应为:GOLDBACH'SCONJECTURE:Everyevennumbern>=4isthesumoftwoprimes・10=3+712=5+720=3+17三、实验步骤及结果1•源代码://2.4.1////Createdbyappleon14/11/26.//Copyr
8、ight(c)2014年pjw—hust.Al1rightsreserved.//#ineludelongsumfac(inti);intmain(void){intk;for(k=l;k<6;k++){printf("k=%dtthesumis%1dz/,k,sumfac(k));}return0;}longsumfac(intn){longs二0;inti;longfac=1;for(i=l;i<=j;i++){fac*=i;s+=fac;}}returns;运行结果:k=lthesumis1k=2the
9、sumis3k=3thesumis9k=4thesumis33k=5thesumis153Programendedwithexitcode:02.1源代码//2.4.2.1////Createdbyappleon14/11/26.//Copyright(c)2014年pjw—hust・Allrightsreserved.//#includelongsum_fac(inti);intmain(void){intk;for(k=l;k<6;k++){printf(,zk=%dtthesumis%ld",k,sum
10、fac(k));}return0;longsum_fac(intn){staticlongs=0;staticfac=l;fac*二n;s+二fac;returns;运行结果:k=lthesumis1k=2thesumis3k=3th