- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验名称:函数的使用实验目的掌握C语言函数的定义及调用方法;掌握函数嵌套调用和递归调用的方法及执行过程;掌握函数实参与形参之间传递数据信息的方式及过程,及其对应关系;能为简单的函数设计算法和编写函数;了解并掌握宏定义的应用。实验要求本实验要求完成函数的应用程序设计。具体要求如下:程序填空给定程序中函数fun的功能是:找出100~n(不大于1000)之间的三位数字相等的所有整数,把这些整数放在s所指的数组中,整数的个数作为函数值返回。在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果即可。程序填空如下:#include stdio.h#define N 100int fun(int *s,int n){ int i,j,k,a,b,c;j=0;for(i=100;in;i++) {/**************found**************/k= i ;a=k%10; k/=10;b=k%10; k/=10;/**************found**************/c= k ;if(a==ba==c) s[j++]=i;}return j;}main(){ int a[N],n,num=0,i;do{ printf(“\nEnter n(=1000); “); scanf(“%d”,n); }while(n1000);num=fun(a,n);printf(“\n\nThe result:\n”);for(i=0; inum; i++) printf(“%5d”,a[i]);printf(“\n\n”); }程序改错给定程序中函数fun的功能是:将形参n中各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。例如,从主函数输入一个整函数返回值为26846。请改正函数fun中指定部位的错误,使它能够得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。需改正程序如下:#include stdio.hunsigned long fun(unsigned long n){ unsigned long x=0,s,i;int t;s=n;/*********found**********/i=0; ( 正确的是 i=1)/*********found**********/while(s=0) ( 正确的是 s0){ t=s%10;if(t%2==0){/*********found**********/x=x+t*i; i=i+10; ( 正确的是 x=x+t*i; i=i*10;)}s=s/10;}return x;}main(){ unsigned long n=-1;while(|n0){printf(“Please input(0n100000000):“);scanf(“%ld”,n); }printf(“\nThe result is:%ld\n”,fun(n));}3、编写程序(1)给定程序中函数fun的功能是:输出M行M列的整数方阵,然后求两条对角线上的元素之和,要求返回此和数。同时,在函数中需完整输出整数方阵和对角线上元素之和。因此,编写程序时需注意方阵元素的排列顺序和求对角线元素之和时不要漏项。另外,两条对角线交叉点上的一个值允许重复计算。注意:切勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的语句。程序如下:#include conio.h#include stdio.h#define M 5int fun(int n,int xx[M][M]){ int i,j,sum=0;for(i=0;in;i++){for(j=0;jn;j++){printf(%d ,xx[i][j]);}sum+=xx[i][i]+xx[n-i-1][i];printf(\n);}return sum;}main(){int aa[M][M] = {{1,2,3,4,5},{4,3,2,1,0},{6,7,8,9,0}, {9,8,7,6,5},{3,4,5,6,7}};printf(“\nThe sum of all elements on 2 diagnals is %d.”,fun(M,aa));}(2)使用递归方法求解斐波那契数列的前30项。其中,斐波那契数列由以下公式定义:0 (n=0)Fib(n)=1 (n=1) Fib(n-2)+Fib(n-1) (n1)从上述公式可以看出:斐波那契数列的第1个数是0,第2个数是1,从第3个数开始,以后每个数都是前两个数之和。解:#includestdio.hvoid main(){fib
文档评论(0)