《C/C++高效率教程 用自然语言思想递进学习C/C++》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:李春庚编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2015
  • ISBN:9787302383901
  • 页数:429 页
图书介绍:本书以“学生信息管理系统”为实际案例,分别用C语言和C++语言开发出原型系统,使学习过程编程实际开发的演练和实训。

第1章 概述 1

1.1 自然语言与计算机语言 1

1.2 计算机语言、C语言及C++语言 2

1.3 简单的C/C++程序及其运行 2

1.3.1 C/C++程序开发运行环境 2

1.3.2 格式化输出输入函数printf和scanf 6

习题1 9

第2章 基本的C/C++语言 10

2.1 C/C++语言中的名词——类型、量值 10

2.1.1 整型和整型量值 10

2.1.2 浮点型和浮点量值 12

2.1.3 字符型和字符量值 13

2.1.4 字符串常量 14

2.2 C/C++语言中的动词——运算符、短语——表达式和特殊动词性关键字 15

2.2.1 赋值运算符和赋值表达式 15

2.2.2 算术运算符和算术表达式 16

2.2.3 逻辑值、逻辑运算符和逻辑表达式 17

2.2.4 关系运算符和关系表达式 18

2.2.5 其他运算符和表达式 19

2.2.6 不同类型量值的不同运算的混合 22

2.3 C/C++语言中的连词及句子——分支、循环和顺序结构 25

2.3.1 顺序结构 25

2.3.2 if…else——分支结构 25

2.3.3 switch…case——分支结构 27

2.3.4 ?—:——分支结构 29

2.3.5 for——循环结构 29

2.3.6 while——循环结构 30

2.3.7 do…while——循环结构 31

2.3.8 goto…label…if——循环结构 32

2.3.9 break——终止循环或开关 34

2.3.1 0 continue——终止本次循环 34

2.4 C/C++语言中的句子小结 35

2.5 用C/C++语言编写程序——段落 35

2.6 用C/C++语言编写复杂段落——语句嵌套 36

2.6.1 语句嵌套的含义 36

2.6.2 嵌套语句的示例 37

2.6.3 语句嵌套的小结 40

2.7 本章总结 41

习题2 42

第3章 C/C++语言的横向名词性扩充 43

3.1 同类变量的集合——数组 43

3.1.1 一维数组 43

3.1.2 二维数组 47

3.1.3 n维数组 50

3.1.4 字符数组 51

3.2 自定义类型——typedef 56

3.2.1 简单类型的自定义 56

3.2.2 同类集合类型的自定义 56

3.3 异类集合类型和异类集合变量 57

3.3.1 结构体类型和结构体变量 57

3.3.2 共用体类型和共用体变量 60

3.3.3 枚举类型和枚举变量 61

3.4 异类集合类型的同类集合类型——结构体数组 63

3.5 各种横向扩充类型的融合使用 65

习题3 68

第4章 C/C++语言的纵向名词性扩充1:指针 69

4.1 简单指针类型和指针量值 69

4.1.1 变量的三层含义 69

4.1.2 变量的指针和指针类型的变量 69

4.1.3 与指针相关的动词补充——&和*运算符 70

4.1.4 指针和指针变量示例 71

4.2 同类集合变量——数组的指针和指针变量 73

4.2.1 一维数组的指针和操作一维数组的指针变量 73

4.2.2 二维数组的各级指针 77

4.2.3 操作二维数组的各种指针变量 81

4.2.4 m维数组的指针和指向m维数组的指针变量 84

4.3 指向指针变量的指针量值——二级指针 85

4.3.1 二级地址和二级指针变量 85

4.3.2 各种复合的二级指针及多级指针 85

习题4 92

第5章 C/C++语言的纵向名词性扩充2:函数 94

5.1 函数的构成 94

5.1.1 函数的定义 94

5.1.2 函数的声明和调用 95

5.1.3 函数的参数和返回值 95

5.2 不同参数和不同返回值形式的各种函数 96

5.2.1 无返回值函数 96

