第1章 C语言概述 1
1.1 C语言的发展与特点 1
1.1.1 C语言的发展 1
1.1.2 C语言的特点 1
1.2 C语言的符号系统 2
1.3 C程序的基本结构 3
习题1 7
第2章 C语言数据类型 8
2.1 数据类型 8
2.1.1 数据类型种类 8
2.1.2 常量与变量 8
2.2 整型数据 10
2.2.1 整型常量 10
2.2.2 整型变量 10
2.3 实型数据 12
2.3.1 实型常量 12
2.3.2 实型变量 13
2.4 字符型数据 14
2.4.1 字符常量 14
2.4.2 字符变量 15
2.4.3 字符串常量 16
2.5 库函数的使用 16
习题2 17
第3章 C语言数据运算 18
3.1 数据运算 18
3.1.1 运算符 18
3.1.2 优先级及结合性 19
3.2 算术运算 20
3.2.1 算术运算符 20
3.2.2 算术表达式 21
3.2.3 自增自减运算符 22
3.3 混合运算与类型转换 24
3.4 赋值运算 27
3.4.1 赋值运算符 27
3.4.2 复合赋值运算符 28
3.5 关系运算 28
3.6 逻辑运算 29
3.7 逗号运算 30
习题3 31
第4章 顺序结构程序设计 32
4.1 结构化程序设计基础 32
4.2 C程序中的语句类型 33
4.3 字符输入/输出函数 36
4.3.1 字符输出函数 36
4.3.2 字符输入函数 37
4.4 格式输入/输出函数 38
4.4.1 格式输出函数 38
4.4.2 格式输入函数 42
4.5 程序举例 45
习题4 48
第5章 选择结构程序设计 50
5.1 if结构 50
5.1.1 if语句 50
5.1.2 if else语句 51
5.1.3 if语句的嵌套 53
5.2 switch结构 58
5.2.1 switch语句 58
5.2.2 switch语句中的break语句的使用 60
5.3 程序举例 64
习题5 73
第6章 循环结构程序设计 74
6.1 while语句 74
6.2 do…while语句 76
6.3 for语句 78
6.4 循环结构中的跳转语句 81
6.4.1 break语句 81
6.4.2 continue语句 82
6.5 循环的嵌套 83
6.6 程序举例 84
习题6 86
第7章 函数 87
7.1 函数的定义 87
7.1.1 函数的定义形式 87
7.1.2 函数的使用说明 88
7.2 函数参数与返回值 89
7.2.1 形式参数和实际参数 89
7.2.2 函数的返回值 92
7.3 函数的调用 92
7.3.1 函数调用的方式 92
7.3.2 对被调用函数的声明 94
7.3.3 函数的嵌套调用 97
7.3.4 函数的递归调用 98
7.4 变量的作用域 102
7.4.1 局部变量 102
7.4.2 全局变量 103
7.5 变量的存储类型 105
7.5.1 变量的动态与静态存储方式 105
7.5.2 局部变量的存储类型 106
7.5.3 全局变量的存储类型 107
7.6 内部函数与外部函数 109
习题7 109
第8章 数组 110
8.1 一维数组 110
8.1.1 一维数组的定义 110
8.1.2 一维数组的初始化 110
8.1.3 一维数组的使用 111
8.2 二维数组 113
8.2.1 二维数组的定义 114
8.2.2 二维数组的初始化 115
8.2.3 二维数组的使用 116
8.3 字符数组与字符串 118
8.3.1 字符数组及其初始化 118
8.3.2 字符串的输入 121
8.3.3 字符串的输出 122
8.3.4 二维字符数组 122
8.3.5 字符串处理函数 124
8.4 数组作为函数参数 127
8.4.1 数组元素作为函数参数 127
8.4.2 数组名作为函数的参数 128
8.5 程序举例 130
习题8 133
第9章 指针 135
9.1 指针概述 135
9.1.1 指针的概念 135
9.1.2 指针变量的定义与初始化 136
9.1.3 指针运算 138
9.1.4 多级指针 141
9.2 指针与函数 143
9.2.1 指针作为函数参数 143
9.2.2 指针函数 145
9.2.3 指向函数的指针 146
9.3 指针与数组 149
9.3.1 指向一维数组的指针 149
9.3.2 二维数组与多维数组的指针表示 152
9.4 指针与字符串 157
9.4.1 字符串的指针表示 157
9.4.2 字符串数组 159
9.5 指针数组与命令行参数 160
9.5.1 指针数组 160
9.5.2 指针数组与命令行参数 161
9.6 程序举例 163
习题9 167
第10章 编译预处理 169
10.1 宏定义#define 169
10.1.1 无参宏定义 169
10.1.2 有参宏定义 170
10.2 文件包含#include 172
10.3 条件编译 173
习题10 174
第11章 结构体、共用体与枚举类型 175
11.1 结构体类型的声明 175
11.2 结构体变量 175
11.2.1 结构体变量的定义与存储 176
11.2.2 结构体变量的引用与初始化 177
11.3 结构体数组 178
11.4 结构体指针 180
11.5 结构体嵌套 181
11.6 动态存储分配 182
11.7 链表 183
11.7.1 链表的基本概念 183
11.7.2 链表的基本操作 184
11.8 共用体 189
11.9 枚举类型 191
11.9.1 枚举类型的声明与定义 192
11.9.2 枚举类型的使用方法 193
11.1 0类型名重新定义typedef 194
习题11 195
第12章 文件操作 197
12.1 文件系统的概念 197
12.1.1 文件输入/输出的基本概念 197
12.1.2 文件的分类 198
12.2 文件类型指针 199
12.3 文件操作 200
12.3.1 建立数据文件 200
12.3.2 文件指针变量 200
12.3.3 文件的打开 201
12.3.4 文件的关闭 202
12.3.5 文件的读写 202
12.4 文件的随机读写 210
12.5 出错检测 212
习题12 213
第13章 位运算 214
13.1 位运算符和位运算 214
13.1.1 位运算符 214
13.1.2 按位与运算 214
13.1.3 按位或运算 216
13.1.4 按位异或运算 217
13.1.5 按位求反运算 219
13.1.6 左移运算 220
13.1.7 右移运算 220
13.1.8 不同长度的数据进行位运算 221
13.2 位段结构 221
13.2.1 位段的概念 221
13.2.2 位段结构的定义和位段变量的说明 221
13.2.3 位段的引用 223
13.2.4 位段的赋值 223
13.2.5 使用位段的注意事项 223
习题13 224
附录A 计算机公共基础二级考试要点 225
附录B ASCII 表 243
附录C C语言库函数 244
参考文献 249