第1章 C语言程序设计初步 1
1.1 程序设计的基本概念 1
1.1.1 程序与程序设计语言 1
1.1.2 问题求解与程序设计 2
1.2 程序设计的一般过程 3
1.2.1 问题描述 3
1.2.2 问题分析 3
1.2.3 计算机实现 3
1.2.4 程序运行与调试 4
1.3 程序设计的两种方法 5
1.3.1 结构化程序设计 5
1.3.2 面向对象程序设计 6
1.4 C语言概述 7
1.4.1 为什么选择C语言 7
1.4.2 C语言字符集 8
1.4.3 C语言标识符与关键字 9
1.4.4 C语言程序基本结构 10
1.5 C语言编程环境 11
1.5.1 Turbo C 2.0编程环境 11
1.5.2 Visual C++ 6.0编程环境 14
本章小结 21
习题 22
2.1 C语言基本数据类型 23
2.1.1 数据类型概述 23
第2章 数据类型与简单输入输出 23
2.1.2 整数类型 24
2.1.3 实数类型 25
2.1.4 字符类型 25
2.2 常量与变量 25
2.2.1 常量 25
2.2.2 变量 29
2.3 数据的输出与输入 31
2.3.1 数据的输出 31
2.3.2 数据的输入 36
本章小结 40
习题 40
3.1.1 C语言运算符概述 43
第3章 运算符与表达式 43
3.1 基本运算符及其表达式 43
3.1.2 算术运算符及其表达式 45
3.1.3 赋值运算符及其表达式 46
3.1.4 关系运算符及其表达式 48
3.1.5 逻辑运算符及其表达式 50
3.1.6 位运算符及其表达式 52
3.1.7 条件运算符及其表达式 53
3.1.8 逗号运算符和sizeof运算符 54
3.2 混合运算时数据类型的转换 55
3.2.1 类型隐式转换 55
3.2.2 类型显式转换 56
本章小结 57
习题 58
第4章 程序流程控制 62
4.1 算法 62
4.1.1 算法的概念 62
4.1.2 算法的组成要素 63
4.1.3 算法的描述 63
4.2 C语言的基本语句 67
4.3 顺序结构 68
4.4 选择结构 70
4.4.1 if...else语句 71
4.4.2 if语句 73
4.4.3 else if语句 74
4.4.4 if语句的嵌套 76
4.4.5 switch语句结构 81
4.5 循环结构 83
4.5.1 穷举与迭代算法 84
4.5.2 while语句 86
4.5.3 do...while语句 91
4.5.4 for语句 92
4.5.5 流程转向语句 93
4.5.6 循环结构的嵌套 95
本章小结 102
习题 103
5.1 模块化设计与函数 109
第5章 模块化程序设计 109
5.1.1 函数的定义 110
5.1.2 函数的调用 112
5.1.3 函数的参数传递 115
5.1.4 函数的嵌套调用 117
5.1.5 函数的递归调用 118
5.1.6 系统标准函数 121
5.2 局部变量和全局变量 122
5.2.1 局部变量 122
5.2.2 全局变量 124
5.3 变量的存储属性 126
5.3.1 自动变量 127
5.3.2 静态变量 129
5.3.3 外部变量 131
5.3.4 寄存器变量 131
5.4 内部函数和外部函数 132
5.4.1 内部函数 132
5.4.2 外部函数 132
5.5 编译预处理 133
5.5.1 文件包含 133
5.5.2 宏定义 133
5.5.3 条件编译 136
5.6 函数综合应用举例 138
本章小结 141
习题 142
6.1 数组的概念 145
6.2 一维数组 145
第6章 数组 145
6.2.1 一维数组的声明 146
6.2.2 一维数组的初始化 147
6.2.3 一维数组元素引用 149
6.2.4 一维数组应用举例 149
6.3 二维数组与多维数组 154
6.3.1 二维数组的声明 155
6.3.2 二维数组的初始化 155
6.3.3 二维数组元素引用 157
6.3.4 二维数组应用举例 159
6.3.5 多维数组 161
6.4 字符数组与字符串 162
6.4.1 字符数组 163
6.4.2 字符数组应用 164
6.4.3 字符串处理函数 165
6.5 数组作为函数参数 167
6.5.1 数组元素作为函数参数 168
6.5.2 数组名作为函数参数 169
6.6 数组综合应用举例 172
本章小结 177
习题 177
第7章 指针 181
7.1 指针的概念 181
7.1.1 地址与指针 181
7.1.2 指针变量 182
7.1.3 指针运算 183
7.2 指针与变量 185
7.3 指针与数组 186
7.3.1 指针和一维数组 186
7.3.2 指针和二维数组 189
7.3.3 指针数组 191
7.4 指针与字符串 192
7.4.1 字符指针与字符数组 192
7.4.2 字符指针数组 194
7.5 指针与函数 196
7.5.1 指针作为函数形式参数 196
7.5.2 返回指针的函数 199
7.5.3 指向函数的指针 200
7.6 指向指针的指针 202
7.7 命令行参数 204
7.8 指针综合应用举例 205
本章小结 207
习题 208
第8章 结构体、共用体与枚举类型 213
8.1 结构体 213
8.1.1 结构体类型的定义 213
8.1.2 结构体类型变量 215
8.1.3 结构体类型数组 219
8.1.4 结构体类型指针 222
8.1.5 结构体与函数 225
8.1.6 动态内存分配 228
8.2 共用体 231
8.3 位段结构 236
8.4 枚举类型 237
8.5 用typedef定义类型 240
8.6 结构体应用举例 241
本章小结 248
习题 249
第9章 文件 254
9.1 文件概述 254
9.1.1 文件的概念 254
9.1.2 C语言的文件系统 255
9.2 标准文件操作 255
9.2.2 文件的打开 256
9.2.1 文件类型指针 256
9.2.3 文件的关闭 258
9.2.4 文件的顺序读写 258
9.2.5 文件的随机读写 265
9.2.6 文件检测 268
本章小结 268
习题 269
第10章 面向对象程序设计 273
10.1 结构化程序设计与面向对象程序设计 273
10.1.1 结构化程序设计与面向对象程序设计概述 273
10.1.2 结构化程序设计与面向对象程序设计解决问题的比较 274
10.2 面向对象程序设计的基本概念 276
10.3 面向对象程序设计的基本特点 277
10.4.1 类的定义 278
10.4 类和对象 278
10.4.2 对象的定义 279
10.4.3 对象的初始化 279
10.5 继承和派生 281
10.5.1 派生类的定义 282
10.5.2 派生类程序举例 283
10.5.3 派生类生成过程 283
10.6 多态性 284
10.6.1 函数重载 284
10.6.2 运算符重载 285
10.6.3 虚函数 286
10.7.1 面向对象的分析 287
10.7 面向对象的软件开发 287
10.7.2 面向对象的设计 288
10.7.3 面向对象的编程 288
10.7.4 面向对象的测试 288
10.7.5 面向对象的软件维护 288
本章小结 288
习题 289
附录A ASCII码表 291
附录B 关键字 292
附录C 运算符的优先级别和结合方向 293
附录D 常用库函数 294
附录E C语言常见出错信息 308
参考文献 312