第1章 概述 1
1.1 程序设计基本知识 1
1.1.1 程序与程序设计 1
1.1.2 算法及其描述 2
1.1.3 程序设计方法 9
1.2 C语言的发展与特点 12
1.2.1 C语言的发展历史 12
1.2.2 C语言的特点 13
1.3 C语言程序的基本结构 14
1.3.1 初识C语言程序 14
1.3.2 C语言程序的结构特点与书写规则 16
1.4 C语言程序的运行 17
1.4.1 C语言程序的运行步骤与调试 17
1.4.2 Visual C++6.0集成开发环境 19
本章小结 23
习题 24
第2章 基本数据类型与运算 26
2.1 C语言的数据类型 26
2.2 常量与变量 27
2.2.1 常量 27
2.2.2 变量 27
2.3 基本数据类型 30
2.3.1 整型数据 30
2.3.2 实型数据 31
2.3.3 字符型数据 33
2.4 常用数学库函数 35
2.5 基本运算与表达式 37
2.5.1 C的运算与表达式简介 37
2.5.2 算术运算 38
2.5.3 逗号运算 40
2.6 混合运算时数据类型的转换 40
2.6.1 隐式类型转换 40
2.6.2 显式类型转换 41
本章小结 42
习题 43
第3章 顺序结构程序设计 46
3.1 C的语句 46
3.1.1 简单语句 46
3.1.2 复合语句 47
3.1.3 流程控制语句 48
3.2 赋值运算与赋值语句 48
3.2.1 赋值运算 48
3.2.2 赋值语句 50
3.2.3 赋值时的数据类型转换 51
3.3 数据输入/输出 52
3.3.1 格式输入/输出 52
3.3.2 字符输入/输出 59
3.4 顺序结构程序举例 60
本章小结 63
习题 63
第4章 选择结构程序设计 68
4.1 条件的描述 68
4.1.1 关系运算 68
4.1.2 逻辑运算 69
4.2 if选择结构 71
4.2.1 单分支if选择结构 71
4.2.2 双分支if选择结构 72
4.2.3 多分支if选择结构 74
4.2.4 if选择结构的嵌套 75
4.2.5 容易混淆的等于运算符和赋值运算符 78
4.3 条件运算 78
4.4 switch多分支选择结构 79
4.5 选择结构程序举例 81
本章小结 86
习题 87
第5章 循环结构程序设计 93
5.1 while循环结构 93
5.1.1 while语句的格式 93
5.1.2 while循环的应用 94
5.2 do…while循环结构 96
5.2.1 do…while语句的格式 96
5.2.2 do…while循环的应用 97
5.3 for循环结构 98
5.3.1 for语句的格式 98
5.3.2 for循环的应用 99
5.3.3 for语句的各种变形 101
5.4 与循环有关的控制语句 103
5.4.1 break语句 103
5.4.2 continue语句 103
5.4.3 goto语句 104
5.5.3 种循环语句的比较 105
5.6 循环的嵌套 107
5.7 循环结构程序举例 109
本章小结 114
习题 115
第6章 函数与编译预处理 122
6.1 C程序的模块结构 122
6.2 函数的定义与调用 124
6.2.1 函数的定义 124
6.2.2 函数的调用 125
6.2.3 对被调用函数的声明和函数原型 126
6.3 函数的参数传递 128
6.4 函数的嵌套调用与递归调用 129
6.4.1 函数的嵌套调用 129
6.4.2 函数的递归调用 132
6.5 变量的作用域与存储类别 135
6.5.1 变量的作用域 136
6.5.2 变量的存储类别 138
6.6 内部函数和外部函数 142
6.6.1 内部函数 142
6.6.2 外部函数 142
6.7 函数应用举例 142
6.8 编译预处理 147
6.8.1 宏定义 147
6.8.2 文件包含 149
6.8.3 条件编译 150
本章小结 152
习题 154
第7章 数组 161
7.1 数组的概念 161
7.2 数组的定义 162
7.2.1 一维数组 162
7.2.2 二维数组 163
7.2.3 数组的存储结构 164
7.3 数组的赋值与输入输出 165
7.3.1 数组的赋值 165
7.3.2 数组的输入输出 165
7.4 数组的应用 166
7.4.1 一维数组应用举例 166
7.4.2 二维数组应用举例 174
7.5 字符数组与字符串 178
7.5.1 字符数组的定义和初始化 178
7.5.2 字符数组的输入和输出 180
7.5.3 字符串处理函数 183
7.5.4 字符数组应用举例 185
7.6 数组作为函数参数 188
7.6.1 数组元素作为函数参数 188
7.6.2 数组名作为函数参数 188
本章小结 192
习题 194
第8章 指针 201
8.1 指针的概念 201
8.2 指针变量的定义与运算 202
8.2.1 指针变量的定义 202
8.2.2 指针变量的运算 203
8.3 指针与数组 205
8.3.1 指针与一维数组 205
8.3.2 指针与二维数组 209
8.4 指针与字符串 212
8.5 指针与函数 215
8.5.1 指针变量作为函数参数 215
8.5.2 指向函数的指针变量 217
8.5.3 返回指针的函数 221
8.6 指针数组与指向指针的指针 222
8.6.1 指针数组 222
8.6.2 指向指针的指针 223
8.6.3 main函数的参数 224
8.7 指针与动态内存管理 225
8.7.1 动态内存管理函数 226
8.7.2 动态内存管理的应用 227
8.8 指针应用举例 229
本章小结 232
习题 234
第9章 结构体 241
9.1 结构体类型的定义 241
9.2 结构体变量 242
9.2.1 结构体变量的定义 242
9.2.2 结构体变量的使用 244
9.2.3 结构体变量的初始化 245
9.2.4 结构体变量的输入和输出 246
9.3 结构体数组 247
9.3.1 结构体数组的定义 247
9.3.2 结构体数组的初始化 247
9.3.3 结构体数组的使用 248
9.4 结构体类型的指针 249
9.4.1 指向结构体变量的指针 250
9.4.2 指向结构体数组元素的指针 251
9.5 结构体与函数 252
9.5.1 结构体变量作为函数参数 252
9.5.2 指向结构体变量的指针作为函数参数 253
9.5.3 返回结构体类型值的函数 254
9.6 链表 255
9.6.1 链表概述 255
9.6.2 链表的基本操作 256
9.7 结构体应用举例 263
本章小结 270
习题 271
第10章 共用体与枚举 277
10.1 共用体 277
10.1.1 共用体变量的定义 277
10.1.2 共用体变量的引用 278
10.1.3 共用体变量的应用 280
10.2 枚举 281
10.3 位运算与位段结构 283
10.3.1 位运算 283
10.3.2 位段结构 284
10.4 用typedef定义类型名 286
本章小结 287
习题 288
第11章 文件操作 292
11.1 文件概述 292
11.1.1 文件的概念 292
11.1.2 C语言的文件系统 293
11.1.3 文件类指针 294
11.2 文件的打开与关闭 295
11.2.1 打开文件 295
11.2.2 关闭文件 296
11.3 文件的顺序读写操作 297
11.3.1 文件的字符输入/输出函数 297
11.3.2 文件的字符串输入/输出函数 299
11.3.3 文件的格式化输入/输出函数 301
11.3.4 文件的数据块输入/输出函数 303
11.4 文件的随机读写操作 305
11.4.1 文件的定位 305
11.4.2 二进制随机文件 306
11.5 文件操作时的出错检测 308
11.6 文件应用举例 309
本章小结 313
习题 314
参考文献 318
附录A ASCII字符编码表 319
附录B C运算符的优先级与结合方向 320
附录C C语言常用的库函数 322