资源描述:
《C语言实验指导2--用函数进行程序设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验2用函数进行程序设计实验目的1、掌握c语言函数定义及调用的规则,理解参数传递的过程。2、掌握函数嵌套调用过程及递归调用过程。3、理解数组元索作参数和数组名作参数的不同。4、编程验证全局变量、局部变量,动态变量、静态变量。实验内容1、编程验证基本的函数定义和调用下面的程序,在主函数main中输入2个整数,并传给函数max。函数max返回最大值。#ineludeintmax(intx,inty){/*本函数返回x和y中的最大值*/intz;if(x>y)z=x;main(){inta,b;
2、printfC请输入a和b,用空格分开:z,);scanf("%d%d",&a,&b);printf("最大值是%d,z,max(a,b));2、编程验证函数嵌套调用的执行过程执行下面的程序,分析恢套调用的过程。再分析一下,如果没有函数声明,编译时有何问题。#includevoidfl(void);/*这3行是函数声明*/voidf2(void);voidf3(void);voidfl(){printf("Iamfl");f2();3>编程验证函数的递归调用过程^include
3、intf(inta[],intn){if(n>=l){printf("要计算f(a,%d),先计算f(a,%d)",n,n~l);returnf(a,nT)+a[nT];}elsereturn0;}main(){intaa[5]={l,2,3,4,5},sum;sum二f(aa,5);printf(z,数组aa[5]中5个元素的总和>%dz,,sum);4、编程验证数组元素及数组名作参数有何不同数组元素作参数以及数组名作参数(1)把数组元素作参数。下面的程序,main函数中有数组a
4、⑹。其中a[0]飞[4]这5个元素赋了初值。要获得其中最大值,放到元素a[5]中。#includeintmax(intxO,intxl,intx2,intx3,intx4){/*获得5个变量的最大值*/inti,m,b[5];m=b[O]=x0;b[1]二x1;b[2]=x2;b[3]=x3;b[4]=x4;for(i=l;i<5;i++)if(b[i]>m)m=b[i]:returnm;Jmain(){intm,a[6]={23,45,89,12,34};/*a[5]没有赋初值,系统自动
5、初始化为0*/a[5]=max(a[0],a[l],a⑵,a[3],a[4]);/*将a[0]~a[4]的最大值放到a[5]中*/printff数组a的最大值已经放到a[5]中,值是%d",a⑸);}(2)把数组名作参数。^includevoidmax(intb[],intn){/*获得数组b[冲的前n个元素的最大值,放到1)[口]中*/inti,m;m=b[0];for(i=l;i<5;i卄)if(b[i]>m)m=b[i];b[n]二m;/*修改了b[5],实际上就修改了a[5]*
6、/}main(){intm,a[6]={23,45,89,12,34};/*a[5]没有赋初值,系统自动初始化为0*/max(a,5);/*将a[冲前5个元素的最大值放到a⑸中*/printf(z/数组a的最大值已经放到a[5]中,值是%drT,a[5]);5、编程验证全局变量.局部变量,动态变量、静态变量。下面的程序,main+是个循环,每次输入a和b的值,输出这是第几次,并输出最人值。max函数屮有一静态局部变量count,用來存放被调用的次数。注意,虽然它是局部变量,但因为它是静态的,所以有固定内存
7、空间,其值在max函数退出后可以得到保留。将这个程序和本实验的笫一个程序进行比较,思考为什么在函数调用时不用参数。^includeinta=l,b;/*全局变量*/intmax(){/*本函数返回a和b中的最大值*/intz=3;/*局部变量,存放本次输入的2个数中的最大值*/staticintcount二0;/*静态局部,本函数被调用的次数,每次被调用,count加1*/if(a>b)z=a;elsez二b;count++;printf(“这是第%d次被调用rT,count);retu
8、rnz;}main(){while(a!=0){/*如果输入的a是0,那么退出循环*/printfC请输入a和b,用空格分开:");scanf("%d%d",&a,&b);printf("最大值是%d/z,max());}6、自rh编程。要求:要用到extern(声明下面要用到外部变量或外部函数)要用到static(静态变量或静态函数)