欢迎您来到懒之才-站长的分享平台!   学会偷懒,并懒出境界是提高工作效率最有效的方法!
首页 > 教程文档 > C/C++/C# > C++入门经典(第10版) (Walter Savitch著)【PDF】【132.56MB】

C++入门经典(第10版) (Walter Savitch著)【PDF】【132.56MB】

2019-02-17 3449 收藏 0 赞一个 0 真差劲 0 去评论 去下载

内容简介

作为C 入门经典教材,《C 入门经典(第10版)》结合作者多年的教学经验,清楚梳理出一个有利于教与学的结构体系,从各章开头的内容总览,到随处可见的自测题、小结框、编程提示和编程陷阱,再到章末的小结、习题、编程练习和编程项目,由浅入深,从简到繁,可以帮助初学者渐入佳境,逐步理解并掌握重要的编程概念。

《C 入门经典(第10版)》共18章,8个附录。在讲解C 基础知识之后,循序渐进地引导读者深入函数、I/O流、类、控制流程、命名空间、数组、字符串、指针和动态数组、递归、模板、指针和链表、派生类、异常以及标准模板库。本书前几版被全国100多所高校选作C 程序设计课程的教材,很受师生欢迎。《C 入门经典(第10版)》也适合自学,不同层次的知识点和测试练习,可以帮助读者以自己的节奏进入美妙的C 编程世界。

作者简介

Walter Savitch    加州大学圣迭戈分校荣誉退休教授。拥有加州大学伯克利分校博士学位,曾担任加州大学圣迭戈分校计算机科学系教授和认知科学跨学科博士项目主任。他在复杂性理论和并行计算模型方面具有卓越贡献,其研究领域包括形式语言理论和计算语言学等。
周靖    微软最有价值专家(MVP),资深译者。涉猎广泛,具有深厚的技术功底和良好的文学素养。早期痴迷于硬件,曾多年担任《微型计算机》杂志特约作者。继而潜心钻研程序设计,并在这方面积累了丰富的经验。此后专职从事计算机图书的翻译。其翻译风格严谨、准确、朴实、流畅,深受读者好评。代表译著有《C 入门经典》、《Visual C#从入门到精通》、《CLR via C》系列版本。

目录

第1章  计算机和C 编程入门 1

1.1  计算机系统   2

硬件         2

软件         5

高级语言         6

编译器     7

历史回顾         9

1.2  编程和问题求解   9

算法         10

程序设计         11

面向对象编程         12

软件生命周期         12

1.3 C 入门 13

C 语言的起源       13

一个C 示范程序 14

陷阱:在\n中错误地使用斜杠    17

编程提示:输入和输出语法         17

简单C 程序的布局      17

陷阱:在include的文件名前错误地

添加一个空格         19

编译和运行C 程序      19

陷阱:编译C 11程序         19

编程提示:让程序运行起来         20

1.4  测试和调试   22

各种程序错误         22

陷阱:错误地假定程序正确         23

小结         24

自测题答案     25

编程练习         26

编程项目         27

第2章  C 基础知识  29

2.1  变量和赋值   30

变量         30

名称:标识符         32

变量声明         33

赋值语句         34

陷阱:未初始化的变量         35

编程提示:使用有意义的名称     36

2.2  输入和输出   37

使用cout进行输出        37

include预编译指令和命名空间    38

转义序列         39

编程提示:用\n或endl终止

每一个程序     40

格式化带小数点的数字         41

用cin进行输入       42

设计输入和输出     43

编程提示:I/O中的换行       43

2.3  数据类型和表达式        44

int类型和double类型   44

其他数值类型         45

C 11类型      46

char类型         47

bool类型          48

string类简介  48

类型的兼容性         49

算术操作符和表达式     50

陷阱:除法中的整数     52

更多赋值语句         53

2.4  简单控制流程        54

一个简单的分支机制     54

陷阱:连续的不等式     58

陷阱:该用==的时候用了=  58

复合语句         59

简单的循环机制     61

递增操作符和递减操作符     63

编程实例:信用卡余额         64

陷阱:无限循环     65

2.5  程序风格        67

缩进         67

注释         67

为常量命名     69

小结         71

自测题答案     72

编程练习         75

编程项目         76

第3章  更多的控制流程     81

3.1  使用布尔表达式   82

