第1部分 基础知识部分 1
第1章 C语言概述 1
1.1 C语言演变 1
1.2 C语言特点 1
1.3 C语言编程概述 3
1.4 C语言编程环境简介 7
1.4.1 MS DOS编程环境 7
1.4.2 Windows编程环境 8
1.4.3 UNIX编程环境 9
本章小结 10
习题 11
第2章 基本数据类型 12
2.1 常量和变量 13
2.2 数据类型 14
2.2.1 整型数据类型 14
2.2.2 实型数据类型 17
2.2.3 字符型数据类型 18
2.2 字符串 21
2.3 数据类型转换的规则 21
本章小结 22
习题 23
第3章 运算符和表达式 25
3.1 算术运算符和算术表达式 25
3.2 赋值运算符和赋值表达式 27
3.3 自增和自减运算 28
3.4 关系运算和逻辑运算 29
3.4.1 关系运算符 29
3.4.2 逻辑运算符 30
3.5 条件运算和逗号运算 31
3.6 位操作运算 33
3.7 其他运算符 35
3.7.1 sizeof运算符 35
3.7.2 “&”和“*”运算符 35
3.8 运算符优先级 36
本章小结 37
习题 37
第4章 顺序结构 40
4.1 三种基本结构 40
4.2 赋值语句 41
4.3 表达式语句和函数调用语句 42
4.4 复合语句和空语句 42
4.5 格式输入和输出函数 43
4.5.1 标准格式输入和输出函数 43
4.5.2 字符输入和输出函数 50
本章小结 51
习题 52
第5章 选择结构 54
5.1 if语句 54
5.1.1 基本形式 54
5.1.2 if-else形式 55
5.1.3 if-else-if形式 56
5.2 if语句的嵌套 58
5.3 switch语句 59
本章小结 63
习题 63
第6章 循环控制 65
6.1 循环结构 65
6.1.1 while循环 65
6.1.2 do-while循环 67
6.1.3 for循环 68
6.2 循环结构嵌套 71
6.3 转向语句 72
6.3.1 break语句 72
6.3.2 continue语句 74
6.3.3 goto语句 75
6.3.4 return语句 75
6.4 循环应用 76
6.4.1 递推法 76
6.4.2 迭代法 79
6.4.3 枚举法 80
6.4.4 其他应用 81
本章小结 83
习题 84
第7章 数组 86
7.1 一维数组 86
7.1.1 初始化 86
7.1.2 下标引用 88
7.2 多维数组 90
7.2.1 二维数组 90
7.2.2 多维数组 95
7.2.3 多维数组应用 95
7.3 字符数组和字符串 96
7.3.1 字符串和字符串结束标志 96
7.3.2 字符串处理函数 98
本章小结 101
习题 102
第8章 函数 104
8.1 函数的定义 105
8.2 函数的形式参数和实际参数 108
8.3 函数的返回值 112
8.4 函数的调用和传值 112
8.4.1 函数的调用 113
8.4.2 被调函数的传值 114
8.5 内部函数和外部函数 115
8.6 数组作为函数的参数 116
8.7 局部变量和全局变量 118
8.7.1 局部变量 119
8.7.2 全局变量 120
8.8 存储类型 122
8.8.1 auto存储类型 123
8.8.2 extern存储类型 124
8.8.3 register存储类型 125
8.8.4 static存储类型 126
8.9 函数的嵌套与递归 129
8.9.1 函数的嵌套调用 129
8.9.2 函数的递归调用 130
本章小结 133
习题 134
第9章 编译预处理 135
9.1 宏定义 135
9.1.1 符号常量宏定义 135
9.1.2 带参数宏定义 137
9.2 文件包含 140
9.3 条件编译 142
本章小结 144
习题 144
第10章 指针 146
10.1 指针概念 146
10.2 指针变量定义和引用 147
10.2.1 指针变量定义 147
10.2.2 指针变量赋值 148
10.2.3 指针变量运算 148
10.3 指针与数组 151
10.3.1 数组指针变量 151
10.3.2 指针与一维数组 152
10.3.3 指针与二维数组 153
10.3.4 指针数组 155
10.4 指针与函数 157
10.4.1 指针作为函数形参 157
10.4.2 指针作为函数返回值 160
10.4.3 函数指针 161
10.4.4 指针型函数 162
10.5 指针与字符串 164
10.5.1 字符串表示方法 164
10.5.2 字符串处理函数的实现 166
10.5.3 字符型指针数组 169
10.6 多重指针 171
10.6.1 指向指针的指针 171
10.6.2 命令行参数 172
本章小结 172
习题 173
第11章 结构和其他类型 175
11.1 结构概念 175
11.1.1 结构定义 175
11.1.2 结构类型变量说明 176
11.2 结构操作 177
11.2.1 结构初始化 177
11.2.2 结构分量访问 178
11.2.3 结构数组 179
11.2.4 结构指针变量 181
11.3 在函数中使用结构 183
11.4 动态结构类型 186
11.5 联合 192
11.5.1 联合定义 192
11.5.2 联合变量说明 193
11.5.3 联合变量赋值和使用 193
11.6 枚举类型 195
11.6.1 枚举类型定义 195
11.6.2 枚举类型操作 195
11.7 使用typedef 197
本章小结 198
习题 198
第12章 文件 201
12.1 C语言文件系统概述 201
12.2 文件类型指针 202
12.3 文件打开与关闭 203
12.3.1 文件打开函数 203
12.3.2 文件关闭函数 205
12.4 文件读写 205
12.4.1 字符读写函数 205
12.4.2 字符串读写函数 208
12.4.3 数据块读写函数 210
12.4.4 格式化读写函数 211
12.5 文件定位 212
12.6 出错检测函数 214
本章小结 214
习题 215
第2部分 实训部分 218
第13章 编译器 218
13.1 Turbo C编译器使用 218
13.2 UNIX编译器cc使用 228
13.3 Visual C++编译器使用 229
本章小结 232
习题 233
第14章 基本算法 234
14.1 链表 234
14.2 队列 238
14.3 栈 241
14.4 表达式求值 243
14.4.1 波兰记法 243
14.4.2 算数表达式求值 244
14.5 迷宫问题 246
本章小结 252
习题 252
第15章 Windows程序设计 253
15.1 从C语言到C++语言 253
15.2 用AppWizard生成鼠标追踪程序 256
本章小结 259
习题 259
附录 261
附录A 常用C语言标准库函数 261
附录B ASCII字符集 268
附录C 运算符的优先级和结合性 269
参考文献 271