第1章 C语言概述 1
1.1 C语言的发展历史简介 1
1.2 C语言的特点 1
1.3 C语言源程序举例 2
1.4 C程序的编辑、编译、连接和运行 4
1.5习题 5
第2章 数据类型、运算符与表达式 6
2.1 C语言的数据类型 6
2.2常量和变量 6
2.2.1常量 6
2.2.2变量 7
2.3整型数据 7
2.3.1整型常量 7
2.3.2整型变量 8
2.3.3整型数据的输入输出 9
2.4实型数据 10
2.4.1实型常量 10
2.4.2实型变量 10
2.4.3实型数据的输入输出 10
2.5字符型数据 11
2.5.1字符型常量 11
2.5.2字符串常量 12
2.5.3字符型变量 12
2.5.4字符数据的输入输出 13
2.6算术运算符和算术表达式 14
2.6.1算术运算符 14
2.6.2算术表达式 14
2.6.3不同数据类型间的混合 15
运算 15
2.7 赋值运算符和赋值表达式 16
2.7.1赋值运算符 16
2.7.2赋值表达式 17
2.7.3赋值表达式的类型转换 17
2.8其他运算符和表达式 19
2.8.1自增、自减运算符 19
2.8.2逗号运算符和逗号表达式 20
2.8.3求字节数运算符 21
2.9习题 21
第3章 程序设计初步 23
3.1 C语句概述 23
3.1.1 C语句的种类 23
3.1.2 C程序的赋值语句 24
3.2顺序结构程序设计 25
3.3数据的输入与输出 26
3.3.1 printf函数 26
3.3.2 scanf函数 30
3.3.3 getchar、 putchar及getch函数 32
3.4程序设计举例 34
3.5习题 34
第4章 选择结构程序的设计 37
4.1关系运算符和关系表达式 37
4.1.1关系运算符及其优先次序 37
4.1.2关系表达式 37
4.2逻辑运算符和逻辑表达式 38
4.2.1逻辑运算符及其优先次序 38
4.2.2逻辑表达式 38
4.3 if语句 40
4.3.1 if语句的3种形式 40
4.3.2条件运算符 42
4.4 switch语句 44
4.5 if语句和switch语句的嵌套形式 45
4.5.1 if语句的嵌套 45
4.5.2 switch语句的嵌套 46
4.6程序设计举例 47
4.7习题 50
第5章 循环结构程序的设计 53
5.1 while语句和do-while语句构成的循环 53
5.1.1 while语句 53
5.1.2 do-while语句 54
5.2 for语句构成的循环 55
5.3嵌套循环结构的概念和实现 57
5.4 break语句和continue语句 59
5.4.1 break语句 59
5.4.2 continue语句 60
5.5 goto语句和用goto语句构成循环 61
5.6程序设计举例 61
5.7习题 64
第6章 数组 67
6.1一维数组 67
6.1.1一维数组的定义 67
6.1.2一维数组元素的引用和初始化 68
6.1.3一维数组程序设计举例 69
6.2二维数组 73
6.2.1二维数组的定义 73
6.2.2二维数组元素的引用和初始化 74
6.2.3二维数组程序设计举例 76
6.3字符数组与字符串 78
6.3.1字符数组的定义 78
6.3.2字符数组元素的引用和初始化 78
6.3.3字符串 79
6.3.4字符数组元素的输入输出 80
6.3.5处理字符串的函数 81
6.3.6字符数组程序设计举例 85
6.4习题 89
第7章 函数 92
7.1函数概述 92
7.2函数的定义 93
7.3函数的参数和函数的返回值 94
7.3.1形式参数和实际参数 94
7.3.2函数的返回值 95
7.4函数的调用 96
7.4.1函数调用的一般形式 96
7.4.2函数调用的方式 97
7.4.3函数调用的说明 97
7.5函数的嵌套和递归调用 98
7.5.1函数的嵌套调用 98
7.5.2函数的递归调用 100
7.6数组作为函数的参数 103
7.7局部变量和全局变量 105
7.7.1局部变量 105
7.7.2全局变量 105
7.8变量的存储类别 106
7.8.1静态存储变量和动态存储变量 106
7.8.2局部变量的存储 107
7.8.3全局变量的存储 109
7.9内部函数和外部函数 110
7.9.1内部函数 111
7.9.2外部函数 111
7.10程序设计举例 112
7.11习题 115
第8章 预处理命令 118
8.1宏定义 118
8.1.1不带参数的宏定义 118
8.1.2带参数的宏定义 120
8.2“文件包含”处理 121
8.3条件编译 124
8.4习题 125
第9章 指针 128
9.1指针的基本概念 128
9.1.1指针变量的定义 128
9.1.2指针变量的引用 129
9.2指针与一维数组 131
9.2.1指向一维数组的指针变量 131
9.2.2通过指针引用一维数组元素 132
9.2.3指针使用的几个细节 134
9.3指针与字符串 135
9.3.1字符串的表现形式 135
9.3.2字符型指针变量作函数参数 136
9.3.3字符指针变量与字符数组的区别 138
9.4指针与二维数组 139
9.4.1二维数组的指针 139
9.4.2行指针变量 140
9.4.3二维数组的指针作函数参数 141
9.5指针数组与多级指针的概念 142
9.5.1指针数组 142
9.5.2多级指针 144
9.6指针与函数 145
9.6.1指针变量作为函数的参数 145
9.6.2函数的指针 146
9.6.3返回指针值的函数 149
9.7命令行参数 151
9.7.1命令行参数的概念 151
9.7.2命令行参数的处理 151
9.8程序设计举例 153
9.9习题 156
第10章 结构体与其他数据类型 158
10.1结构体的概念 158
10.2结构体类型变量和数组 159
10.2.1结构体类型变量 159
10.2.2结构体类型数组 162
10.3指向结构体的指针 164
10.4使用指针处理链表 166
10.4.1内存分配和释放函数 167
10.4.2单向链表的操作 168
10.5共用体和枚举类型 173
10.5.1共用体 173
10.5.2枚举类型 176
10.6用typedef声明类型 177
10.7程序设计举例 178
10.8习题 180
第11章 位运算 182
11.1位运算符 182
11.2位运算 182
11.2.1按位取反运算 182
11.2.2左移运算 183
11.2.3右移运算 184
11.2.4按位“与”运算 185
11.2.5按位“或”运算 185
11.2.6按位“异或”运算 186
11.3位运算应用举例 187
11.4位段结构 189
11.5习题 191
第12章 文件 193
12.1文件概述 193
12.1.1文件 193
12.1.2数据文件的存储形式 193
12.1.3标准文件与非标准文件 194
12.1.4文件类型指针 194
12.2文件的打开与关闭 195
12.2.1打开文件的函数fopen 195
12.2.2关闭文件的函数fclose 197
12.3文件的定位和检测 197
12.3.1文件的顺序读写和随机读写 197
12.3.2 rewind函数和fseek函数 198
12.3.3 feof函数和ftell函数 199
12.3.4 ferror函数和clearerr函数 199
12.4文件的读写 200
12.4.1 fgetc函数和fputc函数 200
12.4.2 fread函数和fwrite函数 202
12.4.3 fscanf函数和fprintf函数 204
12.4.4 fgets函数和fputs函数 205
12.5程序设计举例 206
12.6习题 211
附录A Turbo C 2.0集成开发环境的简介 213
附录B C语言关键字 217
附录C 运算符的优先级及其结合性 217
附录D C的常用函数库 219
附录E ASCII码表 226
参考文献 230