第1章 C语言程序设计概述 1
1.1 程序与程序设计语言 1
1.1.1 程序的基本概念 1
1.1.2 程序设计语言 1
1.2 算法及其描述 3
1.2.1 算法的概念 3
1.2.2 算法的描述方法 4
1.3 C语言的发展及特点 5
1.3.1 C语言的发展概况 5
1.3.2 C语言的特点 6
1.4 C语言程序的基本结构 7
1.5 C语言字符集、标识符与关键字 8
1.5.1 C语言字符集 8
1.5.2 标识符与关键字 9
1.6 C语言程序的开发环境 9
1.6.1 Turbo C 2.0介绍 9
1.6.2 源程序输入 11
1.6.3 编译、连接与运行 11
第2章 C语言的基本数据类型与表达式 12
2.1 C语言的基本数据类型 12
2.1.1 数据类型概述 12
2.1.2 整数类型 13
2.1.3 实数类型 13
2.1.4 字符类型 14
2.2 常量与变量 15
2.2.1 常量与符号常量 15
2.2.2 变量与变量定义 16
2.3 运算符与表达式 18
2.3.1 算术运算符与算术表达式 18
2.3.2 赋值运算符与赋值表达式 21
2.3.3 逗号运算符和求字节运算符 22
2.4 数据类型转换 23
2.4.1 类型自动转换 23
2.4.2 赋值转换 24
2.4.3 强制类型转换 25
第3章 顺序程序设计 26
3.1 C语言的基本语句 26
3.1.1 简单语句 27
3.1.2 复合语句 28
3.2 数据输入与输出 29
3.2.1 字符输入输出函数 29
3.2.2 格式输出函数printf 30
3.2.3 格式输入函数scanf 35
3.3 程序举例 36
第4章 选择结构程序设计 40
4.1 关系运算符与关系表达式 40
4.1.1 关系运算符 40
4.1.2 关系表达式 40
4.2 逻辑运算符与逻辑表达式 41
4.2.1 逻辑运算符 41
4.2.2 逻辑表达式 42
4.3 if语句 43
4.3.1 单分支if语句 43
4.3.2 双分支if语句 43
4.3.3 多分支选择结构 44
4.3.4 if语句的嵌套 45
4.4 switch语句 47
4.5 结构嵌套程序举例 49
第5章 循环结构程序设计 52
5.1 while语句 52
5.2 do-while语句 53
5.3 for语句 54
5.3.1 for语句的一般形式 54
5.3.2 for语句中的各表达式含义 54
5.3.3 for语句与while语句的比较 55
5.3.4 for语句的变形 56
5.4 break、continue和goto语句 57
5.4.1 break语句 57
5.4.2 continue语句 58
5.4.3 goto语句 59
5.5 循环的嵌套 59
5.6 复合结构程序举例 61
第6章 函数与编译预处理 64
6.1 模块化程序设计与函数 64
6.1.1 模块与函数 64
6.1.2 模块设计原则 66
6.1.3 算法描述简介 66
6.2 函数的定义与调用 68
6.2.1 标准库函数 68
6.2.2 函数的定义 68
6.2.3 函数的调用 70
6.2.4 参数的传递 72
6.3 函数的递归调用 74
6.4 变量作用域与存储方式 79
6.4.1 变量的作用域 79
6.4.2 变量的存储方式 82
6.5 编译预处理 86
6.5.1 宏定义 87
6.5.2 文件包含 90
6.5.3 条件编译 90
6.6 函数设计举例 92
第7章 数组 95
7.1 一维数组 95
7.1.1 一维数组的定义 96
7.1.2 一维数组元素的引用 96
7.1.3 一维数组的存储结构与初始化 98
7.2 二维数组 100
7.2.1 二维数组的定义 100
7.2.2 二维数组元素的引用 102
7.2.3 二维数组的存储 103
7.2.4 二维数组的初始化 104
7.3 数组的应用 107
7.4 字符数组与字符串 111
7.4.1 字符数组的定义与初始化 111
7.4.2 字符串的概念及存储 111
7.4.3 字符串的输入与输出 112
7.4.4 字符串处理函数 115
7.5 数组作为函数的参数 118
7.6 程序举例 122
第8章 指针 127
8.1 指针与指针变量 127
8.1.1 指针的概念 127
8.1.2 指针变量的定义与初始化 128
8.1.3 指针运算 130
8.1.4 多级指针 133
8.2 指针与函数 135
8.2.1 指针作为函数参数 135
8.2.2 指针函数 137
8.2.3 指向函数的指针 138
8.3 指针与数组 141
8.3.1 指向一维数组的指针 142
8.3.2 二维数组与多维数组的指针表示法 144
8.4 指针与字符串 149
8.4.1 字符串的指针表示法 149
8.4.2 字符串数组 151
8.5 指针数组与命令行参数 151
8.5.1 指针数组 151
8.5.2 指针数组与命令行参数 153
8.6 程序举例 155
第9章 结构体数据类型与链表 160
9.1 结构体类型的定义 160
9.2 结构体类型变量 161
9.2.1 结构体类型变量的定义 161
9.2.2 结构体变量的使用 163
9.2.3 结构体变量的初始化 164
9.2.4 结构体变量的输入与输出 165
9.3 结构体类型数组 166
9.3.1 结构体类型数组的定义 166
9.3.2 结构体类型数组的初始化 166
9.3.3 结构体数组的使用 167
9.4 结构体类型指针 168
9.4.1 指向结构体变量的指针 168
9.4.2 指向结构体数组元素的指针 169
9.5 结构体与函数 170
9.5.1 结构体变量作函数参数 170
9.5.2 指向结构体变量的指针作为函数参数 171
9.5.3 函数的返回值为结构体类型 173
9.6 链表 173
9.6.1 链表概述 173
9.6.2 内存动态管理函数 174
9.6.3 链表的基本操作 176
9.7 程序举例 184
第10章 共用体与枚举类型 189
10.1 共用体类型与共用体变量 189
10.2 共用体变量的引用 190
10.3 共用体变量的应用 192
10.4 位运算与位段结构 193
10.4.1 位运算 193
10.4.2 位段结构 194
10.5 枚举类型 196
10.6 类型定义 198
第11章 文件 200
11.1 文件概述 200
11.1.1 文件 200
11.1.2 数据文件的存储形式 201
11.1.3 标准文件与非标准文件 201
11.1.4 文件存取方式 202
11.2 标准文件操作 203
11.2.1 标准文件FILE结构指针 203
11.2.2 标准文件的打开操作 204
11.2.3 关闭标准文件 206
11.2.4 标准文件读写操作 206
11.2.5 标准文件的随机读写 212
11.3 非标准文件操作 214
11.3.1 建立非标准文件 214
11.3.2 非标准文件打开和关闭 215
11.3.3 非标准文件的读写 216
第12章 C语言综合应用程序示例 218
12.1 多模块编程方法 218
12.1.1 程序模块组织 218
12.1.2 模块之间的通信 219
12.1.3 包含文件.h的应用 220
12.2 图形处理应用 220
12.2.1 基本图形处理库函数 220
12.2.2 图形处理库函数应用示例 231
12.3 操作系统接口应用 234
12.3.1 DOS操作系统简介 234
12.3.2 操作系统接口库函数 235
12.3.3 鼠标器及其应用 237
12.4 C语言与汇编语言混合编程 243
12.4.1 汇编语言子程序的一般格式 243
12.4.2 全局变量的传递 244
12.4.3 参数和返回值的传递 245
12.4.4 汇编语言子程序的汇编及与C程序的连接 246
12.4.5 内嵌汇编指令的C程序结构 246
12.4.6 内嵌汇编指令的C程序的编译和连接 247
12.5 综合应用程序示例——汉字显示技术 248
12.5.1 汉字显示的基本原理 248
12.5.2 西文DOS环境下的汉字显示 251
第13章 C++基础 266
13.1 C++概述 266
13.2 C++对C的扩充 268
13.2.1 C++的输入输出 268
13.2.2 C++的行注释 271
13.2.3 const常量定义与使用 271
13.2.4 局部变量的定义与全局变量作用域运算符 273
13.2.5 变量的引用 274
13.2.6 函数重载 277
13.2.7 带缺省参数的函数 278
13.2.8 内联函数 279
13.2.9 new与delete算符 280
13.3 C++面向对象程序设计 282
13.3.1 类与对象 282
13.3.2 构造函数与析构函数 287
13.3.3 静态成员 293
13.3.4 友元 295
13.3.5 运算符重载 297
13.3.6 继承与派生 300
13.3.7 多态性与虚函数 304
13.3.8 I/O流类库与文件输入输出 309
13.3.9 模板 319
13.3.10 异常处理 324
13.4 应用举例 326
附录Ⅰ ASCII字符编码一览表 334
附录Ⅱ 运算符的优先级别和结合方向一览表 335
附录Ⅲ Turbo C库函数 336
附录Ⅳ 图形模式表 347
附录Ⅴ 鼠标器功能的编号及其作用 348
附录Ⅵ 鼠标驱动程序常用功能及其参数 349
参考文献 350