第1章 概述 1
1.1 C语言概述 1
1.1.1 C语言的发展及其特点 1
1.1.2 C语言程序的组成和结构特点 2
1.2 C语言的基本符号 5
1.2.1 基本符号集 5
1.2.2 标识符 5
1.3 算法及其描述方法 7
1.3.1 算法的概念 7
1.3.2 算法的描述方法 8
1.4 程序设计方法简介 10
本章小结 12
习题 13
第2章 C数据及其表达式 14
2.1 C数据类型 14
2.2 常量 14
2.2.1 整型常量 15
2.2.2 实型常量 16
2.2.3 字符常量 16
2.2.4 字符串 17
2.2.5 符号常量 18
2.2.6 转义字符 19
2.3 变量 20
2.3.1 变量的概念 21
2.3.2 变量说明 21
2.3.3 变量地址 22
2.3.4 变量的初始化 22
2.3.5 数据类型 23
2.4 运算符和表达式 25
2.4.1 运算符及表达式 25
2.4.2 赋值运算 26
2.4.3 算术运算 27
2.4.4 逗号运算 30
2.4.5 关系运算 31
2.4.6 逻辑运算 32
2.4.7 条件表达式 33
2.4.8 运算符的结合律和优先级 34
本章小结 35
习题 37
第3章 顺序结构的程序设计 41
3.1 顺序结构的语句 41
3.1.1 表达式语句、空语句和赋值语句 41
3.1.2 复合语句 42
3.2 字符数据的输入和输出 43
3.2.1 字符输出函数putchar() 43
3.2.2 字符输入函数getchar() 44
3.3 输出函数printf() 46
3.4 输入函数scanf() 48
本章小结 51
习题 52
第4章 选择结构的程序设计 54
4.1 条件选择结构 54
4.1.1 if语句 54
4.1.2 无条件选择结构 56
4.2 条件分支的嵌套 57
4.3 开关选择结构 60
本章小结 67
习题 68
第5章 循环结构的程序设计 70
5.1 用goto语句的循环结构 70
5.2 while语句 71
5.3 do-while语句 73
5.4 for语句 75
5.5 循环嵌套结构 78
5.6 循环结构中使用break和continue语句 80
5.6.1 break语句 80
5.6.2 continue语句 81
5.7 程序举例 82
5.6.3 循环语句小结 82
本章小结 84
习题 85
第6章 数组 89
6.1 数组和数组元素 89
6.2 一维数组 90
6.2.1 一维数组的定义和使用 90
6.2.2 一维数组的初始化 92
6.2.3 一维数组程序举例 93
6.3 多维数组 97
6.3.1 二维数组的定义和使用 97
6.3.2 二维数组的初始化 99
6.3.3 二维数组程序举例 101
6.4 字符数组 102
6.4.1 字符数组的定义和使用 103
6.4.2 字符数组的初始化 103
6.4.3 字符串的输入和输出 104
6.4.4 用于字符处理的库函数 106
本章小结 106
习题 108
第7章 C语言函数 113
7.1 C语言程序的组成 113
7.1.1 C语言函数的结构 113
7.1.2 C语言程序的组成 114
7.1.3 存储类型和变量的作用域 115
7.2 函数的参数 118
7.2.1 带参数函数定义的一般形式 118
7.2.2 形式参数和实际参数 119
7.2.3 数组作为函数的参数 120
7.3 函数的调用 125
7.3.1 函数的原型 125
7.3.2 函数调用的一般形式 127
7.3.3 函数的值 128
7.3.4 函数的递归调用 129
7.4.1 宏定义 133
7.4 程序编译预处理 133
7.4.2 文件包含 134
7.4.3 条件编译 135
本章小结 137
习题 139
第8章 构造数据类型 143
8.1 结构体 143
8.1.1 结构体类型定义及结构体类型变量说明 143
8.1.2 结构体类型变量的使用 147
8.1.3 结构体变量的初始化 149
8.1.4 结构体数组 150
8.1.5 结构体和函数 152
8.2 共用体 153
8.2.1 共用体类型的定义和共用体变量的说明 153
8.2.2 共用体成员的使用 154
8.3 枚举类型 156
8.3.1 枚举类型的定义和枚举变量的说明 156
8.3.2 枚举类型数据的使用 157
8.4 用typedef定义类型 158
本章小结 160
习题 161
9.1.1 变量和地址 165
9.1 指针变量的概念 165
第9章 指针 165
9.1.2 指针变量和指针的类型 166
9.2 变量的指针与指针变量 166
9.2.1 指针变量的定义及使用 166
9.2.2 指针变量的初始化 169
9.2.3 指针运算 170
9.3 指针与数组 172
9.3.1 指向数组的指针 172
9.3.2 字符指针与字符数组 176
9.3.3 多级指针及指针数组 180
9.3.4 指针与多维数组 183
9.4.1 函数参数为指针 187
9.4 指针与函数 187
9.4.2 函数的返回值为指针 190
9.4.3 指向函数的指针 192
9.4.4 命令行参数 195
9.5 指针与结构体 198
9.5.1 结构体指针与函数 198
9.5.2 结构体指针与指向结构体数组的指针 200
9.6 链表 202
9.6.1 链表和动态存储分配 202
9.6.2 用包含指针项的结构体变量构成结点 204
9.6.3 用于动态存储分配的函数 207
9.6.4 链表应用举例 208
本章小结 214
习题 216
第10章 文件 222
10.1 C语言文件概述 222
10.1.1 文件概述 222
10.1.2 缓冲文件系统和非缓冲文件系统 223
10.1.3 标准输入输出库函数 223
10.1.4 标准设备文件及I/O改向 226
10.2 缓冲型文件输入输出系统 227
10.2.1 文件(FILE)类型结构及文件指针 227
10.2.2 文件的打开与关闭 228
10.2.3 文件的读写 229
10.2.4 文件的定位 236
10.2.5 出错的检测 238
本章小结 238
习题 239
第11章 位运算 242
11.1 基本位运算符与位运算 242
11.1.1 按位与运算符(&) 242
11.1.2 按位或运算符(|) 243
11.1.3 按位异或运算符(^) 244
11.1.4 按位取反运算符(~) 245
11.2.1 左移运算符(<<) 246
11.2 位移运算符与位移运算 246
11.2.2 右移运算符(>>) 247
11.3 位运算的复合赋值运算符 248
11.4 位段 248
11.4.1 位段的定义 248
11.4.2 位段的引用 250
11.5 位运算应用举例 251
本章小结 253
习题 254
附录1 基本ASCII码表 256
附录2 Turbo C常用库函数 257
参考文献 262