布尔表达式求值     82

陷阱:将布尔表达式转换成int值       85

枚举类型(选读)       87

3.2  多路分支        87

嵌套语句         88

编程提示:在嵌套语句中使用

花括号     88

多路if-else语句     90

编程实例:州收入税     91

switch语句     94

陷阱:忘记在switch语句中添加

break        96

为菜单使用switch语句         97

代码块     98

陷阱:疏忽局部变量     100

3.3 C 循环语句详解 101

while语句回顾        101

再论递增操作符和递减操作符     102

for语句   104

陷阱:for语句中多余的分号        108

应该使用哪种循环         108

陷阱:未初始化的变量和

无限循环         110

break语句       110

陷阱:嵌套循环中的break语句 111

3.4  设计循环        111

求和与求乘积的循环     112

终止循环         113

嵌套循环         115

调试循环         116

小结         119

自测题答案     120

编程练习         123

编程项目         124

第4章  过程抽象和返回值的函数     129

4.1  自顶向下设计        130

4.2  预定义函数   130

使用预定义函数     131

随机数生成     134

强制类型转换         135

强制类型转换的古老形式     137

陷阱:整数除法丢弃了小数部分         137

4.3  程序员自定义函数        138

函数定义         138

返回布尔值的函数         142

另一种形式的函数声明         142

陷阱:实参顺序错误     143

函数定义语法小结         144

再论函数定义的位置     144

编程提示:在分支语句中使用

函数调用         145

4.4  过程抽象        146

黑盒的比喻     146

编程提示:选择形参名称     147

编程提示:嵌套循环     148

案例分析:购买比萨     150

编程提示:使用伪代码         154

4.5  作用域和局部变量        155

函数如同小程序     155

编程实例:豌豆试验田         157

全局常量和全局变量     157

传值形参是局部变量     158

块作用域         160

再论命名空间         161

编程实例:阶乘函数     163

4.6  重载函数名称        164

重载入门         164

编程实例:购买比萨(修订版)       166

自动类型转换         168

小结         170

自测题答案     171

编程练习         173

编程项目         174

第5章  用函数完成所有子任务          177

5.1 void函数         178

void函数的定义     178

编程实例温度换算         180

void函数中的return语句     181

5.2  传引用参数   182

初探传引用调用     182

传引用调用详解     184

编程实例:swapValues函数         187

混合的参数列表     188

编程提示:应该使用哪种参数     189

陷阱:疏忽造成的局部变量         190

5.3  使用过程抽象        192

在函数中调用其他函数         192

前条件和后条件     193

案例分析:超市定价系统     194

5.4  测试和调试函数   198

存根和驱动程序     198

5.5  常规调试技术        201

不抱成见         201

检查常见错误         202

定位错误         202

assert宏 203

小结         205

自测题答案     206

编程练习         208

编程项目         209

第6章  I/O流——对象和类入门       213

6.1  流和基本文件I/O 214

为什么要用文件来I/O  215

文件I/O  215

类与对象入门         218

编程提示:检查文件是否成功

打开         219

文件I/O技术 222

追加到文件(选读)  223

文件名作为输入(选读)  225

6.2  流I/O工具     227

用流函数格式化输出     227

操纵元     230

流作为函数实参     232

编程提示:检查文件尾         233

命名空间的问题     234

编程实例:整理文件格式     235

6.3  字符I/O 236

get和put成员函数        236

putback成员函数(选读)         239

编程实例:检查输入     239

陷阱:输入中不期而遇的'\n'        241

编程实例:另一个newLine函数 242

函数的默认实参(选读)  243

eof成员函数  246

编程实例:编辑文本文件     247

预定义字符函数     249

陷阱:toupper和tolower返回值         250

小结         252

自测题答案     253

编程练习         257

编程项目         258

第7章  数组          263

7.1  数组入门        264

声明和引用数组     264

编程提示:为数组使用for循环  266

陷阱:数组索引总是从零开始     266

编程提示:为数组长度使用已定义

常量         266

数组在内存中的表示     267

陷阱:数组索引越界     268

初始化数组     269

编程提示:C 11基于范围的

for语句   270

7.2  函数中的数组        272

索引变量作为函数参数         272

整个数组作为函数参数         274

const参数修饰符   276

陷阱:const参数修饰符的使用

不一致     277