5.2.2 参数或返回值是异类集合量值的函数 97

5.2.3 参数是简单指针量值的函数 98

5.2.4 参数或返回值是异类集合类型的指针量值的函数 100

5.2.5 参数是和一维数组名对应的指针量值的函数 103

5.2.6 参数是和二维数组名对应的指针量值的函数 104

5.2.7 返回值是指针量值的函数 105

5.3 函数的多级调用 108

5.3.1 函数的嵌套调用 108

5.3.2 函数的递归调用 109

5.4 函数的指针和指向函数的指针变量 111

5.4.1 函数的指针 111

5.4.2 指向函数的指针变量 111

5.5 main函数的参数 114

5.6 动态内存管理函数 116

习题5 117

第6章 名词的空间域、时间域和物理存储位置 119

6.1 C/C++程序的逻辑结构 119

6.2 名词性的类型和量值在各逻辑结构上的空间域 120

6.2.1 模块域 120

6.2.2 嵌套模块的层域 121

6.2.3 文件域 122

6.2.4 工程域 124

6.2.5 工作区域 126

6.3 名词性的类型和量值在各逻辑结构上的时间域 126

6.3.1 模块内的static 126

6.3.2 文件内的static 128

6.3.3 关于static的总结 128

6.4 变量的物理存储位置 129

习题6 129

第7章 编译预处理 130

7.1 简单替换宏——符号常量 130

7.2 复杂替换宏——宏函数 132

7.3 批量的嵌入——文件包含 134

7.4 条件编译 134

7.4.1 #ifndef…#else…#endif 134

7.4.2 #ifdef…#else…#endif 140

7.4.3 #if…#else…#endif 140

7.4.4 assert故障诊断 140

7.4.5 字符串替换——# 141

7.4.6 数字连接——## 142

习题7 142

第8章 C/C++语言的纵向名词性扩充3:宏观扩充——文件 143

8.1 输入输出流和文件的指针 143

8.1.1 输入输出流 143

8.1.2 文件的指针 143

8.2 文件的打开和关闭 144

8.2.1 文件的物理形式 144

8.2.2 文件的打开 144

8.2.3 文件的关闭 145

8.3 文件的顺序读写 146

8.3.1 向文件中顺序输出(写)字符 146

8.3.2 从文件中顺序输入(读)字符 147

8.3.3 文件的顺序多个数据读写 148

8.3.4 文件的格式化输入和输出 152

8.3.5 文件的字符串读写 152

8.4 文件内的定位和随机读写 154

8.4.1 检测文件位置指针 154

8.4.2 置文件位置指针于文件头 154

8.4.3 置文件位置指针于指定位置 154

8.5 文件的出错控制 157

8.5.1 检查是否到达文件尾feof() 157

8.5.2 检查当前文件操作是否出错ferror() 157

8.5.3 清除文件错误标识clearerr() 158

习题8 158

第9章 C/C++语言的纵向名词性扩充4:微观扩充——位和位域 159

9.1 位运算 159

9.1.1 位运算符和位运算 159

9.1.2 位运算举例 161

9.2 位域 162

习题9 164

第10章 C++给C语言打的补丁 165

10.1 补丁 1——C++的基本输入输出 165

10.2 补丁 2——代词引用& 166

10.3 补丁 3——形容词const 168

10.3.1 符号普通常量 168

10.3.2 符号引用常量 169

10.3.3 符号常量指针 171

10.3.4 符号指针常量 173

10.4 补丁 4——参数带有默认值的函数 174

10.5 补丁5——函数的重载 176

10.6 补丁6——函数的内联 178

10.7 补丁7——内存的动态分配和释放 179

习题10 182

第11章 C++的标志性新增名词:类和对象 183

11.1 类和对象的解析 183

11.1.1 类的C语言根源 183

11.1.2 类的C++语言创建 184

11.1.3 对象的定义 186

11.1.4 类的名词作用域审视 189

11.1.5 类数据成员的说明 189

11.1.6 类成员函数的说明 191

11.2 类对象的指针、引用及数组的应用 193

