第1章C语言概述 1
1.1 C语言的起源 1
1.2 C语言是高级语言中的中级语言 1
1.3 C语言是结构化语言 2
1.4 C语言是面向程序员的语言 3
1.5编译和解释 4
1.6 C语言程序结构 4
1.6.1库和连接 6
1.6.2分别编译 6
1.6.3编译C语言程序 7
1.6.4 C语言的内存映像 7
1.7术语 7
本章小结 8
习题 8
第2章 数据类型和表达式 9
2.1数据类型 9
2.2保留字、标识符 10
2.2.1标识符 10
2.2.2保留字 10
2.2.3选择合适的标识符 11
2.2.4常量与变量 11
2.3基本数据类型 12
2.3.1数据的内部表示 13
2.3.2字符型 14
2.3.3整型 16
2.3.4浮点类型和双精度类型 17
2.3.5字符串常量 18
2.3.6符号常量 19
2.4运算符与表达式 19
2.4.1表达式 20
2.4.2算术运算符及算术表达式 20
2.4.3关系运算符及关系运算表达式 21
2.4.4逻辑运算符及逻辑表达式 22
2.4.5赋值表达式 22
2.4.6逗号表达式 23
2.4.7表达式的运算顺序 23
2.4.8条件运算 23
2.4.9 sizeof运算 24
2.4.10运算符优先级与结合性质 24
2.5数据类型转换 26
2.5.1隐式类型转换 26
2.5.2强制类型转换 27
2.6位运算 27
2.7数组和指针 29
2.7.1数组 29
2.7.2指针 30
2.7.3指针和数组的简单用法 32
2.8简单应用程序举例 34
本章小结 36
习题 36
第3章 结构化程序设计 38
3.1顺序结构程序设计 38
3.1.1赋值语句 38
3.1.2数据输入 40
3.1.3数据输出 43
3.2选择结构程序设计 49
3.2.1条件语句(if) 49
3.2.2开关选择语句 54
3.2.3 goto语句 57
3.3循环结构程序设计 58
3.3.1 3种循环结构的流程表示及执行过程 58
3.3.2循环的嵌套结构 61
3.3.3循环程序举例 62
3.3.4循环辅助控制 69
本章小结 72
习题 72
第4章 函数 74
4.1 C语言程序的结构 74
4.2函数的定义和调用 74
4.2.1函数的定义 74
4.2.2函数的调用 75
4.3变量的存储类别和变量的使用范围 78
4.3.1变量的存储类别 78
4.3.2变量的作用范围 80
4.4函数间的传值 81
4.5函数的嵌套调用 84
4.6函数的递归调用 85
4.6.1递归函数及其执行特点 85
4.6.2实现递归调用的两种结构 86
4.6.3递归结构的函数用法举例 87
4.7函数的应用举例 89
本章小结 91
习题 91
第5章 编译预处理 93
5.1宏定义 93
5.1.1不带参数的宏定义 93
5.1.2带参数的宏定义 95
5.2文件包含 96
5.3条件编译 98
本章小结 100
习题 100
第6章 复合数据类型 101
6.1指针类型 101
6.1.1指针的声明 101
6.1.2指针的引用 102
6.1.3指针的运算 102
6.2数组类型 104
6.2.1一维数组的声明 104
6.2.2一维数组元素的引用与初始化 104
6.2.3数组作为函数的参数 105
6.2.4二维数组的声明与使用 107
6.2.5二维数组元素的引用与初始化 108
6.2.6指针与数组 109
6.2.7指针数组与数组指针 110
6.3字符串 113
6.3.1字符串常量与变量 113
6.3.2字符串数组 115
6.3.3有关字符串操作的系统库函数 116
6.3.4字符串的用法举例 118
6.4结构类型 120
6.4.1结构类型 120
6.4.2访问结构体成员 122
6.4.3结构指针和结构数组 124
6.4.4结构指针作为函数的参数 128
6.4.5结构体类型及结构指针的应用举例 129
6.5关于指针的另外几种用法 138
6.5.1指向函数的指针 138
6.5.2指针类型的函数 141
6.5.3指向指针的指针(二级指针) 142
6.6 main()函数的参数 143
6.7联合、枚举和类型别名 147
6.7.1联合类型 147
6.7.2枚举类型 149
6.7.3类型别名 150
本章小结 151
习题 151
第7章 文件及其操作 155
7.1 C语言文件的概念 155
7.1.1 ANSI C的I/O和UNIX C的I/O 155
7.1.2流和文件 156
7.1.3 C语言文件 158
7.2文件系统的基础 158
7.2.1定义文件结构体类型的指针 159
7.2.2用于文件操作的函数 160
7.3建立文件的基本步骤 173
7.4读取文件的基本步骤 174
7.5非缓冲文件系统 175
7.5.1 open()函数 176
7.5.2 close()函数 176
7.5.3 creat()函数 177
7.5.4 read()和write()函数 177
7.5.5 unlink()函数 178
7.5.6 lseek()函数 179
7.5.7缓冲文件系统和非缓冲文件系统的区别 180
本章小结 180
习题 180
第8章 基本应用综合举例 181
8.1数组元素的查找和排序 181
8.1.1排序及应用 181
8.1.2查找 186
8.2数值积分 188
8.2.1矩形法 188
8.2.2梯形法 189
8.2.3辛普生法 190
8.3非线性方程的求根 191
8.3.1牛顿迭代法 192
8.3.2二分法 193
8.3.3弦截法 194
8.4 C语言动态数据结构及其用法 194
8.4.1动态存储分配 194
8.4.2线性动态数据结构及链表的应用 195
8.4.3非线性动态数据结构及二叉树的应用 200
8.5文件的应用 202
8.5.1用户数据文件的应用 203
8.5.2用户文本文件的应用 204
本章小结 210
习题 210
第9章C+概述 211
9.1从C到C++ 211
9.2 C++程序开发过程 212
9.3 C++编程环境介绍 213
9.3.1环境简介 213
9.3.2 C+++环境介绍 215
9.3.3 C+++编辑步骤 216
9.3.4 Microsoft Visual C+++的帮助 217
9.3.5 Visual C+++开发环境概述 217
9.4 C++程序示例 218
9.5 C++对函数功能的增强 220
9.5.1 C+++用函数组织程序 220
9.5.2 C+++程序是函数驱动的 220
9.6 C++对数据类型的扩充 222
9.6.1基本数据类型和自定义数据类型 222
9.6.2从结构到类 223
9.6.3类与结构的区别 224
9.7 C++对运算符的扩充 225
9.7.1基本运算符 225
9.7.2运算符重载 225
9.7.3运算符作成员函数 227
9.7.4转换运算符 230
9.7.5赋值运算符 232
本章小结 234
习题 235
第10章 类与对象 236
10.1从结构体到类 236
10.2类的定义与对象的引用 237
10.2.1类的定义 237
10.2.2对象成员的访问 239
10.2.3类与对象的关系 244
10.3构造函数与析构函数 245
10.3.1构造函数 245
10.3.2析构函数 247
10.3.3调用构造函数和析构函数的时机(对象的生存周期) 249
10.4函数重载 250
10.5友元 251
10.6对象指针 255
10.6.1运算符new与delete 255
10.6.2动态地创建类对象 255
10.7派生类与继承类 261
10.7.1派生类及其定义 261
10.7.2单继承的派生类 261
10.7.3多继承的派生类 268
10.8虚拟函数与多态性 272
10.8.1虚拟函数使用方法 272
10.8.2虚拟函数与重载函数 273
10.8.3虚拟函数的继承 274
本章小结 275
习题 275
第11章C+上机预备知识 280
11.1简单的输入/输出 280
11.2 Visual C++6.0的操作环境 282
11.2.1 Visual C+++ 6.0的工作窗口 283
11.2.2使用Visual C+++ 6.0 284
11.3程序调试——Debug功能 286
本章小结 297
习题 297
参考文献 299