- 1、本文档共54页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言的07函数进阶和结构化编程
第 7 章 函数进阶和结构化编程 学习目标 1.掌握源程序结构中函数的组织方法; 2.理解结构化程序设计思想,并能利用它来解决问题; 3. 理解函数嵌套调用的概念,并能熟练利用函数的嵌套调用来解决问题; 4.理解递推、递归及其算法实现; 5.理解编译预处理的概念,能熟练应用宏定义和文件包含; 6.了解用户自定义库模块。 7.1 结构化编程 结构化程序设计(Structured Programming)是一种良好的程序设计技术,它由著名计算机科学家E·W·Dijkstra于1969年提出 7.1.1 自顶向下分析问题 自顶向下分析问题就是把一个较大的复杂问题分解成几个小问题后再解决。 7.1.2 模块化设计 模块化设计时要遵循模块独立性的原则,即模块之间的联系应该尽量简单。具体体现在: 1.一个模块只完成一个指定的功能 2.一个模块只有一个入口和一个出口 3.模块间通过参数进行调用 4.模块内慎用全局变量 在C语言中,模块一般通过函数来实现,一个模块对应一个函数。 7.1.3 结构化编码 经模块化设计后,每个模块都可以独立编码。编程时应选用顺序、选择和循环3种控制结构,并使程序具有良好的风格。 1.见名知义命名对象名 2.使用注释 3.使程序结构清晰 4.使程序具有良好的交互性 例: 读入一组整数存入一个整型数组中,要求显示出计数、当前整数、当前数为止的所有整数之和、当前数为止的最小整数以及当前数为止的最大整数。除此之外,假设必须要显示如下所示的标题及标题下方分列显示的信息。 ******************************************************* running sums, minimums, and maximums ******************************************************* Count Item Sum Minimum Maximum 预处理命令/函数原型声明/主函数: #include stdio.h #include stdlib.h void prn_banner(void); /* 函数声明 */ void prn_headings(void); /* 函数声明 */ void read_and_prn_data(void); /* 函数声明 */ void main(void) { prn_banner( ); prn_headings( ); read_and_prn_data( ); } 显示标题函数: void prn_banner(void) {printf(\n***************************************************); printf(\n running sums, minimums, and maximums ); printf(\n***************************************************\n);} 显示各列上部的标题函数: void prn_headings(void) { printf(%5s%12s%12s ,Count,Item,Sum); printf(%12s%12s\n\n,Minimum,Maximum); } 初始化数据并按要求显示函数: void read_and_prn_data(void) { int i,sum,smallest,biggest; int a[10]={1,2,6,7,0,-6,19,52,10,-10}; sum=0;smallest=biggest=a[0]; for(i=0;i10;i++) { sum+=a[i]; smallest=min(a[i],smallest); biggest=max(a[i],biggest); printf(%5d%12d%12d%12d%12d\n,i+1,a[i],sum,smallest,biggest); } } 7.2 函数的嵌套调用 例:求组合数。 float fac(int n) { int i; float f=1; for(i=2;i=n;i++) f*=i; return f; } float cmn(int m,int n) { float res; res=fac(m)/(fac(n
文档评论(0)