- 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语言第7章 模块化程序设计
第 7 章 模块化程序设计 本章主要描述模块化程序及模块化编程技术 第七章 模块化程序设计 7.1模块化程序概述 7.2用函数实现模块化编程技术 7.3常见编程错误 7.1 概述 1.模块化编程概念 当解决一个比较复杂的问题时,如果把问题分解成若干个易于求解的子问题,每个子问题都用一个相对独立的程序段来处理,最后再把所有的程序段结合在一起,形成完整程序,这就是模块化程序设计的方法。 2.模块化编程的基本方法和步骤 模块化编程主要针对两方面:分析数据、控制程序流程。 实现模块化编程主要分为五步: Step1:明确问题 Step2:分析问题 Step3:算法设计 (1)分解模块 (2)设计模块 Step4:实现模块 Step5:测试 7.2 用函数实现模块化编程技术 使用函数实现模块化编程,通常可以通过嵌套调用、递归调用、按地址传递以及空返回等方式来实现。 7.2.1.函数的嵌套调用 1.嵌套调用 一个函数在被调用的同时,又调用了另外一个函数,称为嵌套调用,如图所示: 2.【案例7.1】编写程序,计算并打印两个整数的平均值。 /*求两个整数的平均值*/ #includestdio.h Int sum(int n1,int n2) { Int s; s=n1+n2; return s; } Int ave(int num1, int num2) { int x; x=sum(num1,num2)/2; /*在ave函数中调用sum函数*/ return x; } Int main() {int a,b; printf(“a=”);scanf(“%d,a”); printf(“b=”);scanf(“%d,b”); printf(“the average is :%d\n”, ave(a,b);) /*调用求平均函数*/ return 0; } 3.代码分析 函数执行过程: (1)执行main函数的开头部分 (2)遇到调用ave函数的语句,流程转去ave函数 (3)执行ave函数的开头部分 (4)遇到调用sum函数的语句,流程转去sum函数 (5)执行sum函数,没有再调用其它函数,完成sum函数全部操作。 (6)返回调用sum函数处,即回到ave函数 (7)继续执行ave函数尚未执行的部分,直到ave结束 (8)返回到main中调用ave处 (9)继续执行main的剩余部分语句,直到结束。 7.2.2 递归调用 1.定义 嵌套调用还有一种特殊的格式,就是一个函数直接或者间接的调用自己,称为递归调用。如图所示: 2.【案例7.2]有5各人坐在一起,求第五个人的岁数?他比第四个人大3岁。第四个人比第三个人大3岁,第三个人比第二个人大3岁,第二个人比第一个人大3岁。第一个人是10岁。(用递归编程) /*使用递归调用*/ #includestdio.h Int age(int n) {int x; if (n==1) x=10; /*递归终止的条件*/ else x=age(n-1)+3; /*递归调用自身*/ return x; } Int main() { printf(“第五个人%d岁\n”, age(5)); return 0; } 3.源码分析说明 递归调用以递归终止条件是否成立为界限,分为递推和回推两个阶段: (1)递归调用终止条件 递归调用不可以无终止的调用下去,否则就成了死循环。递归调用必须有一个终止条件。案例7.2的递归调用终止条件是n==1,即当求到第一个人的年龄时,结束调用。 (2)递推过程 当终止条件不成立时,调用age函数。传递的实参值时n-1,每调用一次,n的值就减1,即先调用age(5),求age(5)的值就是求age(4)+3;再调用age(4),求age(4)的值就是求age(3)+3…直到n的值等于1。 (3)回推过程 当终止条件成立时,终止递归调用,执行x=10;然后执行语句return x;将x的值返回给age(1),则age(1)的值是10。再将age(1)+3的值13返回给age(2),依次类推,每返回一次,就退回到上一级,直到把age(4)+3的值22返回给age(5). 7.2.3 指针变量做形参 1.定义 在函数调用时,将实参的地址传递给形参,实参和形参共用同一个存储单元,当形参的值发生变化时,实参的值也发生变化。 2.[案例7.3]值传递和传递地址的比
您可能关注的文档
最近下载
- 《公共体育课》课程健美选项教学大纲.pdf VIP
- 新教材牛津译林版必修第一册全册各单元重点语法总结.pdf VIP
- 公共体育课课程排舞选项教学大纲.pdf VIP
- 不发火施工方案.pdf VIP
- 初中英语新人教版八年级上册Unit 2 Home Sweet Home语法知识讲解和练习(2025秋).doc VIP
- 新教材高中物理 期末综合检测(A、B卷)(含解析)新人教版必修第一册.pdf VIP
- 2025新人教版八年级英语上册Unit 2 Home Sweet课文讲解学案.docx VIP
- 2024年新教材高中物理模块综合检测A含解析新人教版必修第一册.docx VIP
- 2024新化县中小学教师招聘考试题库及答案.docx VIP
- 2024_2025学年新教材高中物理期末把关检测卷含解析新人教版必修第一册.doc VIP
文档评论(0)