第1章 C语言概述 1
1.1 程序设计语言 1
1.2 C语言的发展历史 3
1.3 使用C语言进行程序开发 3
1.3.1 简单的C语言程序 4
1.3.2 程序的编辑、编译、连接与运行 4
1.3.3 使用VC++6.0软件实现程序的编辑、编译、连接与运行 6
1.4 C语言程序的组成与执行 11
1.5 C语言的特点 13
1.6 C程序的编程风格 14
1.7 综合应用例题 15
习题1 16
第2章 数据类型、常量与变量 18
2.1 数据类型 18
2.2 标识符 19
2.3 常量 20
2.3.1 整型常量 20
2.3.2 实型常量 20
2.3.3 字符型常量 20
2.3.4 字符串常量 21
2.3.5 常量的使用与符号常量 22
2.4 变量 22
2.4.1 变量定义 23
2.4.2 整型变量 23
2.4.3 实型变量 24
2.4.4 字符型变量 25
2.4.5 变量的初始化与赋值 26
2.5 综合应用例题 26
习题2 29
第3章 数据的运算与输入输出 32
3.1 运算符和表达式概述 32
3.2 算术运算符和算术表达式 32
3.2.1 算术运算符 33
3.2.2 算术表达式 35
3.3 赋值运算符和赋值表达式 35
3.3.1 赋值运算符 35
3.3.2 赋值表达式 36
3.3.3 复合的赋值运算符 37
3.4 关系运算符和关系表达式 37
3.4.1 关系运算符 37
3.4.2 关系表达式 38
3.5 逻辑运算符和逻辑表达式 38
3.5.1 逻辑运算符 38
3.5.2 逻辑表达式 39
3.6 条件运算符和条件表达式 41
3.7 逗号运算符和逗号表达式 42
3.8 位运算符和位运算表达式 43
3.8.1 按位取反运算符(~) 43
3.8.2 按位“与”、按位“或”、按位“异或”运算 43
3.8.3 移位运算 45
3.8.4 位运算符的优先级及结合方向 46
3.9 数据类型的转换 46
3.9.1 自动转换规则 46
3.9.2 强制转换 47
3.10 数据的输入输出 48
3.10.1 字符数据的输入输出 48
3.10.2 格式输出函数printf 50
3.10.3 格式输入函数scanf 53
3.11 综合应用例题 55
习题3 57
第4章 C语言的三种基本结构程序设计 61
4.1 C语句 61
4.2 顺序结构程序设计 62
4.3 选择结构程序设计 63
4.3.1 if语句 63
4.3.2 switch语句 69
4.4 循环结构程序设计 71
4.4.1 while循环语句 71
4.4.2 do…while循环语句 73
4.4.3 for循环语句 74
4.4.4 循环语句的比较 75
4.4.5 循环的嵌套 76
4.4.6 循环控制语句break和continue 76
4.5 综合应用例题 80
习题4 85
第5章 函数 91
5.1 概述 91
5.1.1 模块与函数 91
5.1.2 函数的基本概念 92
5.1.3 函数定义的一般形式 94
5.2 函数的调用 96
5.2.1 函数调用的一般形式 96
5.2.2 函数调用的方式 96
5.2.3 函数的参数 97
5.2.4 函数的返回值 98
5.2.5 对被调函数的声明 99
5.3 函数的嵌套和递归 101
5.3.1 嵌套调用 101
5.3.2 函数的递归 104
5.4 变量的存储属性 106
5.4.1 变量的作用域 106
5.4.2 变量的生存期 109
5.4.3 变量的存储类型 109
5.4.4 存储类型小结 115
5.5 编译预处理 116
5.5.1 宏定义 116
5.5.2 “文件包含”处理 121
5.6 综合应用例题 123
习题5 125
第6章 数组 130
6.1 一维数组 130
6.1.1 一维数组的定义 130
6.1.2 一维数组元素的存储形式 131
6.1.3 一维数组元素的引用 131
6.1.4 一维数组的初始化 132
6.1.5 一维数组应用举例 133
6.2 二维数组 136
6.2.1 二维数组的定义 136
6.2.2 二维数组的存储形式 137
6.2.3 二维数组元素的引用 137
6.2.4 二维数组的初始化 138
6.3 字符数组和字符串 140
6.3.1 字符数组的定义 140
6.3.2 字符串和字符串的存储方法 141
6.3.3 字符数组的初始化 142
6.3.4 字符数组的引用 143
6.3.5 字符串的输入输出 144
6.3.6 字符串处理函数 145
6.4 函数与数组 148
6.4.1 数组元素作函数实参 148
6.4.2 一维数组名作函数参数 149
6.4.3 多维数组名作函数参数 151
6.5 综合应用例题 153
习题6 159
第7章 指针 164
7.1 指针的基本概念 164
7.1.1 地址与指针 164
7.1.2 指针变量的定义 165
7.1.3 指针变量的引用 166
7.1.4 指针变量作函数参数 168
7.2 指针的运算 171
7.2.1 指针的赋值运算 172
7.2.2 指针的算术运算 173
7.2.3 指针的关系运算 173
7.3 指针与数组 174
7.3.1 指针和一维数组 174
7.3.2 指针与字符串 180
7.3.3 指针和二维数组 186
7.4 函数的指针和指向函数的指针变量 191
7.4.1 函数指针变量的定义与使用 191
7.4.2 用函数指针变量作函数参数 192
7.5 指针型函数 194
7.6 指针数组和指向指针的指针 195
7.6.1 指针数组的概念 195
7.6.2 用指针数组处理多个字符串 196
7.6.3 命令行参数 199
7.6.4 指向指针的指针 201
7.7 综合应用例题 202
习题7 205
第8章 结构体 211
8.1 结构体类型 211
8.1.1 结构体类型的定义 211
8.1.2 结构体变量的定义 212
8.1.3 结构体变量的初始化 214
8.1.4 结构体类型变量的引用 215
8.1.5 结构数组 217
8.2 指向结构体类型的指针 222
8.2.1 指向结构体变量的指针 222
8.2.2 指向结构体数组的指针 223
8.3 结构体变量作函数的参数 225
8.3.1 用结构体变量的成员作为参数 225
8.3.2 用结构体变量作为函数参数 226
8.3.3 用指向结构体变量的指针作为函数参数 227
8.4 共用体 229
8.4.1 共用体的概念 229
8.4.2 共用体变量的引用 231
8.5 用typedef定义数据类型 232
8.6 动态数据结构的创建 233
8.7 链表 234
8.7.1 链表概述 234
8.7.2 动态链表的建立 236
8.7.3 链表的遍历 238
8.7.4 链表的插入和删除 239
8.8 枚举类型 242
8.9 综合应用例题 244
习题8 252
第9章 文件系统 256
9.1 文件概述 256
9.1.1 什么是文件 256
9.1.2 C文件分类 256
9.2 文件指针 258
9.3 文件的打开与关闭 259
9.3.1 文件的打开函数fopen() 260
9.3.2 文件的关闭函数fclose() 261
9.4 文件的读写 262
9.4.1 字符文件的读写 262
9.4.2 字符串读写函数 266
9.4.3 数据块读写函数fread()和fwrite() 267
9.4.4 格式化读写函数fscanf()和fprintf() 267
9.5 文件的定位 268
9.5.1 重新返回函数rewind() 269
9.5.2 文件定位函数fseek() 270
9.6 检测文件状态函数 271
9.7 综合应用例题 271
习题9 276
附录A 常用ASCII码对照表 280
附录B C语言中的关键字 281
附录C C语言运算符的优先级与结合性 282
附录D 常用库函数 284
参考文献 291