第1章 C语言程序设计概述 1
1.1 程序和程序设计语言 1
1.1.1 程序与程序设计 1
1.1.2 程序设计语言 1
1.1.3 语言处理程序 2
1.1.4 设计程序的基本原则 4
1.2 算法 4
1.3 结构化程序设计方法 9
1.4 C语言程序的基本结构 10
习题1 13
第2章 数据类型、运算符与表达式 15
2.1 C语言的数据类型 15
2.2 常量、变量与标识符 15
2.3 整型数据 17
2.4 实型数据 20
2.5 字符型数据 22
2.6 算术运算符和算术表达式 24
2.7 赋值运算符与赋值表达式 28
2.8 逗号运算符与逗号表达式 31
2.9 求字节数运算符 31
习题2 32
第3章 顺序结构程序设计 36
3.1 C语句概述 36
3.2 赋值语句 37
3.3 数据的输入与输出 38
3.3.1 printf函数 38
3.3.2 putchar函数 42
3.3.3 scanf函数 42
3.3.4 getchar函数 45
3.4 顺序结构程序举例 45
习题3 47
第4章 选择结构程序设计 50
4.1 关系运算和逻辑运算 50
4.1.1 逻辑值及其在C语言中的表示 50
4.1.2 关系运算符与关系表达式 50
4.1.3 逻辑运算符与逻辑表达式 51
4.2 if语句 52
4.2.1 if语句的三种形式 52
4.2.2 if语句的嵌套 55
4.3 条件运算符和条件表达式 56
4.4 switch语句 57
4.4.1 switch语句的一般形式与执行过程 57
4.4.2 switch语句体中的break语句 59
4.5 选择结构程序举例 60
习题4 62
第5章 循环结构程序设计 67
5.1 语句标号、goto语句及用goto语句构成的循环 67
5.2 while语句和用while语句构成的循环 68
5.3 do-while语句用do-while语句构成的循环 70
5.4 for语句和用for语句构成的循环 71
5.5 循环结构的嵌套 74
5.6 break语句和continue语句在循环体中的作用 74
5.7 循环结构程序举例 76
习题5 82
第6章 数组 90
6.1 一维数组 90
6.1.1 一维数组的定义 90
6.1.2 一维数组元素的引用 91
6.1.3 一维数组的初始化 91
6.1.4 一维数组的定义和数组元素引用举例 92
6.2 二维数组 93
6.2.1 二维数组的定义 93
6.2.2 二维数组元素的引用 94
6.2.3 二维数组的初始化 95
6.2.4 二维数组的定义和数组元素引用举例 96
6.3 字符数组 98
6.3.1 字符数组的定义与引用 98
6.3.2 字符数组的初始化 98
6.3.3 用字符数组来存放字符串 98
6.3.4 字符数组的输入和输出 99
6.3.5 用于字符串处理的函数 100
6.3.6 字符数组应用举例 102
习题6 104
第7章 函数 116
7.1 库函数 116
7.2 函数的定义和返回值 117
7.3 函数的调用 120
7.4 函数的声明 121
7.5 调用函数和被调用函数之间的数据传递 123
7.6 函数的嵌套调用与递归调用 129
7.7 程序举例 134
习题7 139
第8章 用户标识符的作用域和存储类 155
8.1 局部变量、全局变量和存储分类 155
8.1.1 用户标识符的作用域 155
8.1.2 局部变量、全局变量和存储分类 155
8.2 局部变量及其作用域和生存期 156
8.3 全局变量及其作用域和生存期 159
8.4 函数的存储分类 163
习题8 164
第9章 编译预处理 172
9.1 宏定义 172
9.2 文件包含 176
9.3 条件编译 178
习题9 180
第10章 指针 186
10.1 指针的基本概念 186
10.2 指针变量的定义与引用 187
10.2.1 指针变量的定义 187
10.2.2 指针变量的引用 187
10.2.3 指针变量的赋值运算 188
10.2.4 多重指针 190
10.2.5 空指针和void类型指针 190
10.3 函数之间地址值的传递 191
10.4 一维数组和指针 194
10.4.1 通过指针引用数组元素 194
10.4.2 数组名或指针变量作形参 196
10.4.3 一维数组应用举例 198
10.4.4 用指向字符的指针变量处理字符串 203
10.4.5 使用指针变量处理字符串应用举例 204
10.5 多维数组和指针 206
10.5.1 二维数组和数组元素的地址 206
10.5.2 通过指向数组元素的指针引用二维数组 208
10.5.3 通过行指针引用二维数组 210
10.5.4 指针数组 212
10.6 函数和指针 217
10.7 小结 220
习题10 222
第11章 结构体、共用体和用户定义类型 228
11.1 结构体类型 228
11.1.1 结构体类型的定义 228
11.1.2 结构体类型变量的定义 229
11.1.3 结构体变量的引用 232
11.1.4 结构体变量的初始化 232
11.2 结构体数组 234
11.3 指向结构体的指针 235
11.4 结构体与函数 238
11.5 链表 241
11.5.1 静态链表 242
11.5.2 动态链表 243
11.6 共用体 253
11.6.1 共用体类型的定义 253
11.6.2 共用体类型变量的定义 253
11.6.3 共用体变量的引用 254
11.7 枚举类型 256
11.8 用typedef定义一种新类型名 258
习题11 259
第12章 位运算 265
12.1 位运算符与位运算 265
12.2 位运算举例 268
12.3 位段 270
习题12 272
第13章 文件 274
13.1 C语言文件的基本概念 274
13.2 文件指针 275
13.3 文件的打开与关闭 276
13.4 文件的读写 278
13.4.1 fputc函数和fgetc函数(putc函数和getc函数) 278
13.4.2 判文件结束函数feof 280
13.4.3 fgets函数和fputs函数 281
13.4.4 fread函数和fwrite函数 281
13.4.5 fscanf函数和fprintf函数 282
13.5 文件的定位 284
13.6 文件的出错检测 286
习题13 287
附录A C语言的关键字 292
附录B ASCII代码表 293
附录C 运算符及其优先级和结合性 295
附录D C语言的常用库函数 296