如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
实验名称:函数的使用实验目的掌握C语言函数的定义及调用方法;掌握函数嵌套调用和递归调用的方法及执行过程;掌握函数实参与形参之间传递数据信息的方式及过程,及其对应关系;能为简单的函数设计算法和编写函数;了解并掌握宏定义的应用。实验要求本实验要求完成函数的应用程序设计。具体要求如下:程序填空给定程序中函数fun的功能是:找出100~n(不大于1000)之间的三位数字相等的所有整数,把这些整数放在s所指的数组中,整数的个数作为函数值返回。在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果即可。程序填空如下:#include<stdio.h>#defineN100intfun(int*s,intn){inti,j,k,a,b,c;j=0;for(i=100;i<n;i++){/**************found**************/k=i;a=k%10;k/=10;b=k%10;k/=10;/**************found**************/c=k;if(a==b&&a==c)s[j++]=i;}returnj;}main(){inta[N],n,num=0,i;do{printf(“\nEntern(<=1000);“);scanf(“%d”,&n);}while(n>1000);num=fun(a,n);printf(“\n\nTheresult:\n”);for(i=0;i<num;i++)printf(“%5d”,a[i]);printf(“\n\n”);}程序改错给定程序中函数fun的功能是:将形参n中各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。例如,从主函数输入一个整数27638496,函数返回值为26846。请改正函数fun中指定部位的错误,使它能够得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。需改正程序如下:#include<stdio.h>unsignedlongfun(unsignedlongn){unsignedlongx=0,s,i;intt;s=n;/*********found**********/i=0;(正确的是i=1)/*********found**********/while(s<=0)(正确的是s>0){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;}returnx;}main(){unsignedlongn=-1;while(n>99999999||n<0){printf(“Pleaseinput(0<n<100000000):“);scanf(“%ld”,&n);}printf(“\nTheresultis:%ld\n”,fun(n));}3、编写程序(1)给定程序中函数fun的功能是:输出M行M列的整数方阵,然后求两条对角线上的元素之和,要求返回此和数。同时,在函数中需完整输出整数方阵和对角线上元素之和。因此,编写程序时需注意方阵元素的排列顺序和求对角线元素之和时不要漏项。另外,两条对角线交叉点上的一个值允许重复计算。注意:切勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的语句。程序如下:#include<conio.h>#include<stdio.h>#defineM5intfun(intn,intxx[M][M]){inti,j,sum=0;for(i=0;i<n;i++){for(j=0;j<n;j++){printf("%d",xx[i][j]);}sum+=xx[i][i]+xx[n-i-1][i];printf("\n");}returnsum;}main(){intaa[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(“\nThesumofallelementson2diagnalsis%d.”,fun(M,aa));}(2)使用递归方法求解斐波那契数列的前30项。其中,斐波那契数列由以下公式定义:0(n=0)Fib(n)=1(n=1)Fib(n-2)+Fib(n-1)(n>1)从上述公式可以看出:斐波那契数列的第1个数是0,第