第1章 C语言及程序设计初步 1
1.1 程序设计语言的发展 1
1.2 C语言的产生 3
1.3 C语言的特点 4
1.4 C程序的基本构成 6
1.5 C程序的编辑、编译、连接和执行 8
1.6 C集成开发环境(IDE) 10
1.7 上机操作 16
建立第一个C应用 16
在IDE中排错、调试程序 18
1.8小结 20
1.9习题 20
第2章 数据类型、运算符和表达式 23
2.1关于注释 23
2.2标识符 24
2.3数据类型 25
2.4常量与变量 27
常量 27
变量 30
2.5运算符 37
算数运算符 37
关系和逻辑运算符 39
位运算符 40
其他运算符 41
运算符的优先级 43
2.6表达式 45
2.7上机操作 47
字符常量的ASCII码 47
使用表达式 48
位运算符的应用 48
2.8小结 51
2.9习题 51
第3章 结构化程序设计 54
3.1 C语言语句 54
3.2条件判断 55
if语句 55
switch语句 61
3.3循环与循环跳转 63
while语句 63
do…while语句 65
for语句 68
break与continue语句 70
3.4强制跳转 72
3.5上机操作 76
顺序程序实验 76
分支程序实验 77
循环程序实验 78
综合实验 79
3.6小结 80
3.7习题 80
第4章 函数与编译预处理指令 83
4.1函数的声明与定义 83
函数声明 84
函数定义 85
从函数返回 86
4.2函数调用 89
函数调用的参数传递 89
函数的调用过程 91
数组作为函数参数 92
函数的嵌套调用 94
函数的递归调用 95
4.3函数的作用域 98
4.4主函数的参数 100
4.5编译预处理指令 102
#include指令 102
#define与#undef指令 102
条件编译指令 104
4.6上机操作 107
求整数的阶乘 107
使用递归函数 108
求方程的近似根 108
4.7小结 110
4.8习题 110
第5章 数组与指针 113
5.1数组 113
一维数组 114
多维数组 115
数组的初始化 118
5.2指针 119
指针与指针变量 120
指针运算符 121
指针的运算 123
动态内存分配 126
指向指针的指针 127
5.3指针与数组 130
5.4函数与指针 132
函数返回指针 132
函数型指针 133
5.5上机操作 135
数组元素的冒泡法排序 135
使数组循环移位 136
动态内存分配与多重指针 137
字符串数组选择法排序 141
5.6小结 143
5.7习题 143
第6章 结构、联合及枚举 146
6.1结构 147
结构与结构变量定义 147
结构成员的访问与结构变量的初始化 149
结构数组 150
结构与函数 151
嵌套结构 153
6.2结构指针与链表 154
结构指针 154
链表 156
6.3位域与联合 161
位域 161
联合 163
6.4枚举 165
6.5用户自定义类型 166
6.6上机操作 168
使用结构数组 168
使用结构中的联合 170
利用链表实现信息管理 172
利用栈实现数制转换 175
6.7小结 178
6.8习题 178
第7章 从C到C++ 181
7.1从结构化到面向对象 182
结构化程序设计的缺陷和不足 182
面向对象方法概述 183
面向对象的若干概念 185
面向对象的特征 190
7.2从C到C++ 195
C++的发展历史 195
C++对C的扩充 196
C++程序的基本构成 200
C++程序的编译、连接和执行 200
7.3 C++函数扩展 202
默认函数参数 202
不定函数参数 204
引用函数参数及函数返回值 206
内联函数 208
函数的重载 209
7.4 new和delete运算符 211
7.5上机操作 213
建立第一个C+++应用程序 213
使用C+++的显式类型转换 214
7.6小结 215
7.7习题 216
第8章 类与对象 218
8.1 C++类与对象基础 219
类的定义 219
对象的定义 220
类成员变量和成员函数的定义 222
静态类成员 224
常量类成员 226
this指针 228
8.2对象的构造与析构 229
类的构造函数 229
类的析构函数 232
对象的构造及析构过程 233
8.3嵌套类与局部类 235
8.4友元 238
友元类 238
友元函数 239
8.5运算符重载 240
运算符重载的形式与规则 240
使用成员函数重载运算符 241
使用友元函数重载运算符 243
8.6类、结构、联合的关系 244
结构和类 244
类与联合 244
8.7上机操作 245
使用类实现简单链表 245
为字符串类重载运算符 249
8.8小结 251
8.9习题 251
第9章 继承性 254
9.1单继承与多继承 255
单继承 255
多重继承 257
9.2子类对象的构造与析构 259
子类对象的生成与撤销过程 260
子类到父类间构造函数参数传递 261
9.3继承中的成员覆盖与赋值兼容 265
继承中的成员覆盖 265
继承中的赋值兼容规则 266
9.4多重继承的二义性问题 267
9.5上机操作 270
使用类的单继承 270
使用类的多重继承 273
9.6小结 276
9.7习题 277
第10章 多态性 280
10.1虚函数 281
虚函数的多态性 281
使用虚函数的意义 284
破坏虚函数动态链接的情况 286
虚析构函数 287
10.2纯虚函数与抽象类 289
10.3虚基类 291
引入虚基类的目的 291
虚基类与虚函数结合时的多态性 294
10.4使用运行时多态性 295
10.5小结 300
10.6习题 300
第11章 输入、输出和磁盘文件 304
11.1文件和流的概念 305
文件的概念 305
流的概念 306
文件与流的缓冲处理 306
11.2 C中的简单控制台I/O 307
显示器输出函数 307
键盘输入函数 308
C中的格式化控制台I/O 309
11.3 C中的I/O文件系统 313
文件打开与关闭 313
文件的读写操作 314
文件位置指针维护函数 315
11.4 C++中I/O介绍 316
11.5 C++的流输入与流输出 318
插入运算符与提取运算符 318
重载<<与>> 319
11.6 C++中流的格式化 321
格式控制标识 321
格式标识设置函数 322
其他格式设置函数 323
格式操纵符 324
11.7 C++中的文件I/O 325
构造函数 325
文件打开操作 326
文件关闭操作 327
11.8上机操作 327
C文件操作 327
C++文件操作 330
11.9小结 335
11.10习题 335
习题答案 338
第1章答案 338
第2章答案 339
第3章答案 341
第4章答案 342
第5章答案 343
第6章答案 345
第7章答案 346
第8章答案 348
第9章答案 349
第10章答案 351
第11章答案 352