第1章 C语言概述 1
1.1 C语言的发展史及特点 1
1.2 C语言的特点 2
1.3简单的C语言程序、C语言程序的结构和书写格式 3
1.3.1简单的C语言程序 3
1.3.2 C语言程序的结构 6
1.3.3 C语言程序的书写格式 6
1.4 C语言程序的开发过程及开发环境 7
1.4.1 C语言程序的开发过程 7
1.4.2 Turbo C集成开发环境及其使用 8
1.4.3 Visual C++开发环境及其使用 11
1.5算法和结构化(模块化)程序设计 16
1.5.1算法 16
1.5.2结构化(模块化)程序设计 18
1.5.3简单程序的设计 19
习题1 20
第2章 数据类型、运算符与表达式 22
2.1 C语言的数据类型 22
2.2常量、变量 24
2.2.1常量 24
2.2.2变量 27
2.2.3变量赋初值 29
2.3 C语言的运算符和表达式 29
2.3.1算术运算符和算术表达式 30
2.3.2赋值运算符和赋值表达式 32
2.3.3复合的赋值运算符和赋值表达式 32
2.3.4逗号运算符和逗号表达式 33
2.4不同类型数据之间的转换 34
2.4.1自动类型转换 35
2.4.2强制类型转换 36
习题2 36
第3章 顺序结构程序设计 39
3.1顺序结构程序的简单示例及特点 39
3.2 C语言的语句概述 40
3.2.1复合语句 40
3.2.2空语句 41
3.2.3表达式语句 41
3.2.4控制语句 42
3.2.5函数调用语句 42
3.3数据输入/输出 42
3.3.1格式输出函数——printf函数 43
3.3.2格式输入函数——scanf函数 47
3.3.3字符输出函数——putchar函数 51
3.3.4字符输入函数——getchar函数 52
3.3.5数据输入/输出的常用格式 53
3.4赋值语句 54
3.5应用举例 54
习题3 57
第4章 选择结构程序设计 59
4.1关系运算符和关系表达式 59
4.1.1关系运算符及其优先顺序 60
4.1.2关系表达式 60
4.2逻辑运算符和逻辑表达式 61
4.2.1逻辑运算符及其优先顺序 61
4.2.2逻辑表达式 61
4.3 if语句 62
4.3.1 if语句与单分支结构 62
4.3.2 if…else语句与两分支结构 63
4.3.3 else…if语句与多分支结构 64
4.3.4 if…else语句的嵌套与分支的嵌套结构 66
4.4条件表达式构成的选择结构 68
4.4.1条件运算符 68
4.4.2条件表达式与两分支结构 68
4.5 switch语句 69
4.5.1 break语句 69
4.5.2 switch语句与多分支结构 70
4.6 goto语句和标号 74
4.7应用举例 75
习题4 79
第5章 循环结构程序设计 83
5.1 while语句与用while语句构成的循环结构 83
5.1.1 while语句 83
5.1.2 while构成的循环结构 84
5.2 do…while语句与用do…while语句构成的循环结构 86
5.2.1 do…while语句 86
5.2.2 do…while构成的循环结构 86
5.3 for语句与用for语句构成的循环结构 88
5.3.1 for语句 88
5.3.2 for构成的循环结构 88
5.4 3种循环的比较和嵌套 90
5.4.1 3种循环的比较 90
5.4.2 3种循环的嵌套 91
5.5循环结构中的break语句和continue语句 93
5.5.1循环结构中的break语句 93
5.5.2 continue语句 95
5.6应用举例 97
习题5 103
第6章 数组与字符串 109
6.1一维数组 110
6.1.1一维数组的定义 110
6.1.2一维数组的初始化 111
6.1.3一维数组的引用 112
6.1.4一维数组应用举例 112
6.2二维数组 119
6.2.1二维数组的定义 119
6.2.2二维数组的初始化 120
6.2.3二维数组的引用 120
6.2.4二维数组应用举例 121
6.3多维数组 123
6.4字符数组和字符串 125
6.4.1字符数组的定义 125
6.4.2字符数组的初始化 125
6.4.3字符数组的引用 126
6.4.4字符串的输入 127
6.4.5字符串的输出 128
6.4.6字符串运算函数 129
6.4.7二维字符数组 132
6.4.8字符数组和字符串应用举例 133
习题6 135
第7章 函数 140
7.1一个示例 141
7.2函数的定义 141
7.2.1有参函数定义的一般格式 141
7.2.2无参函数定义的一般格式 142
7.3函数的返回值 143
7.3.1 return语句 143
7.3.2函数的返回值 143
7.4函数的调用 146
7.4.1函数的调用格式 146
7.4.2函数调用时的语法要求 148
7.4.3调用函数和被调函数之间的数据传递 148
7.5函数的声明 149
7.6函数的嵌套调用 150
7.7函数的递归调用 151
7.8库函数的调用 154
7.9数组作函数参数 159
7.9.1数组元素作函数实参 159
7.9.2数组名作函数参数 160
7.10函数应用举例 162
7.11局部变量和全局变量 168
7.11.1局部变量 168
7.11.2全局变量 169
7.12变量的存储属性 170
7.12.1变量的存储类型 170
7.12.2局部变量使用的存储类型 171
7.12.3全局变量使用的存储类型 175
7.13函数的存储属性 179
7.13.1内部函数 180
7.13.2外部函数 180
7.14运行一个多文件的程序 180
7.14.1用Turbo C运行 180
7.14.2用 Visual C++运行 181
习题7 182
第8章 编译预处理 186
8.1宏定义 186
8.1.1不带参数的宏定义 186
8.1.2带参数的宏定义 188
8.2文件包含 189
8.3条件编译 192
习题8 195
第9章 指针 196
9.1地址、指针的概念和指针变量 196
9.1.1地址与指针 196
9.1.2指针运算符&和 197
9.1.3指针变量的定义 197
9.1.4指针变量的赋值 198
9.1.5指针变量的使用 198
9.1.6指针运算 202
9.2指针与函数 202
9.2.1指针作函数参数 203
9.2.2指向函数的指针(函数指针) 205
9.2.3返回指针的函数(指针函数,函数的返回值是指针) 210
9.3指针与数组 213
9.3.1指针与一维数组 213
9.3.2指针与二维数组 220
9.3.3指针数组 224
9.4指针与字符串 226
9.4.1用字符指针指向一个字符串 226
9.4.2字符指针作函数参数 228
9.5指向指针的指针 229
9.6 main函数的参数 230
9.7指针与内存的动态存储分配 232
9.7.1内存动态存储分配函数 232
9.7.2内存动态存储分配函数的应用 234
习题9 235
第10章 结构体、共用体和枚举类型 240
10.1结构体和结构体变量 240
10.1.1结构体类型的定义 240
10.1.2结构体变量的定义 241
10.1.3结构体变量的初始化 243
10.1.4结构体变量的引用 244
10.1.5结构体变量应用举例 245
10.2结构体数组 246
10.2.1结构体数组的定义 246
10.2.2结构体数组的初始化 247
10.2.3结构体数组的引用 247
10.2.4结构体数组应用举例 248
10.3结构体指针 249
10.3.1指向一个结构体变量的指针 249
10.3.2指向一个结构体数组的指针 251
10.4结构体与函数 252
10.4.1结构体的成员作函数参数 252
10.4.2结构体变量作函数参数 253
10.4.3指向结构体的指针作函数参数 254
10.4.4结构体数组作函数参数 256
10.4.5函数的返回值是结构体类型 259
10.4.6函数的返回值是指向结构体变量或结构体数组元素的指针 264
10.5链表 267
10.5.1用指针和结构体构成链表 267
10.5.2链表的基本操作 268
10.6共用体 273
10.6.1共用体类型的定义 273
10.6.2共用体变量的定义 273
10.6.3共用体变量的引用 274
10.6.4共用体应用举例 275
10.7枚举 277
10.7.1枚举类型的定义 277
10.7.2枚举变量的定义 278
10.7.3枚举变量的引用 278
10.7.4枚举应用举例 280
10.8用typedef定义新类型名 281
习题10 282
第11章 位运算 284
11.1位运算简介 284
11.1.1位逻辑运算符 284
11.1.2移位运算符 287
11.2位赋值运算符 288
11.3位段 288
11.4应用举例 291
习题11 294
第12章 文件 295
12.1 C文件的概念 295
12.2文件的打开和关闭 296
12.2.1文件类型指针 296
12.2.2打开文件——fopen函数 297
12.2.3关闭文件——fclose函数 298
12.3文件的顺序读/写 299
12.3.1对文件读写一个字符——fgetc和fputc函数 299
12.3.2对文件读写一个字符串——fgets函数和fputs函数 302
12.3.3格式化方式读写文件——fscanf函数和fprintf函数 304
12.3.4用二进制方式对文件读写一个数据块——fread函数和fwrite函数 305
12.4文件的随机读写及出错检测 308
12.4.1顺序存取和随机存取 308
12.4.2使位置指针指向文件开头——rewind函数 309
12.4.3使位置指针指向文件的某个位置——fseek函数 309
12.4.4得到文件的当前位置——ftell函数 310
12.4.5出错检测函数 311
12.5应用举例 311
习题12 312
第13章 实验与指导 314
实验1C程序的运行环境和运行C程序的方法 314
实验2数据类型、运算符与表达式 315
实验3顺序结构程序设计 317
实验4顺序结构程序设计(续) 319
实验5选择结构程序设计 319
实验6选择结构程序设计(续) 321
实验7循环结构程序设计 321
实验8循环结构程序设计(续) 323
实验9选择、循环结构程序设计 323
实验10一维数组 325
实验11二维数组 325
实验12字符数组和字符串 326
实验13函数(一) 328
实验14函数(二) 328
实验15函数(三) 329
实验16指针(一) 331
实验17指针(二) 332
实验18指针(三) 333
实验19结构体与链表 333
实验20共用体与枚举 334
实验21位操作 334
实验22文件 335
附录A ASCII字符编码一览表 336
附录B C语言的关键字及其用途 338
附录C C运算符的优先级别和结合方向 340
附录D C语言库函数 342
附录E 转义字符及含义 348
附录F printf函数的附加格式说明字符(修饰符) 349
附录G scanf函数的附加格式说明字符(修饰符) 351
参考文献 352