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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言程序设计实验报告3Word文档格式.docx

1、8 return 0;9 long sum_fac(int n)10 11 long s=0;12 int i;13 long fac;14 for(i=1;i=n;i+)15 fac*=i;16 s+=fac;17 return s;18解答:(1)错误修改1)未声明函数sum_fac(int n)的情况下,就调用函数。2)第8行中,return 0;语句应放在主函数中。3)第15,16行,应该被括号括起来,否则程序意义不是计算阶乘的和。 (2)修改错误后的程序为 #includelong sum_fac(int n);int main(void) int k; long sum_fac(i

2、nt n); for(k=1; printf( return 0;long sum_fac(int n) long s=0; int i; long fac=1; for(i=1; fac*=i; s+=fac; return s;(3)运行结果 图1 3.2.1程序运行截图3.2.2源程序修改替换(1)修改第1题中sum_fac函数,使其计算量最小。1)将long设为静态局部变量,当退出函数时,long的值被保存在内存中,再次调用函数时,不用再对long初始化,静态局部变量的值具有记忆性。替换后的程序如下所示:#include int k; static long s=0;2)运行截图及说明

3、 图2 3.2.2(1)程序运行截图(2)修改第1题中sum_fac函数,计算。1)第1题计算的是阶乘的和,而现在需要计算阶乘的倒数的和。只需将s+=fac替换为s+=1.0/fac即可。 double sum_fac(int n);k=%dtthe sum is %lfn double sum_fac(int n) double s=0; s+=1.0/fac;图3 3.2.2(2)程序运行截图3.2.3跟踪调试计算fabonacci数列前n项和的程序如下:其中,long sum=0,*p=∑声明p为长整型指针并用&sum取出sum的地址对p初始化。*p表示引用p所指的变量(*p即s

4、um)。;long fabonacci(int n); int i,k; long sum=0,*p=& scanf(%d,&k);=k;i+) sum+=fabonacci(i);i=%dtthe sum is %ldn,i,*p);return0;long fabonacci(int n) if(n=1 | n=2) return 1; else return fabonacci(n-1)+fabonacci(n-2);单步执行程序,观察p,i,sum,n值。(1)刚执行完scanf(语句,p,i值是多少?p=(long int)0x28ff00 i=60(2)从fabonacci函数返回

5、后光条停留在哪个语句上? 光条停留在语句printf(3)进入fabonacci函数,watch窗口显示的是什么? 输入k=6时,i与sum的值的变化。(4)当i=3,从调用fabonacci函数到返回,n值如何变化?3.2.4程序设计(1)编程让用户输入两个整数,计算两个数的最大公约数并且输出之(要求用递归函数实现求最大公约数)。同时以单步方式执行该程序,观察递归过程。1)解题思路1.输入两个整数x,y。2.判断x与y的大小,若xy,将x与y对换。3.如果x%y=0,输出y。4.否则,yueshu(y,x%y)。2)程序清单。int main() int x,y;请输入两个不为0的整数:);

6、%d%dx,&y);这两个整数的最大公约数是%d,yueshu(x,y);int yueshu(int x,int y) int z; if(xy) z=x; x=y; y=z; if(x%y=0) return y; return yueshu(y,x%y);3)测试。测试用例输入的两个整数 应输出的理论结果用例1 24 78 6用例2 98 28 14 图4 3.2.4(1)用例1程序运行截图 图5 3.2.4(1)用例2程序运行截图(2)编程验证歌德巴赫猜想:一个大于等于4的偶数都是两个素数之和。1.先输入一个大于等于4的偶数z, n的起始值为0。2.将z分为相等两部分,x1为z/2+n

7、,另一部分为z-x1。3.先判断x1是不是质数,如果不是,则n+1,直到n=z/2。4.如果x1是质数,再判断x2是不是质数。5.如果是质数,输出x1,x2。6.n+1, 直到n=z/2。回到第2步。2)程序清单:#include int x1,x2,z,n,i,k;请输入一个大于等于4的偶数:z); for(n=0;n=4 is the sum of two primes.10=3+712=5+720=3+171)解题思路:1输入符号常量BEGIN和END。2定义偶数z为BEGIN+j,j的初始值为0。3判断j是否小于END-BEGIN。4若小于END-BEGIN,将z分为相等两部分,x1为

8、z/2+n,另一部分为z-x1,n的初始值为0。5先判断x1是不是质数,如果不是,则n+1,直到n=z/2。6如果x1是质数,再判断x2是不是质数。7如果是质数,输出x1,x2。8j=j+2,回到第3步。 2)程序清单: int x1,x2,z,n,i,k,j; int BEGIN,END;BEGIN,&END);n=4 is the sum of two primes.n for(z=BEGIN;z=END;z=z+2) for(n=1; if(k=x2)%d=%d+%dn,z,x2,x1);图11 3.2.4(3)用例1程序运行截图 图12 3.2.4(3)用例2程序运行截图3.2.5选做

9、题假设一个C程序由file1.c、file2.c两个源文件和一个file.h头文件组成,file1.c、file2.c和file.h的内容分别如下,试编辑该多文件C程序,并编译和链接。然后运行生成的可执行文件。源文件file1.c的内容为:#include file.hint x,y; /* 外部变量的定义性说明 */char ch; x=10; y=20; ch=getchar();in file1 x=%d,y=%d,ch is %cn,x,y,ch);func1();return 0;源文件file2.c的内容为:void func1(void) x+; y+; ch+;in file2

10、 x=%d,y=%d,ch is %cn头文件file.h的内容为:extern int x,y; /* 外部变量的引用性说明 */extern char ch;void func1(void); /* func1函数原型 */1)程序清单:2)运行结果: 图13 3.2.5程序运行截图 图14 3.2.5程序运行截图3.3实验小结 在编写程序时,一定要十分小心,尤其在循环语句的编写中,要注意循环继续和终止的条件。如果出现错误,要仔细的调试,一步一步的来,不能急躁。在编写程序时,尽量使程序的计算量要小,这需要掌握好变量的种类运用。通过这次实验,我对程序调试的熟练度大大增加,了解了多文件程序的编译与链接。并且了解一些新的算法思想。这使我的思维角度大大拓宽。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1