第1章 C语言简介 1
1.1 C语言的发展史和特点 1
1.1.1 C语言的发展史 1
1.1.2 C语言的特点 2
1.2 C语言程序的基本结构 2
1.3 C语言程序的编程环境及上机步骤 4
1.3.1 C-Free3.5集成开发环境 5
1.3.2 Visual C++集成开发环境 11
本章小结 15
习题 15
第2章 基本数据类型及运算 16
2.1 标识符 17
2.1.1 关键字 17
2.1.2 用户定义的标识符 17
2.2 常量和变量 18
2.2.1 常量 18
2.2.2 变量 23
2.3 运算符和表达式 24
2.3.1 运算符 24
2.3.2 表达式 30
2.4 标准函数和自定义函数 32
2.4.1 标准函数(库函数) 32
2.4.2 自定义函数 34
2.4.3 函数调用 34
2.5 格式输入函数和格式输出函数 34
2.5.1 格式输出函数printf 34
2.5.2 格式输入函数scanf 41
本章小结 44
习题 44
第3章 语句 47
3.1 基本语句 48
3.1.1 表达式语句 48
3.1.2 空语句 48
3.1.3 复合语句 48
3.2 控制语句 49
3.2.1 if语句 49
3.2.2 switch-case语句 55
3.2.3 标号语句与无条件转移语句goto 59
3.3 循环语句 61
3.3.1 while循环语句 61
3.3.2 do-while循环语句 64
3.3.3 for循环语句 67
3.3.4 循环嵌套 70
3.3.5 break语句和continue语句 72
3.3.6 综合应用举例 75
本章小结 77
习题 78
第4章 数组类型 82
4.1 一维数组 83
4.1.1 一维数组变量的说明 83
4.1.2 一维数组元素的引用和一维数组变量的存储 83
4.1.3 一维数组的应用 84
4.2 字符数组和字符串 87
4.2.1 字符数组的定义 87
4.2.2 字符数组的输入输出 87
4.2.3 与字符串处理有关的几个函数 90
4.3 二维数组和多维数组 93
4.3.1 二维数组变量的说明形式 94
4.3.2 二维数组变量的存储 94
4.3.3 二维数组元素的引用 95
4.3.4 多维数组 95
4.4 字符串数组 98
4.5 数组初始化 99
本章小结 102
习题 102
第5章 指针类型 106
5.1 指针与指针变量 106
5.2 指针运算 109
5.3 指针与数组 112
5.3.1 一维数组和指针 113
5.3.2 多维数组的地址及其元素的指针表示方法 115
5.3.3 指向一维数组的指针变量 119
5.3.4 指针与字符串 121
5.3.5 指向指针的指针 125
5.3.6 指针初始化 127
本章小结 130
习题 131
第6章 函数 134
6.1 函数 135
6.1.1 函数的定义形式 135
6.1.2 函数调用及函数的返回值 136
6.1.3 形式参数和实际参数 138
6.1.4 函数声明 142
6.2 函数参数 145
6.2.1 数组作为函数参数 145
6.2.2 字符串作函数参数 150
6.3 函数指针(指向函数的指针) 151
6.4 指针型函数(返回指针值的函数) 156
6.5 函数的嵌套及递归 160
6.5.1 函数的嵌套 160
6.5.2 函数的递归 162
6.6 命令行参数 163
6.7 变量的作用域与存储类型 165
6.7.1 局部变量与全局变量&i 65
6.7.2 变量的存储类型 168
6.8 内部函数与外部函数 173
6.8.1 内部函数 173
6.8.2 外部函数 173
6.9 动态存储分配 174
6.10 C语言库函数简介 177
6.10.1 库函数与函数库 177
6.10.2 头文件(*.h) 178
6.10.3 程序连接 178
本章小结 178
习题 179
第7章 结构体、联合体与枚举 182
7.1 结构体类型与结构体类型变量 182
7.2 结构体变量的引用与初始化 186
7.3 结构体数组 188
7.4 结构体与指针 191
7.5 结构体与函数 194
7.6 结构型函数与结构指针型函数 196
7.7 用结构体类型数据处理链表 197
7.7.1 存储空间的动态分配 198
7.7.2 链表 199
7.8 联合体 206
7.9 枚举 209
本章小结 212
习题 213
第8章 编译预处理与自定义新类型名 215
8.1 编译预处理 215
8.1.1 “文件包含”指令 216
8.1.2 宏定义指令#define和#undef 218
8.1.3 宏标识符 222
8.1.4 宏终止指令#undef 223
8.1.5 条件编译指令 223
8.1.6 #ifdef、#ifndef指令 226
8.1.7 应用举例 227
8.2 使用typedef定义新类型名 230
8.2.1 定义“标准”类型名 230
8.2.2 定义“构造”类型名 231
8.2.3 定义新类型名的一般步骤 232
8.3 如何运行一个多文件的程序 233
本章小结 234
习题 235
第9章 输入输出与文件管理 237
9.1 文件 237
9.1.1 文件、流的概念 238
9.1.2 文件类型与标准流式文件 239
9.1.3 文件的打开/关闭 240
9.1.4 文件I/O操作 243
9.1.5 文件的重定位、测试与随机读写 250
9.1.6 检错与处理 252
9.2 应用举例 254
本章小结 259
习题 259
第10章 位操作 262
10.1 位逻辑运算 262
10.2 移位操作 266
10.3 位操作应用举例 267
10.4 位操作赋值运算 268
10.5 位段 269
本章小结 273
习题 273
附录Ⅰ 字符与ASCII码对照表 274
附录Ⅱ 常用C库函数 275
参考文献 278