第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-Free 3.5 集成开发环境 4
1.3.2 Visual C+++集成开发环境 10
本章小结 13
习题 14
第2章 基本数据类型及运算 15
2.1 标识符 16
2.1.1 关键字 16
2.1.2 用户定义的标识符 16
2.2 常量和变量 17
2.2.1 常量 17
2.2.2 变量 22
2.3 运算符和表达式 23
2.3.1 运算符 23
2.3.2 表达式 29
2.4 标准函数和自定义函数 31
2.4.1 标准库函数 31
2.4.2 自定义函数 33
2.4.3 函数调用 33
2.5 格式输入函数和格式输出函数 34
2.5.1 格式输出函数printf 34
2.5.2 格式输入函数scanf 39
本章小结 42
习题 43
第3章 语句 45
3.1 基本语句 46
3.1.1 表达式语句 46
3.1.2 空语句 46
3.1.3 复合语句 46
3.2 控制语句 47
3.2.1 if语句 47
3.2.2 switch-case语句 53
3.3 循环语句 57
3.3.1 while循环语句 57
3.3.2 do-while循环语句 60
3.3.3 for循环语句 63
3.3.4 循环嵌套 66
3.3.5 break语句和continue语句 68
3.3.6 综合应用举例 70
本章小结 73
习题 73
第4章 数组类型 77
4.1 一维数组 78
4.1.1 一维数组变量的说明 78
4.1.2 一维数组元素的引用和一维数组变量的存储 78
4.1.3 一维数组的应用 79
4.2 字符数组和字符串 82
4.2.1 字符数组的定义 82
4.2.2 字符数组的输入/输出 82
4.2.3 与字符串处理有关的几个函数 85
4.3 二维数组和多维数组 88
4.3.1 二维数组变量的说明形式 89
4.3.2 二维数组变量的存储 89
4.3.3 二维数组元素的引用 90
4.3.4 多维数组 90
4.4 字符串数组 93
4.5 数组初始化 94
本章小结 97
习题 97
第5章 指针类型 100
5.1 指针与指针变量 100
5.2 指针运算 103
5.3 指针与数组 107
5.3.1 一维数组和指针 107
5.3.2 多维数组的地址及其元素的指针表示方法 109
5.3.3 指向一维数组的指针变量 113
5.3.4 指针与字符串 115
5.3.5 指向指针的指针 119
5.3.6 指针初始化 121
本章小结 124
习题 125
第6章 函数 128
6.1 函数 129
6.1.1 函数的定义形式 129
6.1.2 函数调用及函数的返回值 130
6.1.3 形式参数和实际参数 132
6.1.4 函数声明 136
6.2 函数参数 138
6.2.1 数组作为函数参数 138
6.2.2 字符串作函数参数 143
6.3 指针型函数 145
6.4 函数的嵌套及递归 148
6.4.1 函数的嵌套 148
6.4.2 函数的递归 150
6.5 变量的作用域与存储类型 151
6.5.1 局部变量与全局变量 152
6.5.2 变量的存储类型 154
6.6 内部函数与外部函数 159
6.6.1 内部函数 159
6.6.2 外部函数 159
6.7 动态存储分配 160
本章小结 163
习题 164
第7章 结构体、联合体与枚举 167
7.1 结构体类型与结构体类型变量 167
7.2 结构体变量的引用与初始化 171
7.3 结构体数组 173
7.4 结构体与指针 176
7.5 结构体与函数 179
7.6 结构型函数与结构指针型函数 181
7.7 用结构体类型数据处理链表 183
7.7.1 存储空间的动态分配 183
7.7.2 链表 184
7.8 联合体 191
7.9 枚举 194
本章小结 197
习题 198
第8章 编译预处理与自定义新类型名 200
8.1 编译预处理 200
8.1.1 “文件包含”指令 201
8.1.2 宏定义指令#define和#undef 203
8.1.3 宏标识符 207
8.1.4 宏终止指令#undef 208
8.1.5 条件编译指令 208
8.1.6 #ifdef、#ifndef指令 211
8.1.7 应用举例 212
8.2 使用typedef定义新类型名 215
8.2.1 定义“标准”类型名 215
8.2.2 定义“构造”类型名 216
8.2.3 定义新类型名的一般步骤 217
8.3 如何运行一个多文件的程序 218
本章小结 219
习题 220
第9章 输入/输出与文件管理 222
9.1 文件 222
9.1.1 文件、流的概念 222
9.1.2 文件类型与标准流式文件 224
9.1.3 文件的打开/关闭 226
9.1.4 文件I/O操作 228
9.1.5 文件的重定位、测试与随机读写 235
9.1.6 检错与处理 238
9.2 应用举例 239
本章小结 244
习题 244
第10章 位操作 247
10.1 位逻辑运算 247
10.1.1 按位与运算 247
10.1.2 按位求反运算 249
10.1.3 按位或运算 249
10.1.4 按位异或运算 250
10.2 移位操作 251
10.2.1 左移位操作 251
10.2.2 右移位操作 252
10.3 位操作应用举例 253
10.4 位操作赋值运算 253
10.5 位段 254
本章小结 258
习题 258
附录 260
附录A字符与ASCII码对照表 260
附录B常用C库函数 261
主要参考文献 264