- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下载
第一部分 预 备 知 识
第1章 C + +程序设计
大家好!现在我们将要开始一个穿越“数据结构、算法和程序”这个抽象世界的特殊旅程,
以解决现实生活中的许多难题。在程序开发过程中通常需要做到如下两点:一是高效地描述数
据;二是设计一个好的算法,该算法最终可用程序来实现。要想高效地描述数据,必须具备数
据结构领域的专门知识;而要想设计一个好的算法,则需要算法设计领域的专门知识。
在着手研究数据结构和算法设计方法之前,需要你能够熟练地运用 C + +编程并分析程序,
这些基本的技能通常是从 C + +课程以及其他分散的课程中学到的。本书的前两章旨在帮助你回
顾一下这些技能,其中的许多内容你可能已经很熟悉了。
本章我们将回顾C++ 的一些特性。因为不是针对C++ 新手,因此没有介绍诸如赋值语句、
if 语句和循环语句(如 for 和w h i l e )等基本结构,而是主要介绍一些可能已经被你忽略的 C + +
特性:
• 参数传递方式(如传值、引用和常量引用)。
• 函数返回方式(如返值、引用和常量引用)。
• 模板函数。
• 递归函数。
• 常量函数。
• 内存分配和释放函数:n e w与d e l e t e 。
• 异常处理结构:t r y, c a t c h和t h r o w 。
• 类与模板类。
• 类的共享成员、保护成员和私有成员。
• 友元。
• 操作符重载。
本章中没有涉及的其他 C + +特性将在后续章节中在需要的时候加以介绍。本章还给出了如
下应用程序的代码:
• 一维和二维数组的动态分配与释放。
• 求解二次方程。
• 生成n 个元素的所有排列方式。
• 寻找n个元素中的最大值。
此外,本章还给出了如何测试和调试程序的一些技巧。
1.1 引言
在检查程序的时候我们应该问一问:
• 它正确吗?
2 第一部分 预 备 知 识
下载
• 它容易读懂吗?
• 它有完善的文档吗?
• 它容易修改吗?
• 它在运行时需要多大内存?
• 它的运行时间有多长?
• 它的通用性如何?能不能不加修改就可以用它来解决更大范围的问题?
• 它可以在多种机器上编译和运行吗?或者说需要经过修改才能在不同的机器上运行吗?
上述问题的相对重要性取决于具体的应用环境。比如,如果我们正在编写一个只需运行一
次即可丢弃的程序,那么主要关心的应是程序的正确性、内存需求、运行时间以及能否在一台
机器上编译和运行。不管具体的应用环境是什么,正确性总是程序的一个最重要的特性。一个
不正确的程序,不管它有多快、有多么好的通用性、有多么完善的文档,都是毫无意义的(除
非它变正确了)。尽管我们无法详细地介绍提高程序正确性的技术,但可以为大家提供一些程
序正确性的验证方法以及公认的一些良好的程序设计习惯,它们可以帮助你编写正确的代码。
我们的目标是教会你如何开发正确的、精致的、高效的程序。
1.2 函数与参数
1.2.1 传值参数
考察函数A b c (见程序1 - 1)。该函数用来计算表达式 a+b+b*c+ (a+b-c) / (a+b) + 4 ,其中a ,b
和c 是整数,结果也是一个整数。
程序1-1 计算一个整数表达式
int Abc(int a, int b, int c)
{
return a+b+b*c+(a+b-c)/(a+b)+4;
}
在程序 1 - 1中,a ,b和c 是函数Abc 的形式参数(formal parameter ),类型均为整型。如果
在如下语句中调用函数A b c :
z = Abc(2,x,y)
那么,2 ,x 和y 分别是对应于a ,b 和c 的实际参数(actual parameter )。当A b c ( 2 ,x ,y ) 被执
行时,a 被赋值为2 ;b 被赋值为x ;c 被赋值为y 。如果x 和 / 或y
您可能关注的文档
最近下载
- JH100系列伺服控制器用户手册.PDF VIP
- 额济纳旗种植蜜瓜的气候条件分析-来源:现代农业科技(第2019009期)-安徽省农业科学院.pdf VIP
- 艾曲泊帕治疗难治性ITP病例分享.pptx VIP
- 集团三重一大事项决策管理办法.docx VIP
- 2025年蜀道投资集团有限责任公司人员招聘笔试备考题库.docx VIP
- DBJ14-073-2010 岩棉板外墙外保温系统应用技术规程.docx VIP
- YZP50液压修井转盘说明书.doc
- 气管切开患者护理课件.pptx VIP
- 高一物理 匀速圆周运动研究 典型例题精析.doc VIP
- 2024年全省交通综合执法职业技能竞赛理论知识考试题库(含答案).docx
文档评论(0)