实验函数的调用与递归.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验函数的调用与递归.doc

实验8 函数的调用与递归 一、实验目的 1. 熟练掌握函数的定义、函数的调用的基本格式与方法。 2. 理解递归函数的基本概念和计算机执行递归函数的过程。 3. 初步认识结构化程序设计。 二、实验要求 1. 通过一个完整的程序,学习函数的定义与调用的基本格式与方法。 2. 通过程序中return语句的使用,理解函数返回值的概念,并学习如何取得函数返回值。 3. 通过编写含有参数的函数,进一步理解函数间的参数传递过程。 4. 通过一个含有递归函数的实例,理解递归函数的基本概念,学习分析计算机执行递归函数的过程。 5. 通过一个比较复杂的程序,初步认识结构化程序设计实例。 三、实验内容 1. 调试运行下列程序,并注意函数的定义格式以及函数的调用方法,特别要注意形参变量与实参变量的对应关系和形参与实参之间的数据传递。 float sum_of_square ( int n ) { int i; float sum=0.0; for (i=1; i=n; i++) sum=sum+i*i; return(sum); } main ( ) { float s; s=sum_of_square(12)* sum_of_square(15); printf (“s=%f”,s); } 调用sum_of_square次数 实参值 形参单元 1 12 传递给 n 2 15 传递给 n 2. 调试运行下列程序,并注意函数间的参数传递,深刻理解“单向传递(值的传递)”。 (1) main ( ) { int a[3]={1,2,3}; void f1( ); f1(a[0],a[1],a[2] ); printf (“a[0]=%d,a[1]=%d,a[2]=%d\n”, a[0],a[1],a[2] ); } void f1(int x,int y,int z ) { x++; y=y+2; z=z+3; printf (“x=%d,y=%d,z=%d\n”, x,y,z ); return; } (2) main ( ) { int a[3]={1,2,3}; void f2( ); f2(a); printf (“a[0]=%d,a[1]=%d,a[2]=%d\n”, a[0],a[1],a[2] ); } void f1(int x[] ) { x[0]++; x[1]=x[1]+2; x[2]=x[2]+3; printf (“x[0]=%d,x[1]=%d,x[2]=%d\n”, x[0],x[1],zx[2]); return; } 3. 编写一个递归函数,计算整数a 和b的最大公因子,并分析程序运行时函数调用情况。 gcd(b,a%b) b≠0 算法如下: gcd(a,b)= a b=0 根据算法,程序如下: gcd(int a,int b) { int f; if (b!=0) f=gcd(b,a%b); else f=a; return(f); } 若有如下调用: main ( ) { printf (“the gcd of 1026 and 405 is %d、n”,gcd(1026,405)); } 请写出执行结果并分析计算机执行情况。 4. 仔细阅读下面程序,改正其中的错误,并在上机调试通过后,写出该程序的功能及运行结果。 add1(b,n) int b[], n { int f; printf(“\n”); for (f=0; fn; f++) { printf(“%d, ”,b[f]); b[]++; } } main ( ) { int j; static int a[]={0,1,2,3,4,5,6,7,8,9}; add(a); printf (“\n”); for (j=0; j10; j++) printf (“%d, ” ,a[j]); } 四、实验思考题 编写一个简单的“学生管理系统”。 其功能如下: 1、键盘输入若干个学生的姓名和学习成绩( 大学语文、大学英语、高等数学、计算机应用基础),并计算出每位学生的总成绩。 2、按照每位学生的姓名排序,并输出排序结果。 3、根据学生的姓名查找该学生的所有信息。 编写本程序时,要求采用若干个函

文档评论(0)

snj01 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档