- 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讲 函数的嵌套调用和递归调用
5.4 函数的嵌套调用和递归调用 5.4.2 函数的递归调用(嵌套调用的特例 ) 递归举例:求 n! 5.5 变量的作用域和存储类型 变量的作用域:变量在程序中的可使用范围(有效性)。 例: (见p137 例5.13) 2. 全局变量 5.5.2 变量的存储类型 1、 自动类型— auto(C 默认的存储方式) 3、 静态类型— static(局部/全局) ② 静态全局变量 4、 外部类型(全局变量) — extern 外部变量的副作用 综合举例: 5.6 编译预处理 说明: 2、带参数的宏定义 5.6.2 文件包含 例:求半径为r的园面积、园周长。 课堂练习 #include“init.txt” void main() { int a=1, b=2, c=3, d=4, k; k=HDY(a+c,b+d); PRINT(k); } init.txt 的文件内容如下: #define HDY(A,B) A/B #define PRINT(Y) printf(“y=%d\n”,Y) ; ★ 思考题: * 合肥工业大学 WANGJINLING 第六章 函 数 5.4.1 函数的嵌套调用 C语言不允许函数嵌套定义(单一性、独立性)。但允许函数嵌套调用,即被调函数中又调用其它函数(见P133 例5.11)。 mian 函数 ① 调用squa函数 s=s+squa(i) 结 束 squa函数 调用fact函数 b=fact(k) fact函数 ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ 两层嵌套的执行过程 } } } #include stdio.h double fact( int m ) { double a=1;int i ; for (i=1 ; i=m ; i++) a=a*i ; return a ; } double squa( int n ) { double b;int k ; k=n*n ; b=fact( k ) ; return b ; } void main( void ) { int i; double s=0 ; for (i=1; i=5 ; i++) s=s+squa( i ) ; printf (s=%e\n, s ) ; } 概念:函数直接或间接地自我调用称为递归函数。 int fun1(int x) { … z=fun1(y); … } int fun1(int x) int fun2(int t) { { … … z=fun2(y); c=fun1(a); … … } } 直接引用自身 间接引用自身 递归在没有控制条件的情况下是无穷的递归。 #includestdio.h void main(void) { printf(*****\n); main(); } 只有通过控制条件,使递归调用终止,才能应用。 #includestdio.h void main(void) { char ch ; printf(******\n ) ; ch=getchar() ; if(ch!=9) main() ; } n!= 1 n=0或n=1 n(n-1)! n1 f(n)= 1 n=0或n=1 nf(n-1) n1 #include stdio.h long lfac(long); void main(void) { long i,x; scanf(%ld,i); x=lfac(i); printf(\n%ld,x); } long lfac(long n) { if (n==0||n==1) return 1; else return(n*lfac(n-1)); } lfac(4) 4*lfac(3) 3*lfac(2) 2*flac(1) 2*1 3*2*1 4*3*2*1 递推 回归 = n×(n-1)×(n-2)× … × 3×2×1=n×(n-1)! 变量生存期:变量占用内存单元(活着)的时间。 内存中供用户使用的存储空间: 程序区:存放程序代码。 数据区:存
您可能关注的文档
最近下载
- 国开2025年秋《农业推广》形成性考核1-3答案.docx
- 第七章_金属和半导体的接触.ppt
- 会计学课程设计报告会计学课程设计报告.doc VIP
- 6投资领域统计工作业务竞赛试题库.doc VIP
- 老年人运动能力下降多学科决策共识解读(2024版)PPT课件.pptx VIP
- GW-19CP.0011金风GWH 171-5.3 V11R01C100 机组产品说明书.pdf VIP
- 【MOOC】《中国马克思主义与当代》(北京科技大学)中国大学MOOC慕课答案.docx VIP
- 《数星星的孩子》课件.pptx VIP
- 【苏教版】六年级上册数学试题-计算能力训练六 .docx VIP
- ocean培训petrel re快速入门工作流程.pdf VIP
文档评论(0)