第1章 C语言概述 1
1.1 C语言的发展与特点 1
1.1.1 C语言的发展 1
1.1.2 C语言的特点 2
1.2 C语言程序结构 4
1.3 C程序的上机步骤 6
1.3.1 源程序的编辑、编译、连接与执行 6
1.3.2 用Turbo C运行C程序的上机步骤 7
本章小结 18
习题 19
第2章 基本数据类型、运算符及表达式 20
2.1 常量 21
2.1.1 常量的分类和表示 21
2.1.2 常量定义格式 23
2.2 变量及其说明 23
2.3 标准数据类型 24
2.3.1 整数类型 25
2.3.2 实数类型 25
2.3.3 双精度实数类型 25
2.3.4 字符类型 25
2.4 数据类型转换 27
2.5 运算符及表达式 28
2.5.1 算术运算符及表达式 28
2.5.2 关系运算符及表达式 29
2.5.3 逻辑运算符及表达式 30
2.5.4 自增自减运算符及表达式 31
2.5.5 赋值运算符及赋值表达式 32
2.5.6 条件运算符及条件表达式 33
2.5.7 逗号运算符及逗号表达式 33
本章小结 34
习题 35
第3章 顺序结构程序设计 39
3.1 程序算法简介 39
3.1.1 算法举例 40
3.1.2 算法的特点 40
3.1.3 算法的描述 41
3.1.4 N-S流程图表示法 42
3.2 程序的3种基本控制结构 42
3.3 C语句概述 43
3.3.1 表达式语句 44
3.3.2 函数调用语句 44
3.3.3 控制语句 44
3.3.4 复合语句 45
3.3.5 空语句 45
3.3.6 赋值语句 45
3.4 输入语句 46
3.4.1 字符输入函数和字符输入语句 46
3.4.2 格式输入函数和格式输入语句 47
3.5 输出语句 48
3.5.1 字符输出函数和字符输出语句 48
3.5.2 格式输出函数和格式输出语句 49
3.6 综合举例 51
本章小结 52
习题 53
第4章 选择结构和循环结构程序设计 56
4.1 条件语句 57
4.1.1 单分支条件语句 57
4.1.2 双分支条件语句 57
4.1.3 多分支条件语句(条件语句的嵌套) 58
4.2 switch语句 60
4.3 循环语句 61
4.3.1 while语句 62
4.3.2 do…while语句 63
4.3.3 for语句 65
4.4 循环语句的嵌套 66
4.5 间断语句与继续语句 68
4.5.1 间断语句break 68
4.5.2 继续语句continue 69
4.6 转移语句与返回语句 70
4.6.1 转移语句goto 70
4.6.2 返回语句return 71
4.7 综合举例 71
本章小结 76
习题 77
第5章 数组 81
5.1 数组的基本概念 81
5.2 一维数组 82
5.2.1 一维数组的定义 82
5.2.2 一维数组元素的引用 83
5.2.3 一维数组的初始化 83
5.2.4 一维数组程序举例 84
5.3 二维数组 87
5.3.1 二维数组的定义 87
5.3.2 二维数组元素的引用 88
5.3.3 二维数组的初始化 89
5.3.4 二维数组程序举例 91
5.4 字符数组 94
5.4.1 字符数组的定义 94
5.4.2 字符型数组的初始化 94
5.4.3 字符串和字符串结束标志 95
5.4.4 字符数组的输入和输出 96
5.4.5 字符串常用函数 99
5.4.6 字符数组应用举例 101
5.5 综合举例 103
本章小结 105
习题 106
第6章 函数 110
6.1 概述 110
6.2 函数的定义 111
6.2.1 无参函数的定义形式 111
6.2.2 有参函数的定义形式 112
6.3 函数的参数和函数的返回值 113
6.3.1 形式参数和实际参数 113
6.3.2 函数的返回值 114
6.4 函数的调用 114
6.4.1 函数调用的一般形式 114
6.4.2 函数调用的方式 114
6.4.3 对被调用函数的声明 115
6.5 函数的嵌套调用 116
6.6 函数的递归调用 119
6.7 变量的作用域与存储类别 121
6.7.1 局部变量 122
6.7.2 全局变量 123
6.7.3 局部变量的存储类别 125
6.7.4 全局变量的存储类别 127
6.8 函数的作用域和存储类别 129
6.8.1 内部函数 129
6.8.2 外部函数 129
本章小结 129
习题 130
第7章 编译预处理 133
7.1 宏定义 133
7.1.1 不带参数的宏定义 134
7.1.2 带参数的宏定义 136
7.2 文件包含 139
7.3 条件编译 141
本章小结 143
习题 144
第8章 指针 148
8.1 指针的基本概念 148
8.2 变量的指针和指向变量的指针变量 149
8.2.1 指针变量的定义 150
8.2.2 指针变量的引用 150
8.2.3 指针变量作函数参数 153
8.3 数组的指针和指向数组的指针变量 156
8.3.1 指向数组元素的指针 156
8.3.2 通过指针引用数组元素 157
8.3.3 数组名和数组指针变量作函数参数 159
8.4 指向多维数组的指针和指针变量 163
8.4.1 二维数组的地址 163
8.4.2 指向二维数组的指针变量 164
8.5 字符串的指针和指向字符串的指针变量 165
8.5.1 字符串的表示形式 165
8.5.2 使用字符串指针变量与字符数组的区别 167
8.6 函数指针变量 168
8.7 指针型函数 169
8.8 指针数组和指向指针的指针 170
8.8.1 指针数组的概念 170
8.8.2 指针数组作函数参数 171
8.8.3 指向指针的指针 172
8.9 指针数据类型和指针运算 174
8.9.1 指针的数据类型 174
8.9.2 指针的运算 175
本章小结 175
习题 176
第9章 结构体与共用体 179
9.1 结构体的概念 179
9.1.1 结构体变量的说明 180
9.1.2 结构体变量的引用 182
9.1.3 结构体变量的初始化 183
9.2 结构体数组 184
9.2.1 结构体数组的定义 184
9.2.2 结构体数组的初始化及应用 185
9.3 指向结构体类型数据的指针 186
9.3.1 指向结构体变量的指针 187
9.3.2 指向结构体数组的指针 188
9.3.3 用结构体变量和指向结构体的指针作函数参数 189
9.4 链表 191
9.4.1 链表的构成 191
9.4.2 动态地址分配及所需函数 191
9.4.3 链表的基本操作 193
9.5 枚举类型 199
9.6 用typedef定义类型 201
9.7 共用体 202
9.7.1 共用体的概念 202
9.7.2 共用体变量的引用 202
9.7.3 共用体类型数据的特点 202
本章小结 204
习题 204
第10章 位运算 208
10.1 位运算符和位运算 208
10.1.1 按位与 208
10.1.2 按位或 210
10.1.3 按位异或 210
10.1.4 按位取反 211
10.1.5 按位左移 212
10.1.6 按位右移 212
10.1.7 位运算的复合赋值运算符 214
10.2 位域 214
10.2.1 位域的定义和位域变量的说明 214
10.2.2 位域的使用 215
本章小结 216
习题 216
第11章 文件 218
11.1 文件概述 218
11.1.1 文件的分类 218
11.1.2 文件类型指针 220
11.2 文件的打开与关闭 220
11.2.1 文件的打开—fopen函数 220
11.2.2 文件的关闭—fcolse函数 222
11.3 文件的顺序读写 222
11.3.1 文件的字符输入和输出—fgetc和fputc函数 222
11.3.2 文件的字符串输入和输出—fets和fputs函数 226
11.3.3 文件的数据块输入和输出—freed和fwrite函数 228
11.3.4 文件的格式化输入和输出—fscanf和fprinf函数 230
11.4 文件的定位与随机读写 231
11.4.1 位置指针与文件定位 231
11.4.2 随机读写 232
11.5 文件检测函数 233
11.6 程序举例与分析 234
本章小结 236
习题 236
参考文献 238
附录A 关键字及对应的标准ASCII值 239
附录B 关键字及其用途 240
附录C 运算符的优先级和结合方向 241
附录D C语言的库函数 242