- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.1 综述 C 是函数型语言, C 程序的基本部件是函数. 一个函数完成一个特定功能, 整个 程序的功能靠一系列的函数调用来实现. C程序的执行顺序与函数出现的顺序无关, 只与函数的调用顺序有关. C约定无论何时, 首先调用的函数是 main( ). C函数分两种: 用户自己定义的函数和库函数. 使用库函数时应当包含其头文件. * 4.3 函数的定义和调用 4.3 .1 函数定义 函数定义的一般形式: 函数属性说明 函数(值)类型说明 函数名( 类型标示符参数名1 [,类型标示符 参数名2, ….] ) 如:static float sum(float x,float y) /* static 、extern*/ { 说明部分 执行部分 返回部分[ return 表达式] } [例] 求n!的函数。(exn.c) 4.6 函数的嵌套调用 1. 什么是函数的嵌套调用? 函数中又调用函数(其它或自身)。 例:计算4!+5!+6!+7! (ex413.c) 例: 用弦截法求方程的根。设:x3-5x2+16x-80=0 方法: 1. 任取 x1、x2 ,得到 f(x1)、f(x2),并使 f(x1)* f(x2) 0 (异号),则在[x1, x2] 上必有一根。 2. 连f(x1)、f(x2)两点,截 x 轴得 x 点和f(x1) 。程序中用下列公式计算x 3. 若f(x)与 f(x1)同号,则根在[x, x2]上,用 f(x) 作新 f(x1), 反之亦然。 4. 若:|f(x)|e 则循环 2、3 两步。(exroot.c) 4.7.2 函数的递归调用有两种结构 .直接递归结构:在函数内部有专门调用自身函数的语句(如前求n!) .间接递归结构:通过它所调用的函数再来调用自己。 4. 7.3 递归程序设计 例:五人说年龄。(exage.c) 1)按递推算法 age(n)=age(n-1)+2 从n=1 递推。 2)按递归算法 age(n-1)+2 n1 10 n=1 int age(int n); void main( ) { printf(“%d”,age(5));} int age(int n) { int c; if (n= =1) c=10; /* 递归函数中必须有终止嵌套的语句。 */ else c=age(n-1)+2; return c; } 例:用递归算法及欧几里德法求最大公约数(exgcd.c) gcd(b,a%b) b!=0 a b=0 int gcd(int m, int n); void main( ) { int a,b; scanf(“%d%d”,a,b); printf(“gcd=%d”,gcd(a,b)); } 例: 用递归法求 Fibonacci数列。(exfib.c) 1 n=1, 2 f(n-1)+f(n-2) n2 int feb( int n); void main( ) { int m ; scanf(“%d”,m); printf(“ term %d Feb. = %d”, m, feb(m)); } int feb( int n ) { int f; if(n= =1||n= =2)f=1; else f=f(n-1)+f(n-2); return f; } * *
您可能关注的文档
- C#网络应用编程基础 教学课件 作者 马骏习题答案 第13章 习题解答.doc
- C#网络应用高级编程 教学课件 作者 马骏 郑逢斌 沈夏炯1 第1章 进程、线程与网络协议.ppt
- C#网络应用高级编程 教学课件 作者 马骏 郑逢斌 沈夏炯1 第2章 TCP应用编程.ppt
- C#网络应用高级编程 教学课件 作者 马骏 郑逢斌 沈夏炯1 第3章 UDP应用编程.ppt
- C#网络应用高级编程 教学课件 作者 马骏 郑逢斌 沈夏炯1 第4章 P2P应用编程.ppt
- C#网络应用高级编程 教学课件 作者 马骏 郑逢斌 沈夏炯1 第5章 SMTP与POP3应用编程.ppt
- C#网络应用高级编程 教学课件 作者 马骏 郑逢斌 沈夏炯1 第6章 网络数据加密与解密.ppt
- C#网络应用高级编程 教学课件 作者 马骏 郑逢斌 沈夏炯1 第7章 三维设计与多媒体编程.ppt
- C#网络应用高级编程 教学课件 作者 马骏 郑逢斌 沈夏炯2 第1章 进程、线程与网络协议.ppt
- C#网络应用高级编程 教学课件 作者 马骏 郑逢斌 沈夏炯2 第2章 TCP应用编程.ppt
- 脑机接口技术伦理问题2025年国际比较与启示.docx
- 2025年开放银行生态构建与合作模式创新下的金融科技风险管理技术报告.docx
- 2025年社区医疗远程会诊网络建设与可持续发展分析报告.docx
- 2025年基于深度学习的药物靶点识别算法研究与应用报告.docx
- 2025年社区医疗远程手术协作政策环境可行性研究报告.docx
- 2025年社区养老驿站运营成本与盈利模式分析报告.docx
- 跨境厨房电器电商仓储配送体系优化与成本控制研究.docx
- 2025年社区医疗远程手术协作产业链分析报告.docx
- 2025年社区卫生服务中心智慧化信息化平台构建报告.docx
- 吉利汽车2025年全球并购战略下的技术创新与应用分析.docx
文档评论(0)