11.3 类的静态数据成员和静态成员函数 197

11.4 类对象的初始构造和析构 202

11.4.1 析构函数 203

11.4.2 构造函数 203

11.4.3 复制构造函数 207

11.4.4 类内包含指针变量及内存动态分配——深构造对象 210

11.5 对类作用域的破坏——友元 214

11.5.1 类的友元函数 215

11.5.2 类的友元类 218

11.5.3 对象的this指针 222

11.6 与类和对象相关的const 225

11.6.1 类内的常数据成员 225

11.6.2 类内的常成员函数 227

11.6.3 常对象 230

11.7 类内的其他类对象——子对象 239

习题11 244

第12章 C++的动词扩充:类作用域内的运算符和类型重载 245

12.1 运算符重载 245

12.1.1 将运算符重载为类的成员函数 246

12.1.2 将运算符重载为类的友元函数 247

12.2 类型重载 253

习题12 255

第13章 C++标志性名词(类)的发展1——类作用域的嵌套(继承和派生) 256

13.1 类作用域的单路线嵌套(单继承和派生) 257

13.1.1 类作用域的单路线结构化嵌套 257

13.1.2 类的单路线交叉嵌套(继承派生中的交叉问题) 273

13.1.3 类作用域单路线嵌套中的二义性问题 275

13.1.4 基类子对象的提取 279

13.1.5 类的单路线继承派生中的构造和析构函数 283

13.2 类作用域的多路线嵌套(多继承和派生) 287

13.2.1 类作用域多路线嵌套的单路线嵌套解析 287

13.2.2 类作用域多路线嵌套带来的二义性问题 288

13.2.3 多父类具有共同最基类时多义性问题的解决 289

13.2.4 多父类具有共同最基类时子类对象的创建 291

13.3 同一类家族众对象的综合管理问题——虚函数 299

13.3.1 用指向基类的指针变量来统一管理类家族的众对象的问题 299

13.3.2 用基类指针调用派生类中定义的与基类中同名的函数 306

13.3.3 用基类指针调用派生类中新定义的函数 314

13.3.4 基类中虚空函数的发展——纯虚函数和虚基类 321

13.3.5 用基类指针释放派生类中动态分配的内存空间——虚析构函数 328

习题13 346

第14章 C++标志性名词(类)的发展2——模板 347

14.1 函数模板 348

14.1.1 函数模板的定义和应用 348

14.1.2 函数模板的函数特性 351

14.2 类模板 353

14.2.1 类模板的定义和应用 353

14.2.2 类模板和类的关系 356

14.2.3 类模板类型的对象的各种形式作为函数的参数及类模板的友元函数模板 357

14.2.4 类模板中的静态成员 360

14.2.5 类模板的继承和派生 363

习题14 367

第15章 基于模板的文件操作——流 368

15.1 计算机操作文件的内在逻辑 368

15.2 流的概念和流类库 368

15.3 标准流对象及其操作 370

15.3.1 标准输入流对象及其操作方法 371

15.3.2 标准输出流对象及其操作方法 373

15.3.3 标准流操作示例 374

15.4 基于流类的磁盘文件操作 389

15.4.1 文本文件的操作 391

15.4.2 二进制文件的操作 395

习题15 397

第16章 C++表示有效范围的名词发展3——命名空间 398

16.1 命名空间的作用 398

16.2 命名空间的定义和使用 399

16.2.1 命名空间的定义 399

16.2.2 命名空间的使用 399

习题16 415

第17章 C++对预想不到的运行错误控制——异常处理 416

17.1 异常处理的作用 416

17.2 异常处理的语句规则 417

17.3 异常处理示例 418

习题17 422

第18章 C++的名词、动词融合发展4——标准模板库 423

18.1 标准模板库的引出 423

18.2 标准模板库中的容器(类) 423

18.3 标准模板库中的迭代器 425

18.4 标准模板库中的容器适配器 426

18.5 标准模板库中的泛型算法 427

习题18 427

附录A ASCII码表 428

参考文献 429