- 1、本文档共70页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第六章函数§6.1概述§6.2函数§6.3函数的嵌套调用§6.4函数的递归调用§6.5数组作为函数参数§6.6C语言的库函数§6.7作用域与存储类别§6.8本章要点小结§6.9本章程序举例本章作业一本章作业二本章作业三函数定义的形式:类型名函数名(类型名形参1,类型名形参2,……){变量定义部分语句部分}函数调用表达式:函数名(实际参数表)函数声明的形式为:类型名函数名(类型名形参1,类型名形参2,……);63/702、例:利用递归计算n!的函数f(n)=n·f(n-1)(n1)1(n=1)longf(intn){longy;if(n==1)y=1;elsey=return(y);}n*f(n-1);voidmain(){intn;printf(\ninputn(n0):);scanf(%d,n);if(n=0)printf(Dataerror!\n);elseprintf(%d!=%ld\n,n,f(n));}eg608.cpp31/70函数调用过程:main(){……n=5;print(f(5));}longf(5){longy;……y=5*f(4);}longf(4){longy;……y=4*f(3);}longf(3){longy;……y=3*f(2);}longf(3){longy;……y=3*f(2);}longf(2){longy;……y=2*f(1);}longf(1){longy;y=1;……}return(1);return(2);return(6);return(6);return(24);return(120);32/70三、递归的条件:1、须有完成函数任务的语句;longf(intn){longy;if(n==1)y=1;elsey=n*f(n-1);return(y);}2、一个确定是否能避免递归调用的测试;3、一个递归调用语句;该语句的参数应该逐渐逼近结束条件,以至最后断绝递归。4、先测试,后递归调用。在递归函数定义中,必须先测试,后递归调用。也就是说,递归调用是有条件的,满足了条件后,才可以递归。longf(intn){longy;y=n*f(n-1);if(n==1)y=1;return(y);}33/70四、递归的特点:1、递归调用不是重新复制该函数,每次调用它时,新的局部变量和形参会在内存中重新分配内存单元,并以新的变量重新开始执行;每次递归返回时,当前调用层的局部变量和形参被释放,并返回上次调用自身的地方继续执行;2、递归调用一般并不节省内存空间,因为每次调用都要产生一组新的局部变量,从而不破坏上层的局部变量;3、递归调用一般并不能加快程序的执行速度,因为每次调用都要保护上层局部量(现场),而返回时又要恢复上层局部量,占用执行时间;4、递归函数中,必须有结束递归的条件;5、递归调用的优点是能实现一些迭代算法难以解决的问题。34/706.5.1数组元素作为函数参数6.5.2一维数组作为函数参数6.5.3多维数组作为函数参数35/706.5.1数组元素作为函数参数从语法角度看,实参可以是表达式形式,如常量、变量和由运算符连结的表达式形式。而数组元素可以是表达式的组成部分,所以它可以作为函数的实参;它与形参之间是以“值传递”的形式进行参数传递,即单向传递。例:有两个数组a、b,各有10个元素,将它们对应地逐个相比,分别统计出两个数组相应元素大于、等于、小于的次数。for(i=0;i10;i++)result=large(a[i],b[i]);intlarge(intx,inty){}intflag;if(xy)flag=1;elseif(x==y)flag=0;elseflag=-1;return(flag);if(result==1)m++;elseif(r
您可能关注的文档
最近下载
- 超详细《石油化工建设工程施工安全技术规范》GB50484-2022.pdf
- 2024年春江苏开放大学工科数学基础050086过程性作业(四).doc VIP
- T_CACM 1169-2019 中医内科临床诊疗指南 喘证 (慢性阻塞性肺疾病并右心衰竭).docx
- 《综合韩国语》教学教案—-发音部分.pdf VIP
- 壳管式干式蒸发器设计说明书.docx VIP
- OTDR的关键因素-ViaviSolutions.PDF VIP
- 高中音乐《中国影视音乐》PPT 课件.pptx
- 物业安全隐患排查台账范例.pdf
- 癫痫病人的急救与护理ppt课件【28页】.pptx
- 企业事业单位突发环境事件应急预案评审表.pdf VIP
文档评论(0)