返回数组的函数     278

案例分析:产量图         278

7.3  数组编程        287

部分填充数组         287

编程提示:不要吝啬形参     289

编程实例:搜索数组     290

编程实例:数组排序     291

编程实例:冒泡排序     294

7.4  多维数组        297

多维数组基础         297

多维数组参数         298

编程实例:二维打分程序     299

陷阱:在数组索引之间使用逗号         302

小结         303

自测题答案     304

编程练习         306

编程项目         307

第8章  字符串和向量          315

8.1  字符串的数组类型        316

C字符串值和C字符串变量 317

陷阱:为C字符串使用=和==       319

中的其他函数 321

陷阱:使用strcpy复制C字符串

越界         322

C字符串输入和输出      324

C字符串到数值的转换和

可靠输入         326

8.2  标准string类         330

标准类string简介 330

string类的I/O         332

编程提示:getline的其他版本     334

陷阱:混合使用cin>>变量;和

getline      335

用string类进行字符串处理 336

编程实例:回文测试     338

string对象和C字符串之间的转换       341

字符串和数字之间的转换     342

8.3  向量        342

向量基础知识         342

陷阱:使用方括号时超出向量

长度         345

编程提示:向量赋值具有良好

行为         345

效率问题         345

小结         347

自测题答案     348

编程练习         349

编程项目         350

第9章  指针和动态数组     355

9.1  指针        356

指针变量         357

基本内存管理         362

陷阱:虚悬指针     362

静态变量和自动变量     362

编程提示:定义指针类型     363

9.2  动态数组        364

数组变量和指针变量     365

创建和使用动态数组     366

指针运算(选读)       370

多维动态数组(选读)       371

小结         373

自测题答案     374

编程练习         374

编程项目         375

第10章  定义类   379

10.1 结构      380

用于异种数据的结构     380

陷阱:结构定义中忘记添加分号         383

结构作为函数参数         384

编程提示:使用层次化结构         384

对结构进行初始化         386

10.2 类 388

定义类和成员函数         388

公共成员和私有成员     391

编程提示:将所有成员变量

设为私有         396

编程提示:定义取值函数和

赋值函数         397

编程提示:将赋值操作符用于

对象         398

编程实例:BankAccount类

(版本1)   398

总结类的一些特征         402

用于初始化的构造函数         403

编程提示:总是包括默认构造

函数         408

陷阱:无参构造函数     409

C 11的成员初始化器和构造

函数委托         410

10.3 抽象数据类型      411

用于生成抽象数据类型的类         412

编程实例:类的另一种实现         414

10.4 继承      418

派生类     418

定义派生类     419

小结         423

自测题答案     424

编程练习         428

编程项目         428

第11章  类中的友元函数、

重载操作符和数组         433

11.1 友元函数      434

编程实例:一个相等性函数         434

友元函数         436

编程提示:定义取值函数和

友元函数         438

编程提示:同时使用成员函数和

非成员函数     439

编程实例:Money类(版本1)        439

实现digitToInt(选读)      443

陷阱:数字常量中的前置零         444

const参数修饰符   445

陷阱:修饰符const的用法不一致      447

11.2 重载操作符 449

重载操作符     449

用于自动类型转换的构造函数     452

重载一元操作符     453

重载>>和<<     454

11.3 数组和类      460

类数组     460

数组作为类成员     463

编程实例:用于部分填充

数组的类         463

11.4 类和动态数组      465

编程实例:字符串变量类     466

析构函数         468

陷阱:指针作为传值参数     469

拷贝构造函数         471

重载赋值操作符     474

小结         477

自测题答案     478

编程练习         484

编程项目         484

第12章  独立编译和命名空间   491

12.1 独立编译      492

ADT回顾          492

案例分析:独立编译的

DigitalTime类 493

使用#ifndef      500

编程提示:定义其他库         502

12.2 命名空间      503

命名空间和using预编译指令       503

创建命名空间         504

限定名称         506

命名空间的微妙之处(选读)  507

无名命名空间         508

陷阱:混淆全局命名空间和

无名命名空间         512

小结         513

自测题答案     514

编程练习         515

编程项目         516

第13章  指针和链表   517

13.1 节点和链表 518

节点         519

nullptr      521

链表         522

在表头插入节点     523

陷阱:丢失节点     525

