第1章 C语言概述 1
1.1 C语言的发展历史简介 1
1.2 C语言的特点 1
1.3 C程序入门与一般形式 2
1.3.1 C程序入门 2
1.3.2 C源程序的结构和一般形式 5
1.4 C程序的上机编辑、编译、连接和执行过程 7
1.4.1 编译型语言源程序在机器上运行的步骤 7
1.4.2 用Turbo C来运行C程序的步骤 7
习题 10
第2章 数据类型、运算符与表达式 11
2.1 数据类型 11
2.1.1 C的基本数据类型 11
2.1.2 类型修饰词 11
2.1.3 C的其他数据类型 12
2.2 常量 12
2.2.1 数值常量 13
2.2.2 字符常量 13
2.2.3 字符串常量 14
2.2.4 符号常量 15
2.3 变量 15
2.3.1 整型变量 16
2.3.2 字符型变量 17
2.3.3 浮点型和双精度型变量 17
2.3.4 字符串变量 17
2.3.5 变量赋初值 19
2.4 标识符 19
2.5 运算符与表达式 20
2.5.1 算术运算符与算术表达式 20
2.5.2 关系运算符与关系表达式 21
2.5.3 逻辑运算符与逻辑表达式 22
2.5.4 增1和减1运算符 22
2.5.5 位运算符 23
2.5.6 赋值运算符和赋值表达式 24
2.5.7 逗号运算符和逗号表达式 25
2.5.8 条件运算符 25
2.6 混合运算及类型转换 26
2.6.1 对二元算术运算 26
2.6.2 对赋值运算 26
2.7 枚举类型及其说明 27
2.7.1 枚举类型及变量定义 27
2.7.2 枚举类型变量可参与的操作 28
2.8 输入/输出方式 29
2.8.1 字符输入库函数getchar和输出库函数putchar 29
2.8.2 字符串的输入函数gets和输出函数puts 29
2.8.3 有格式的输入函数scanf和输出函数printf 30
2.9 编程风格 36
习题 37
第3章 变量的存储类别 39
3.1 变量的存储类别概述 39
3.2 局部变量 40
3.3 全局变量 41
3.3.1 全局变量及其定义和作用范围 41
3.3.2 全局变量的有关说明 42
3.4 寄存器变量 46
3.5 静态存储变量 47
3.5.1 局部静态存储变量 47
3.5.2 全局静态变量 48
3.6 动态存储变量 49
3.7 变量存储类别小结 49
习题 51
第4章 语句和流程控制 52
4.1 最简单的语句 52
4.2 复合语句 52
4.3 if语句(条件语句) 54
4.3.1 if语句的一般形式 54
4.3.2 用if语句实现多分支判定结构 55
4.4 循环语句 56
4.4.1 while循环语句 56
4.4.2 do-while语句 56
4.4.3 for循环语句 57
4.4.4 goto语句和带标号的语句 58
4.5 break语句(中止语句) 59
4.6 switch语句(开关语句) 60
4.7 continue语句(继续语句) 62
4.8 return语句(返回语句) 62
4.9 循环的退出及死循环的避免 63
4.9.1 循环的退出 63
4.9.2 死循环问题 63
4.10 程序举例 64
习题 65
第5章 预处理 67
5.1 宏替换 67
5.1.1 不带参数的宏 67
5.1.2 带参的宏 69
5.2 文件包含 70
5.3 条件编译 70
习题 71
第6章 函数 73
6.1 函数定义 73
6.1.1 函数定义的一般形式 73
6.1.2 函数参数的使用及说明 74
6.1.3 函数的返回值 75
6.2 函数调用 76
6.2.1 函数调用的一般形式 76
6.2.2 对被调用函数的说明 77
6.3 函数的嵌套调用及递归 78
6.4 内部函数和外部函数 84
6.4.1 内部函数 84
6.4.2 外部函数 84
6.5 函数的应用 84
习题 85
第7章 数组 86
7.1 一维数组的定义及引用 86
7.1.1 一维数组的定义 86
7.1.2 关于一维数组的几点说明 86
7.1.3 一维数组元素的引用 86
7.1.4 一维数组的初始化 87
7.1.5 一维数组的应用举例 87
7.2 二维数组的定义和引用 89
7.2.1 二维数组的定义 89
7.2.2 二维数组定义中的几点说明 89
7.2.3 二维数组的引用 90
7.2.4 二维数组初始化 90
7.2.5 二维数组应用举例 91
7.3 字符数组 92
7.3.1 字符数组的定义 92
7.3.2 字符数组的初始化 92
7.3.3 字符数组、字符串及字符三者间的关系 92
7.3.4 字符数组的输入、输出 93
7.3.5 字符串处理函数 93
7.3.6 字符数组的应用 95
习题 96
第8章 指针 98
8.1 指针的概念 98
8.2 变量与指针 100
8.2.1 指针变量的定义 101
8.2.2 指针变量的引用 101
8.3 指针与数组 103
8.3.1 指向数组(元素)的指针变量的定义与赋值 103
8.3.2 通过指针引用数组元素 104
8.3.3 指向多维数组的指针 106
8.3.4 字符指针 108
8.3.5 指针数组 108
8.4 指针与函数 110
8.4.1 指向函数的指针变量的定义及使用 110
8.4.2 用指针类型数据作函数参数 112
8.4.3 带参的主函数 114
8.4.4 返回指针的函数 115
8.5 指向指针的指针 116
习题 118
第9章 位运算、结构体和联合 119
9.1 位运算 119
9.1.1 按位取反运算符 119
9.1.2 按位与运算符 120
9.1.3 按位或运算符 121
9.1.4 位异或运算符 121
9.1.5 左移运算符 122
9.1.6 右移运算符 123
9.1.7 计算机中的几种码制 123
9.2 结构体 124
9.2.1 结构体的概念 124
9.2.2 结构体变量的定义 125
9.2.3 结构体变量的引用 126
9.2.4 结构体变量的初始化 127
9.2.5 结构体数组 128
9.2.6 指向结构体的指针 129
9.3 链表 131
9.3.1 链表的概述 131
9.3.2 链表操作 132
9.4 联合 138
习题 139
第10章 文件 140
10.1 文件概述 140
10.2 文件的打开与关闭 141
10.2.1 打开文件函数 141
10.2.2 关闭文件函数 142
10.3 文件的读写 143
10.3.1 字符的输入输出函数 143
10.3.2 字符串的输入输出函数 144
10.3.3 数据块的输入输出函数 145
10.3.4 指定文件的输入输出函数 145
10.3.5 文件定位函数 146
10.4 出错检测函数 147
10.4.1 ferror函数 147
10.4.2 clearerr函数 147
习题 147
第11章 转向C++ 148
11.1 C++ 148
11.2 从C到C++的转变 149
11.2.1 标识符、关键字 149
11.2.2 声明语句 149
11.2.3 运算符 150
11.2.4 特有的输入输出语句 152
11.2.5 函数原型与函数声明 153
11.2.6 存储类 154
11.2.7 结构体 154
11.2.8 Sizeof运算符 155
11.3 C++新特征 155
11.3.1 注释 156
11.3.2 常量类型 156
11.3.3 显式类型转换 157
11.3.4 作用域分辨符 157
11.3.5 内联函数和宏 159
11.3.6 参数缺省 160
11.3.7 引用类型 162
11.3.8 指针 166
11.3.9 函数重载 168
11.3.10 类型参数化 170
11.3.11 常量与函数 173
11.3.12 动态内存分配 174
习题 176
第12章 类与对象 181
12.1 定义一个类 181
12.1.1 类的定义 181
12.1.2 定义成员函数 183
12.2 对象 184
12.2.1 对象声明 184
12.2.2 构造函数与折构函数 185
12.2.3 类、对象的内存分配 190
12.2.4 静态类数据 191
12.2.5 源文件的组织 193
12.3 对象行为与组织 193
12.3.1 友元 193
12.3.2 对象组织 196
习题 199
第13章 继承 201
13.1 派生类 201
13.1.1 派生类声明 201
13.1.2 友元与继承 204
13.1.3 派生类的构造函数与折构函数 205
13.2 多基派生 209
13.3 虚基类 210
13.4 虚函数 211
13.4.1 方法的多态性与虚函数 211
13.4.2 虚函数的访问 215
13.4.3 纯虚函数与抽象类 219
13.4.4 多基派生中虚函数的二义性 221
习题 224
第14章 重载与转换 226
14.1 概述 226
14.2 特殊运算符的重载 230
14.2.1 重载复合运算符 230
14.2.2 重载“=”运算符 232
14.2.3 重载“++”和“--”运算符 234
14.2.4 重载比较运算符 236
14.2.5 重载插入符和提取符 237
14.2.6 重载运算符[] 240
14.2.7 重载运算符() 241
14.3 转换 243
14.3.1 不同数据类型之间的转换 243
14.3.2 不同类类型之间的转换 245
习题 247
第15章 Visual C++概述 249
15.1 Visual C++的发展史 249
15.2 Visual C++ 6.0的安装 249
第16章 Visual C++ 6.0基本操作 252
16.1 Visual C++ 6.0集成开发环境的外观和基本操作 252
16.1.1 Visual C++ 6.0集成开发环境的组成元素 252
16.1.2 正文窗口及其操作 253
16.1.3 项目工作台窗口及其操作 254
16.1.4 输出窗口及其操作 256
16.2 利用Visual C++6.0编写应用程序的一般过程 256
16.2.1 新建项目 256
16.2.2 添加代码 258
16.2.3 添加资源 260
16.2.4 编译、连接和调试 262
第17章 资源及资源编辑器简介 263
17.1 资源 263
17.1.1 资源的基本概念 263
17.1.2 资源符号 263
17.2 资源编辑器 264
17.2.1 对话框编辑器 265
17.2.2 菜单编辑器 267
17.2.3 图形编辑器 270
17.2.4 工具栏编辑器 271
17.2.5 加速键表编辑器 273
17.2.6 字符串表编辑器 274
17.2.7 版本信息编辑器 275
第18章 Windows编程基础 276
18.1 创建Windows应用程序的基本框架 276
18.2 Windows编程基础 281
18.2.1 Windows的工作机制 281
18.2.2 程序的控制流程 281
18.2.3 基本的数据类型 284
18.3 Class Wizard和WizardBar的使用 285
18.3.1 WizardBar简介 285
18.3.2 Class Wizard的使用 286
附录A Turbo C的上机过程 290
A.1 运行Turbo C时的硬件配置及安装 290
A.1.1 配置 290
A.1.2 安装 290
A.2 Turbo C的使用 290
A.2.1 进入Turbo C 290
A.2.2 选择工作目录 291
A.2.3 建立工作环境 292
A.2.4 编辑源文件 293
A.2.5 编译和连接 294
A.2.6 运行 296
附录B Borland C++集成开发环境 297
B.1 安装与启动 297
B.1.1 Borland C++的安装 297
B.1.2 Borland C++的启动与退出 298
B.2 窗口操作 298
附录C 文本、窗口及绘图 302
C.1 字符显示模式及控制 302
C.2 字符显示属性及控制 303
C.3 开窗口和定位 303
C.4 与窗口输入/输出相关的一组函数 304
C.5 Turbo C绘图 304
C.5.1 图形显示模式 304
C.5.2 图形系统控制 305
C.5.3 色彩控制 307
C.5.4 绘图和着色 307
C.5.5 图形模式下的文本输出 309
C.5.6 图形模式下的定位 309