第一章C语言概述 1
1.1 C语言的发展与特点 1
1.1.1 C语言的发展 1
1.1.2 C语言的特点 2
1.2 C语言的基本程序结构 3
1.3 C语言的基本语法单位 9
1.3.1字符集 9
1.3.2标识符 10
1.3.3关键字 10
1.3.4分隔符 11
1.4 C语言程序的编译与执行 11
1.4.1编辑 11
1.4.2编译 12
1.4.3连接 12
1.4.4执行 12
1.4.5 Turbo C 2.0的运行 12
本章习题 15
第二章 基本数据类型、运算符和表达式 17
2.1 C语言的数据类型 17
2.1.1概述 17
2.1.2数据类型 18
2.2常量 18
2.2.1数 18
2.2.2字符常量 22
2.2.3转义字符 22
2.2.4字符串常量 23
2.2.5符号常量 25
2.3变量及其数据类型 26
2.3.1变量和变量的地址 26
2.3.2基本数据类型变量 27
2.3.3变量说明 31
2.3.4变量的初始化 33
2.4运算符和表达式 34
2.4.1概述 34
2.4.2算术运算符和算术表达式 35
2.4.3赋值运算符和赋值表达式 38
2.4.4关系运算符和关系表达式 40
2.4.5逻辑运算符和逻辑表达式 42
2.4.6条件运算符 44
2.4.7其它运算符 45
2.5位运算 46
2.5.1按位取反运算符 47
2.5.2按位与运算符 47
2.5.3按位或运算符 48
2.5.4按位异或运算符 48
2.5.5左移运算符 48
2.5.6右移运算符 49
2.5.7位复合赋值运算符 49
2.6运算符的优先级和结合性 49
2.7数据类型转换 51
2.7.1隐式类型转换 51
2.7.2强制类型转换 53
2.7.3类型转换的方法 54
本章习题 54
第三章 数据的输入/输出 57
3.1流 57
3.2库函数与头文件 57
3.3字符的输入与输出 58
3.3.1字符输入函数getchar 58
3.3.2字符输出函数putchar 59
3.4格式化输出printf 59
3.4.1格式控制字符串 60
3.4.2输出类型转换符 61
3.4.3 printf中的控制标志 64
3.4.4 printf中的宽度和精度控制 65
3.4.5 printf中的转义字符 66
3.5格式化输入scanf 67
3.5.1格式控制字符串 68
3.5.2输入类型转换符 71
3.5.3字符扫描集输入 75
本章习题 77
第四章 程序控制结构与结构化程序设计 79
4.1算法及其描述 79
4.1.1算法 79
4.1.2伪码 80
4.1.3流程图 81
4.1.4 N-S流程图 82
4.2语句 82
4.2.1表达式语句 83
4.2.2复合语句 84
4.2.3空语句 84
4.3程序控制结构 85
4.4顺序结构 85
4.5分支结构 86
4.5.1 if语句 86
4.5.2 if/else语句 87
4.5.3 switch语句 94
4.6循环结构 97
4.6.1 while语句 97
4.6.2 do/while语句 98
4.6.3 for语句 100
4.6.4多重循环 102
4.6.5 break与continue语句 103
4.7结构化程序设计方法 105
4.8 goto语句和标号语句 106
本章习题 107
第五章 数组 109
5.1一维数组 109
5.1.1一维数组的定义 110
5.1.2一维数组的引用 111
5.1.3一维数组的初始化 114
5.1.4一维数组应用举例 115
5.2多维数组 120
5.2.1多维数组的定义 121
5.2.2多维数组的引用 122
5.2.3多维数组的初始化 122
5.2.4多维数组应用举例 124
5.3字符数组 127
5.3.1字符数组的定义和引用 127
5.3.2字符数组的初始化 128
5.3.3字符数组的输入/输出 130
5.3.4字符串处理函数 131
5.3.5字符数组的应用举例 136
本章习题 139
第六章 指针 143
6.1指针的基本概念 143
6.1.1什么叫指针 143
6.1.2指针的目标变量 144
6.1.3指针运算符 145
6.2指针的定义与初始化 146
6.2.1指针的定义 146
6.2.2指针的初始化 147
6.3指针的运算 149
6.3.1指针的算术运算 150
6.3.2指针的关系运算 152
6.3.3指针的赋值运算 154
6.4指针与数组 154
6.4.1一维数组的指针表示 154
6.4.2多维数组的指针表示 157
6.5字符指针与字符串 163
6.6指针数组 167
6.6.1指针数组的概念 167
6.6.2指针数组应用举例 169
6.7指向指针的指针 172
6.7.1多级指针的概念 172
6.7.2多级指针应用举例 174
6.8命令行参数 177
6.9指针应用举例 180
本章习题 183
第七章 函数 186
7.1模块化程序设计与函数 186
7.1.1模块化程序设计 186
7.1.2 C语言程序的模块化结构与函数 187
7.1.3 C语言程序中函数的使用 187
7.1.4函数的分类 189
7.2函数的定义、说明和调用 190
7.2.1函数的定义 190
7.2.2函数的说明 192
7.2.3函数的调用 194
7.3变量的存储类型及其作用域 197
7.3.1变量的存储类型及相关概念 197
7.3.2内部变量和外部变量 198
7.3.3自动存储类型变量及其作用域 200
7.3.4用extern说明的外部变量 201
7.3.5静态存储类型变量及其作用域 202
7.3.6寄存器存储类型变量及其作用域 204
7.3.7各种存储类型变量小结 205
7.4函数间的数据传递 206
7.4.1用数据的复制方式传递数据 206
7.4.2用地址的复制方式传递数据 208
7.4.3利用函数返回值传回数据 210
7.4.4利用外部变量传送数据 210
7.5数组与函数 211
7.5.1向函数传递一维数组 212
7.5.2向函数传递二维数组 213
7.6字符串与函数 214
7.7指针型函数 215
7.8递归函数和递归调用 216
7.8.1递归调用的概念 216
7.8.2递归调用过程 218
7.8.3递归调用举例 218
7.9指向函数的指针 220
7.9.1函数指针的概念 220
7.9.2函数指针的定义 220
7.9.3函数指针的应用举例 221
7.10内部函数和外部函数 223
7.10.1内部函数 223
7.10.2外部函数 224
本章习题 224
第八章 编译预处理 228
8.1宏定义 228
8.1.1不带参数的宏定义 228
8.1.2带参数的宏定义 231
8.2文件包含 232
8.3条件编译 235
本章习题 238
第九章 结构体、联合体及枚举类型 240
9.1结构体类型与结构体变量的定义 240
9.1.1结构体类型的定义 241
9.1.2结构体变量的定义 242
9.1.3结构体变量的存储形式 244
9.2结构体变量的初始化与引用 245
9.2.1结构体变量的初始化 245
9.2.2结构体变量的引用 246
9.3结构体数组 251
9.3.1结构体数组的定义 251
9.3.2结构体数组的初始化 252
9.3.3结构体数组的存储形式 252
9.3.4结构体数组元素的引用 253
9.3.5结构体数组应用举例 254
9.4指向结构体类型数据的指针 257
9.4.1结构体指针变量的定义、赋值及存储形式 257
9.4.2结构体指针变量的引用 259
9.5结构体在函数间的传递 262
9.5.1传递结构体的单个成员值 262
9.5.2传递结构体变量(或结构体数组元素) 264
9.5.3传递结构体指针或结构体数组 265
9.6结构体类型函数和结构体指针类型函数 268
9.6.1结构体类型函数 268
9.6.2结构体指针类型函数 270
9.7结构体嵌套 271
9.7.1结构体嵌套的定义 271
9.7.2嵌套结构体类型变量的引用 272
9.8链表 274
9.8.1单链表的基本概念 275
9.8.2动态存储分配的内存管理函数 276
9.8.3单链表上的基本运算 277
9.9位字段结构体 286
9.9.1位字段结构体的概念 287
9.9.2位字段结构体的定义 287
9.9.3位字段结构体变量的定义和引用 288
9.10联合体 289
9.10.1联合体类型的定义 289
9.10.2联合体变量的定义 290
9.10.3联合体变量的引用 291
9.10.4联合体的应用 293
9.11枚举类型 295
9.11.1枚举类型和枚举变量的定义 296
9.11.2枚举变量的应用 296
9.12用typedef定义已有类型的别名 298
本章习题 300
第十章 文件 303
10.1 C文件概述 303
10.1.1文件的概念 303
10.1.2文件的分类 303
10.1.3文件类型的指针 305
10.2数据文件的输入/输出 306
10.2.1文件的打开与关闭 306
10.2.2文件的字符输入/输出函数(fgetc和fputc) 308
10.2.3文件的字符串输入/输出函数(fgets和fputs) 310
10.2.4文件的格式化输入/输出函数(fscanf和fprintf) 312
10.2.5文件的数据块输入/输出函数(fread和fwrite) 313
10.2.6整数(字)输入/输出函数(getw和putw) 317
10.3文件的定位 318
10.4文件状态检测函数 321
10.5文件程序设计举例 321
本章习题 323
附录A常用ASCII码字符集 325
附录B C语言的常用标准库函数 327
参考文献 335