- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计教程-李淑华第11讲函数与变量2课案.ppt
第十一讲 函数与变量 7.5 函数的嵌套调用 7.6 函数的递归调用 7.7 数组作为函数参数 7.5 函数的嵌套调用 C语言中允许一被调 函数再调用其他函数,称为嵌套调用。 7.6 函数的递归调用 在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。 7.7数组作为函数参数 7.7.1 数组元素做函数实参 由于实参可以是表达式,数组元素可以是表达式的组成部分,因此数组元素当然可以作为函数的实参,与用变量作实参一样,是单向传递。 例7.7 编一程序,将一维数组中的每个元素的值加1后显示出来。 7.7.2 可以用数组名做函数的实参与形参 例7.8 有一个一维数组s,存放10个学生成绩,求平均成绩。 说明: (1)用数组名做函数的参数,应该在主调函数和被调函数中分别定义数组。 (2)实参数组与形参数组类型应一致。 (3)实参数组和形参数组大小可以一致也可以不一致,C编译时对形参数组大小不作检查,只是将实参数组的首地址传给形参数组。 (4)数名做函数参数时,把实参数组的起初地址传递给形参函数,这样两个数组就共占同一段内存单元。形参数组中各元素的值发生变化,会使实参数组元素的值同时发生变化。这一点与变量函数参数的情况不同。 * * 例7.4 函数的嵌套调用。 main( ) {a1(); a2(); a3(); print(n”); } a1() { printf(n”); } a2(); { printf(n”); } a3() { printf(n”); } 例7.5 在键盘上输入三个整数,求其最大数。 Main() {int a,b,c,x; Int max(int,int); Printf(“a,b,c=?); Scanf(“%d,%d,%d”,a,b,c); X=max(a,b); X=max(x,c); Printf(“max= %d\n”,x); } Int max(x,y) Int x,y; {int z; Z=xy? x:y; Return(z); } main函数 a函数 b函数 调用a函数 调用b函数 结束 ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ 其执行过程是: (1)执行main函数的开头部分。 (2)遇函数调用a的操作语句,流程转去a函数。 (3)执行a函数的开头部分。 (4)遇到调用b函数的操作语句,流程转去b函数。 (5)执行b函数,如果再无其化的嵌套函数,则完b函数的全部操作。 (6)返回调用b函数处。 (7)继续执行a函数中尚末执行的部分。直到a函数结束。 (8)返回main函数中调用a函数处。 (9)继续执行main函数的乘余部分直到结束。 例如:直接调用本函数。 int f(x) int x; {int y z; ┆ z=f(y); ┆ return(2*z); } f函数 调用f函数 f1函数 f2函数 调用f2函数 调用f1函数 例如:间接调用本函数。 int f1(x) int f1(x) int x; int t; {int y,z; {int a,c; ┆ ┆ z=f2(y); z=f1(y); ┆ ┆ return(2*z); return(2+c); } } 例7.6 用递归方法求n! 即计算f(n)=n!的值。 可用递推方法:即从1开始,乘2,乘3,……一直乘到n。 递归方法: 下推: f(5)=5*f(4) 回代 : f(5)=5*4*3*2*1 f(4)=4*f(3) F(4)=4*3*2*1 f(3)=3*f(2) f(3)=3*2*1 f(2)=2*f(1) f(2)=2*1 f(1)=1,f(0)=0 程序如下: long fac(n) int n; {long f; if(n0) printf(“no,data error!”); else if (n==0||n==1)return 1; else return(fac(n-1)*n); } mai
您可能关注的文档
- Authorware多媒体制作案例教程-管学理-第九章课案.ppt
- Authorware多媒体开发实训教程作者沈洪施明利朱军第10章提高多媒体作品开发效率课案.ppt
- Authorware多媒体开发实训教程作者沈洪施明利朱军第11章作品的调试与发布课案.ppt
- Authorware多媒体开发实训教程作者沈洪施明利朱军第12章xtra技术与控件的应用课案.ppt
- Authorware多媒体开发实训教程作者沈洪施明利朱军第13章使用知识对象课案.ppt
- Authorware多媒体开发实训教程作者沈洪施明利朱军第14章数据库应用课案.ppt
- Authorware多媒体开发实训教程作者沈洪施明利朱军第1章认识多媒体与Authorware7.0课案.ppt
- Authorware多媒体开发实训教程作者沈洪施明利朱军第2章文本处理课案.ppt
- Authorware多媒体开发实训教程作者沈洪施明利朱军第3章图形、图像处理课案.ppt
- Authorware多媒体开发实训教程作者沈洪施明利朱军第4章声音处理课案.ppt
- C语言程序设计教程-李淑华第12讲函数与变量3课案.ppt
- C语言程序设计教程教学课件作者李俊主编第1章C语言程序设计概述课件.ppt
- C语言程序设计教程教学课件作者李俊主编第4章选择结构课件.ppt
- C语言程序设计教程教学课件作者李俊主编第5章循环结构课件.ppt
- C语言程序设计教程教学课件作者李俊主编第6章函数与宏替换课件.ppt
- C语言程序设计教程教学课件作者李俊主编第7章数组课件.ppt
- C语言程序设计教程教学课件作者杨丽波第十一章:位运算课件.ppt
- C语言程序设计第2版教学课件作者李敏第10章文件课件.ppt
- C语言程序设计第2版教学课件作者李敏第11章综合实例课件.ppt
- C语言程序设计第2版教学课件作者李敏第2章数据类型、运算符与表达式课件.ppt
最近下载
- 2025中新天津生态城管委会面向社会公开招聘党务指导员3人笔试模拟试题及答案解析.docx VIP
- 四川省普通国省干线公路养护工程设计(咨询)指南.pdf VIP
- 2025“人工智能+”教育行业应用白皮书.pdf VIP
- 铅富氧侧吹还原炉开炉生产实践.doc VIP
- 2025年部编人教版(统编新教材)初中语文八年级上册教学计划及进度表.docx
- 新建LNG加气站运营管理方案与实施策略.docx VIP
- 标准田字格A4纸空白打印版10页.pdf VIP
- 第四单元 声之交响 课件高二上学期音乐人音版(2019)必修2 歌唱.pptx VIP
- 猎聘2025年Q3招聘调研报告.pdf VIP
- 高中校园足球活动与体育教学改革的融合探讨教学研究课题报告.docx
文档评论(0)