搜索链表         526

指针作为迭代器     528

在列表中插入和删除节点     528

陷阱:为动态数据结构使用赋值

操作符     531

链表的变体     531

类构成的链表         533

13.2 栈和队列      536

栈     536

编程实例:栈类     536

队列         539

编程实例:队列类         540

小结         544

自测题答案     545

编程练习         546

编程项目         547

第14章  递归       553

14.1 面向任务的递归函数 554

案例分析:垂直数字     555

深入递归         559

陷阱:无穷递归     560

用于递归的栈         562

陷阱:栈溢出         563

递归与迭代     563

14.2 面向值的递归函数      564

要返回值的递归函数的常规形式         564

编程实例:另一个求乘方函数     564

14.3 递归思想      567

递归设计技术         567

案例分析:二叉搜索

(递归思想示例)       569

编程实例:递归成员函数     574

小结         577

自测题答案     578

编程练习         581

编程项目         581

第15章  继承       585

15.1 继承基础      586

派生类     588

派生类中的构造函数     593

陷阱:使用来自基类的私有

成员变量         595

陷阱:私有成员函数不会继承     596

protected限定符    596

重定义成员函数     598

重定义与重载的比较     600

访问重定义的基函数     601

15.2 继承细节      602

不继承的函数         602

派生类中的赋值操作符和

拷贝构造函数         602

派生类中的析构函数     603

15.3 多态性 604

晚期绑定         604

C 虚函数       605

虚函数和扩展类型兼容性     609

陷阱:不使用虚成员函数     612

陷阱:试图对虚成员函数定义

不齐全的类进行编译     612

编程提示:使析构函数成为

虚函数     613

小结         615

自测题答案     616

编程练习         619

编程项目         620

第16章  异常处理       627

16.1 异常处理基础      628

异常处理的简单例子     629

定义自己的异常类         635

多个throw块和catch块       636

陷阱:首先捕捉较具体的异常     638

编程提示:异常类可能很简单     638

在函数中抛出异常         639

异常规范         640

陷阱:派生类中的异常规范         641

16.2 用于异常处理的编程技术 642

抛出异常的时机     642

陷阱:未捕捉的异常     643

陷阱:嵌套try-catch块         643

陷阱:滥用异常     644

异常类层次结构     644

测试可用内存         644

重新抛出异常         645

小结         646

自测题答案     647

编程练习         647

编程项目         649

第17章  模板       651

17.1 用于算法抽象的模板 652

函数模板         653

陷阱:编译器的复杂性         656

编程实例:泛型排序函数     657

编程提示:如何定义模板     660

陷阱:为不恰当的类型使用模板         660

17.2 用于数据抽象的模板 660

类模板的语法         660

编程实例:数组类         663

小结         668

自测题答案     669

编程练习         671

编程项目         671

第18章  标准模板库   675

18.1 迭代器 676

using声明        677

迭代器基础     677

编程提示:使用auto简化变量

声明         681

陷阱:编译器问题         681

迭代器的种类         682

常量和可变迭代器         684

逆向迭代器     685

其他种类的迭代器         687

18.2 容器      687

顺序容器         687

陷阱:迭代器和删除元素     690

编程提示:容器中的类型定义     691

容器配接器stack和queue   691

关联容器set和map      693

编程提示:为容器使用初始化、

基于范围的for和auto  698

效率问题         699

18.3 泛型算法      699

运行时间和大O表示法         700

容器访问运行时间         703

不修改容器的算法         703

会修改容器的算法         706

set算法  707

排序算法         708

18.4 不断进化的C   708

std::array         709

正则表达式     710

线程         713

智能指针         717

小结         722

自测题答案     723

编程练习         724

编程项目         724

附录A  C 关键字        729

附录B  操作符的优先级      730

附录C  ASCII字符集    731

附录D  部分库函数     732

附录E  内联函数 736

附录F  重载数组索引方括号      737

附录G  this指针  738

附录H  将操作符重载为成员操作符 740

文档截图

QQ截图20190217143342.jpg

C++入门经典(第10版) (Walter Savitch著)【PDF】【132.56MB】

一、推荐使用迅雷或快车等多线程下载软件下载本站资源。

二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。

三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!

四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.

五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。

六、如需转载本站资源,请注明转载来自并附带链接

七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com

下载地址
大家评论