第1章 C语言概述 1
1.1 C语言简介 2
1.2 C语言的基本语法 4
1.3 C语言程序的基本结构 10
1.4 C语言程序的编辑与运行 15
本章小结 18
习题 19
第2章 编程基础 23
2.1 数据类型 24
2.2 常量 26
2.3 变量 30
2.3.1 变量的定义 30
2.3.2 变量的初始化与赋值 30
2.3.3 变量的作用域 31
2.4 运算符与表达式 32
2.4.1 算术运算 32
2.4.2 赋值运算 34
2.4.3 关系运算 36
2.4.4 逻辑运算 38
2.4.5 条件运算 40
2.4.6 字长运算 41
2.4.7 位运算 42
2.4.8 逗号运算 44
2.5 数据类型转换 45
2.5.1 自动类型转换 45
2.5.2 强制类型转换 46
2.6 格式化输入与输出函数 47
2.6.1 格式化输入函数 47
2.6.2 格式化输出函数 50
2.7 单字符输入与输出函数 53
本章小结 55
习题 55
第3章 控制结构 61
3.1 结构化程序设计简介 62
3.2 顺序结构程序的设计 67
3.3 分支结构程序的设计 68
3.3.1 if语句 68
3.3.2 switch语句 75
3.3.3 分支结构的嵌套 76
3.4 循环结构程序的设计 77
3.4.1 while语句 77
3.4.2 do…while语句 78
3.4.3 for语句 79
3.4.4 break语句 82
3.4.5 continue语句 82
3.4.6 goto语句 84
3.4.7 循环结构的嵌套 85
3.5 控制结构的综合实例 87
本章小结 93
习题 94
第4章 数组 101
4.1 数组简介 102
4.2 一维数组 102
4.2.1 一维数组的定义 102
4.2.2 一维数组的初始化 103
4.2.3 一维数组的存储形式 103
4.2.4 一维数组的应用实例 104
4.3 多维数组 107
4.3.1 多维数组的定义 107
4.3.2 多维数组的初始化 108
4.3.3 多维数组的存储形式 108
4.3.4 多维数组的应用实例 110
4.4 字符数组与字符串 113
4.4.1 字符数组的初始化 113
4.4.2 字符数组的输入与输出 113
4.4.3 字符数组的应用实例 114
4.4.4 字符串处理函数及其应用实例 116
4.5 数组的综合实例 119
本章小结 129
习题 129
第5章 函数 135
5.1 函数简介 136
5.2 函数的定义 137
5.3 函数的调用 140
5.3.1 函数的调用形式与执行过程 140
5.3.2 函数的作用域与函数声明 141
5.4 函数的数据传递 142
5.4.1 数据的传送 143
5.4.2 结果的返回 144
5.5 函数的嵌套调用 152
5.6 函数的递归调用 153
5.7 函数与变量 155
5.7.1 变量的作用域 155
5.7.2 变量的生命期 159
5.8 内部函数与外部函数 169
5.9 库函数的使用 171
5.10 函数的综合实例 176
本章小结 182
习题 182
第6章 指针 189
6.1 指针简介 190
6.2 指针的定义 192
6.3 指针的运算 193
6.3.1 指针运算符 193
6.3.2 指针的算术运算 195
6.3.3 指针的比较运算 197
6.3.4 指针的赋值运算 198
6.4 指针与数组 199
6.4.1 指向一维数组的指针 199
6.4.2 指向多维数组的指针 201
6.5 字符指针与字符串 202
6.6 指针数组 205
6.6.1 指针数组简介 205
6.6.2 指针数组的应用 206
6.6.3 main()函数参数中的指针数组 209
6.7 指针型函数 211
6.8 函数指针 212
6.8.1 函数指针简介 212
6.8.2 函数指针的应用 213
6.9 多级指针 214
6.10 动态指针 216
6.10.1 动态指针与动态内存分配 216
6.10.2 动态内存分配函数 216
6.10.3 动态指针与动态内存分配函数的使用 218
6.11 指针的综合实例 219
本章小结 224
习题 225
第7章 构造类型 233
7.1 构造类型简介 234
7.2 结构体 234
7.2.1 结构体简介 234
7.2.2 结构体的声明 234
7.2.3 结构体变量的定义 235
7.2.4 结构体成员的引用 236
7.2.5 结构体数组 238
7.2.6 结构体指针 241
7.2.7 结构体型函数 243
7.2.8 结构体指针型函数 245
7.2.9 结构体的嵌套 247
7.2.10 结构体的综合实例 248
7.3 联合体 253
7.3.1 联合体简介 253
7.3.2 联合体的声明 253
7.3.3 联合体变量的定义 254
7.3.4 联合体成员的引用 255
7.3.5 联合体的综合实例 256
7.4 枚举 257
7.4.1 枚举简介 257
7.4.2 枚举类型的声明 258
7.4.3 枚举变量的定义 258
7.4.4 枚举变量的使用 259
7.4.5 枚举的综合实例 259
7.5 位段 261
7.5.1 位段简介 261
7.5.2 位段类型的声明 261
7.5.3 位段变量的定义 262
7.5.4 位段变量的使用 263
7.5.5 位段的综合实例 264
本章小结 266
习题 266
第8章 文件操作 273
8.1 文件简介 274
8.2 文件的基本操作 275
8.2.1 文件的打开函数fopen() 275
8.2.2 文件的关闭函数fclose() 277
8.3 文件的管理操作 277
8.3.1 文件的重命名函数rename() 277
8.3.2 文件的删除函数remove() 278
8.3.3 系统命令的执行函数system() 279
8.4 文件的读写操作 281
8.4.1 文件的字符读函数fgetc() 281
8.4.2 文件的字符写函数fputc() 281
8.4.3 文件的字符串读函数fgets() 284
8.4.4 文件的字符串写函数fputs() 284
8.4.5 文件的数据块读函数fread() 286
8.4.6 文件的数据块写函数fwrite() 286
8.4.7 文件的格式化读函数fscanf() 288
8.4.8 文件的格式化写函数fprint() 288
8.5 文件的定位操作 290
8.5.1 读写指针的复位函数rewind() 290
8.5.2 读写指针的获取函数ftell() 290
8.5.3 读写指针的设置函数fseek() 290
8.5.4 文件结束的检测函数feof() 291
8.6 文件的错误处理 294
8.6.1 操作错误的检测函数ferror() 294
8.6.2 错误状态的清除函数clearerr() 294
8.7 文件操作的综合实例 295
本章小结 298
习题 298
第9章 类型定义与编译预处理 303
9.1 类型定义 304
9.2 编译预处理 305
9.2.1 宏定义 305
9.2.2 文件包含 309
9.2.3 条件编译 311
本章小结 315
习题 315
第10章 应用系统(程序)设计与实现 321
10.1 应用系统——职工管理系统 322
10.1.1 分析与设计 322
10.1.2 编码与实现 323
10.2 游戏程序——“石头—剪刀—布” 332
10.2.1 分析与设计 332
10.2.2 编码与实现 333
本章小结 341
习题 341
附录 实验指导 343
参考文献 351