第一章 概述 1
1.1 C语言概述 1
1.1.1 C语言及其特点 1
1.1.2 C语言程序的结构特点 2
1.1.3 Turbo C上机步骤 4
1.2 C语言的基本符号 8
1.2.1 基本符号集 8
1.2.2 标识符 8
1.3 数据的输入和输出 9
1.3.1 putchar()函数和getchar()函数 9
1.3.2 printf()函数和scanf()函数 12
本章小结 17
习 题 18
第二章 数据类型、运算符和表达式 22
2.1 C语言数据类型简介 22
2.2 常量 22
2.2.1 数值常量 22
2.2.2 字符常量和字符串 23
2.2.3 标识符命名的常量 25
2.2.4 换码序列常量 27
2.3 变量 28
2.3.1 变量说明和变量地址 28
2.3.2 变量的初始化 29
2.3.3 数据类型 30
2.3.4 存储类型和变量的作用域 32
2.4 运算符和表达式 35
2.4.1 运算符和表达式 35
2.4.2 赋值运算符和赋值表达式 36
2.4.3 算术运算符和算术表达式 37
2.4.4 逗号运算符和逗号表达式 40
2.4.5 关系和逻辑运算 41
2.4.6 条件表达式 44
2.4.7 位运算表达式 45
2.4.8 运算符的结合律和优先级 49
本章小结 50
习 题 52
第三章 三种基本结构的程序设计 60
3.1 顺序结构 60
3.1.1 赋值语句和空语句 60
3.1.2 复合语句 61
3.2 分支结构 61
3.2.1 条件分支结构 62
3.2.2 无条件分支结构 64
3.2.3 条件分支的嵌套 65
3.2.4 开关分支结构 68
3.2.5 程序举例 72
3.3 循环结构 75
3.3.1 用goto语句构成循环 75
3.3.2 while语句 75
3.3.3 do-while语句 77
3.3.4 for语句 79
3.3.5 break和continue语句的使用 82
3.3.6 程序举例 85
3.3.7 循环语句小结 87
本章小结 87
习 题 88
第四章 数组 97
4.1 数组和数组元素 97
4.2 一维数组 98
4.2.1 一维数组的定义和使用 98
4.2.2 一维数组的初始化 100
4.2.3 一维数组程序举例 100
4.3 多维数组 104
4.3.1 二维数组的定义和使用 104
4.3.2 二维数组的初始化 107
4.3.3 二维数组程序举例 109
4.4 字符数组 110
4.4.1 字符数组的定义和使用 110
4.4.2 字符数组的初始化 111
4.4.3 字符串的输入和输出 111
4.4.4 用于字符处理的库函数 114
本章小结 114
习题 116
第五章 C语言函数 125
5.1 C语言程序的组成 125
5.1.1 C语言函数的结构 125
5.1.2 C语言程序的组成 126
5.2 函数的参数 127
5.2.1 带参数函数定义的一般形式 127
5.2.2 形式参数和实际参数 128
5.2.3 数组作为函数的参数 129
5.3 函数的调用 135
5.3.1 函数的原型 135
5.3.2 函数调用的一般形式 136
5.3.3 函数的值 138
5.3.4 函数的递归调用 138
5.4 程序编译预处理 143
5.4.1 宏定义 143
5.4.2 文件包含 144
5.4.3 条件编译 145
本章小结 147
习题 148
第六章 构造数据类型 158
6.1 结构体 158
6.1.1 结构体类型定义及结构体类型变量说明 158
6.1.2 结构体类型变量的使用 162
6.1.3 结构体变量的初始化 164
6.1.4 结构体数组 165
6.1.5 结构体和函数 167
6.2 共用体 168
6.2.1 共用体类型的定义和共用体变量的说明 168
6.2.2 共用体成员的使用 170
6.3 位字段 171
6.3.1 位字段的定义和位字段变量的说明 171
6.3.2 位字段变量使用 173
6.4 枚举类型 175
6.4.1 枚举类型的定义和枚举变量的说明 175
6.4.2 枚举类型数据的使用 176
6.5 用typedef定义类型 178
本章小结 179
习题 181
第七章 指 针 186
7.1 指针变量的概念 186
7.2 变量的指针与指针变量 187
7.2.1 指针变量的定义及使用 187
7.2.2 指针变量的初始化 190
7.2.3 指针运算 191
7.3 指针与数组 194
7.3.1 指向数组的指针 194
7.3.2 字符指针与字符数组 198
7.3.3 多级指针及指针数组 202
7.3.4 指针与多维数组 206
7.4 指针与函数 209
7.4.1 函数参数为指针 209
7.4.2 函数的返回值为指针 213
7.4.3 指向函数的指针 214
7.4.4 命令行参数 218
7.5 指针与结构体 221
7.5.1 结构体指针与指向结构体数组的指针 221
7.5.2 结构体指针与函数 225
本章小结 227
习题 229
第八章 文件 242
8.1 C语言文件概述 242
8.1.1 文件概述 242
8.1.2 缓冲文件系统和非缓冲文件系统 243
8.1.3 标准输入输出库函数 243
8.1.4 标准设备文件及I/O改向 246
8.2 缓冲型文件输入输出系统 247
8.2.1 文件(FILE)类型结构及文件指针 247
8.2.2 文件的打开与关闭 248
8.2.3 文件的读写 249
8.2.4 文件的定位 257
8.2.5 出错的检测 258
8.3 非缓冲型文件输入输出系统 259
本章小结 263
习 题 264
第九章 类和对象 270
9.1 面向对象程序设计概述 270
9.2 从C 向C++过渡 271
9.2.1 简单C++程序的认识 271
9.2.2 格式化输出和标准输入流 272
9.2.3 函数的说明与参数 274
9.2.4 枚举名与结构体名 277
9.2.5 自由存储操作符new和delete 277
9.3 类和对象 280
9.3.1 类的定义 281
9.3.2 类的对象 281
9.3.3 类的成员 282
9.4 类的成员函数与友元函数 285
9.4.1 成员函数 285
9.4.2 友元函数 288
9.5 构造函数与析构函数 292
9.5.1 构造函数 292
9.5.2 析构函数 294
9.6 静态成员 296
习题 296
第十章 继承 301
10.1 单一继承 301
10.1.1 派生类 301
10.1.2 继承时的访问控制 303
10.2 多重继承 307
10.3 构造函数、析构函数与继承 308
10.4 虚基类 310
习 题 311
第十一章 多态性 313
11.1 重载 313
11.1.1 函数原型 313
11.1.2 函数重载 315
11.1.3 运算符重载 317
11.2 虚函数 320
11.2.1 派生类指针 320
11.2.2 虚函数 321
11.2.3 纯虚数与抽象类 322
11.3 I/O系统 324
11.3.1 I/O流 324
11.3.2 文件流 326
习 题 329
附录一 C语言常用库函数 330
附录二 ASCⅡ码表 337