C++程序设计教程 第2章 过程组织和管理.docVIP

C++程序设计教程 第2章 过程组织和管理.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 过程的组织和管理 2.1 函数 2.1.1 函数结构和函数定义 一个大型的程序一般可以分成一系列“单一功能模块”的集合。在C++中,单一功能模块通常设计成一个函数。因而C++程序可以设计成一系列函数的组合,这是面向过程程序设计的一般方法。一个完整的C++程序一般包含一个主函数和若干个子函数,主函数可以调用子函数,子函数也可以调用其它的子函数。利用函数可以大大降低程序设计的工作量,使程序更加清晰可靠。很多编译系统本身就带有很多预定义的函数,并把它们以库函数的形式提供给用户,这大大方便了程序设计人员。函数定义的一般形式如下: 类型标识符 函数名(形参列表) { 函数体; } 类型标识符为函数的返回类型,可以是整型、浮点型等C++的合法类型,也可以是无值型(void型)。 函数名是函数的标识,可以是一个有效的C++标识符。 形参列表是括在圆括号内的0个或多个以逗号分隔的形式参数。它定义了函数将从调用函数中接收几个数据及它们的类型,所以称为形式参数。所谓形式参数的含义是指仅当函数被调用时,系统才为其分配存储空间。与之相应,主调程序传递过来的参数称之为实在参数。通常,形式参数和实在参数简称为形参和实参。 函数的返回值由返回语句return来实现。 例2.1.1 // filename:ex211.cpp // 判断一个数是否素数 #includeiostream.h char prime(unsigned int number); int main() { int m; coutThe primers from 3-100 are:endl; for(m=3;m=100;m++) if(prime(m)==1) coutm,; return 0; } char prime(unsigned int number) { char f=1; unsigned int n; for(n=2;n=number/2;n++) if(number%n==0){ f=0; break; } return f; } 2.1.2 函数名重载 函数名重载就是多个函数使用同一个函数名。 例2.1.2 // filename:ex212.cpp // 判断两数较大者 #includeiostream.h int max(int x,int y); double max(double x,double y); int main() { coutmax(10,20)endl; coutmax(1.23,4.56)endl; return 0; } int max(int x,int y) { return xy?x:y; } double max(double x,double y) { return xy?x:y; } 函数重载的好处是主调函数会根据参数自动选择正确的子函数,这大大提高了程序的通用性和可读性。 2.1.3 内嵌函数 程序在执行过程中,每调用一次函数,就要在调用与返回过程中付出一定的时间和空间代价用于处理现场,通常是用堆栈进行保护,返回时退栈恢复现场。但当函数较小,又反复使用时,处理现场的开销会急剧增大。若把函数嵌入函数调用处,便可以大大提高运行速度。这当然是以牺牲存储空间作为代价的。内嵌函数在程序编译时直接将代码嵌入到调用处,这增加了代码的长度,但运行速度大大加快。 例2.1.3 /// filename:ex213.cpp // 判断两数较大者 #includeiostream.h inline double max(double x,double y); int main() { int i; double a,b; for(i=1;i3;i++) { coutEnter two real:; cinab; coutmax(a,b)endl; } return 0; } double max(double x,double y) { return xy?x:y; } 内嵌函数有如下限制: (1) 内嵌函数中不能有循环结构或switch结构及goto语句; (2) 内嵌函数中不能含有任何静态数据及数据声明。 由于有以上限制,使用起来不是太方便。因此,除非必要,一般尽量不使用内嵌函数。 2.1.4 递归函数 一个函数直接或间接调用自身,便构成了函数的递归调用。递归在程序设计中经常用到,它可以大大简化程序的设计。 例2.1.4 递归计算n!的函数。 int rfact(int n) { if(n0){ cout“Negative argument.”endl; exit(-1); }

文档评论(0)

nnh91 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档