第1章 机器语言程序 1
1.1 计算机组成及工作过程 1
1.2 机器语言程序设计 4
1.3 子程序调用过程 6
1.4 机器语言的局限性 8
1.5 展望 9
习题 9
第2章 基本数据类型 10
2.1 引入变量 10
2.2 整型 15
2.3 字符型 16
2.4 实型 19
2.5 字面值常量 20
2.6 typedef名字 21
习题 22
第3章 表达式与运算符 23
3.1 表达式 23
3.2 关系运算符 24
3.3 逻辑运算符 25
3.4 自增自减运算符 26
3.5 赋值和复合赋值运算符 27
3.6 条件运算符 29
3.7 逗号运算符 29
3.8 内部类型转换 30
习题 31
第4章 一维数组和一维指针 33
4.1 一维指针类型 33
4.2 一维数组类型 38
4.3 一维指针变量 43
习题 47
第5章 程序流程控制 48
5.1 if-else语句 48
5.2 switch-case语句 50
5.3 for循环 52
5.4 while循环 55
5.5 break语句 57
5.6 continue语句 57
习题 58
第6章 函数 60
6.1 函数定义 60
6.2 函数声明 65
6.2.1 模块化程序设计 65
6.2.2 函数声明 66
6.2.3 外部函数 67
6.2.4 内部函数 68
6.3 函数调用与变量的存储类别 69
6.3.1 局部变量 69
6.3.2 外部变量 72
6.3.3 寄存器变量 74
6.3.4 动态分配单元 75
6.4 值调用和地址调用 77
6.5 返回数值和返回地址 78
6.6 返回值和地址调用 79
6.7 函数指针 80
6.8 递归 82
6.9 输入输出函数 84
6.9.1 printf和scanf 84
6.9.2 getchar和putchar 88
6.10 移动下标和移动指针的比较 90
6.11 const限定修饰符 90
6.11.1 const常量型 90
6.11.2 指const常量的指针 91
6.11.3 const常量指针 94
6.11.4 指const常量的const常量指针 95
习题 95
第7章 编译预处理 99
7.1 无参宏指令 99
7.2 带参宏指令 99
7.3 条件编译指令 101
7.4 文件包含指令 102
习题 103
第8章 字符串 105
8.1 字符串赋值和输出 105
8.2 字符串处理函数原型 107
8.3 字符串处理函数实现 108
习题 110
第9章 结构、联合、枚举 111
9.1 结构 111
9.1.1 结构定义 111
9.1.2 结构和指针 113
9.1.3 结构数组 113
9.1.4 结构的嵌套 115
9.1.5 结构型返回值和地址调用 117
9.2 联合 117
9.3 枚举 119
习题 120
第10章 二维数组和指针 123
10.1 二维数组类型 123
10.2 二维指针类型 127
10.3 二维数组和一维指针 128
10.4 指针数组和指针的指针 130
习题 132
第11章 C综合设计实例 133
11.1 起泡排序 133
11.2 划分数组元素 135
11.3 折半查找 136
11.4 删除重复数据 137
11.5 Josephus问题 137
11.6 洗牌 138
11.7 三天打鱼,两天晒网 140
习题 141
第12章 基本顺序表结构 142
12.1 走进数据结构 142
12.2 基本顺序表的声明 147
12.3 基本顺序表的实现 149
12.4 删除重复数据 150
习题 151
第13章 基本顺序栈结构 152
13.1 基本顺序栈的声明 152
13.2 基本顺序栈的实现 153
13.3 数制转换 154
13.4 回文 155
习题 156
第14章 基本顺序队列结构 157
14.1 基本顺序队列的声明 157
14.2 基本顺序队列的实现 159
14.3 基数排序 161
习题 163
第15章 结构串 164
15.1 结构串结构的声明 164
15.2 结构串结构的实现 166
15.2.1 构造函数和析构函数 166
15.2.2 串赋值函数 167
15.2.3 串连接 171
15.2.4 求子串 172
15.2.5 串插入 172
15.2.6 串删除 175
15.27 字符查找 175
15.2.8 其他 176
15.3 模式匹配 177
15.4 子串替换 180
习题 180
第16章 单向结点和单向链表 182
16.1 单向结点结构的声明 182
16.2 单向结点结构的实现 183
16.3 逆置 185
16.4 循环链表 187
习题 189
第17章 流与文件 190
17.1 文件指针 190
17.2 文件打开/关闭函数 191
17.3 字符读/写函数 193
17.4 字符串读/写函数 195
17.5 无格式读/写函数 196
17.6 随机访问 198
17.7 文件复制 199
习题 200
第18章 C++顺序表类 201
18.1 C++预备知识 201
18.1.1 输入输出 201
18.1.2 内联函数 204
18.1.3 默认函数 205
18.1.4 函数重载 206
18.1.5 运算符重载 208
18.1.6 引用型 211
18.1.7 布尔型 217
18.2 从C基本顺序表到C++基本顺序表类 218
18.3 C++基本顺序表类的声明和实现 224
习题 226
第19章 C++类串 228
19.1 从C结构串到C++类串 228
19.1.1 构造函数和析构函数 228
19.1.2 成员赋值运算符函数 233
19.1.3 成员转换函数 236
19.1.4 串连接 237
19.1.5 复合赋值运算符 240
19.1.6 关系运算 241
19.1.7 求子串 242
19.1.8 子串插入 242
19.1.9 子串删除 243
19.1.10 下标运算符 244
19.1.11 字符查找 245
19.1.12 输入输出 246
19.2 类串的声明 247
19.3 模式匹配 249
19.4 子串替换 249
习题 250
第20章 Date类 252
20.1 一个类的雏形 252
20.2 用户定义的转换 253
20.3 关系运算和算术运算 258
20.4 取值函数和赋值函数 261
20.5 用户类型之间的转换 261
习题 264
第21章 模板和向量类模板 266
21.1 函数模板 266
21.2 基本顺序表类模板 269
21.3 向量类模板Vector 271
21.3.1 Vector初步 271
21.3.2 容器、通用算法和迭代器 274
21.3.3 求素数 280
21.4 函数对象 281
习题 283
第22章 继承和动态绑定 284
22.1 组合与成员初始化表 284
22.2 继承 285
22.3 多态性和虚函数 288
22.4 虚析构函数 291
22.5 纯虚函数和抽象类 292
习题 295
第23章 链表类模板和适配器 297
23.1 链表类模板List 297
23.2 适配器 302
23.2.1 链栈 302
23.2.2 链队列 303
23.2.3 优先级链队列 304
习题 304
第24章 C++的I/O流库 305
24.1 屏幕输出和键盘输入 305
24.2 格式化输入输出 305
24.2.1 设置流的格式化标志 306
24.2.2 格式输出函数 307
24.2.3 操作算子 308
24.3 文件使用方式 310
24.4 字符读写函数 311
24.5 字符串读写函数 312
24.6 无格式读写函数 313
24.7 随机访问 314
24.8 文件错误处理 315
习题 316
第25章 C++综合设计实例 317
25.1 中缀表达式求值 317
25.2 打印缓冲池 321
25.3 事件驱动模拟 325
25.4 一个人事管理类库的设计 333
25.4.1 社会安全号类 333
25.4.2 货币类Money 335
25.4.3 基类Person 337
25.4.4 派生类Contractor 343
25.4.5 派生类Employee 345
25.4.6 派生类SalariedEmployee 346
25.4.7 派生类WagedEmployee 347
25.4.8 人事管理应用程序 347
习题 350
参考文献 351