第1章 概述 1
1.1 计算机的工作机制 1
1.1.1 硬件结构 1
1.1.2 软件系统 3
1.2 程序与程序设计 3
1.2.1 程序设计范型 4
1.2.2 程序设计语言 5
1.2.3 程序设计步骤 7
1.3 算法与算法描述 7
1.3.1 算法概念 8
1.3.2 算法描述 8
1.3.3 结构化程序设计思想 11
1.4 C语言 12
1.4.1 C语言的发展和特点 12
1.4.2 C程序的基本结构 14
1.4.3 C程序的执行过程 16
本章小结 17
习题1 17
第2章 C语言程序的数据描述及数据运算 19
2.1 C语言的基本元素 19
2.1.1 字符集 19
2.1.2 关键字 20
2.1.3 标识符 20
2.2 基本数据类型 21
2.2.1 常量和变量 21
2.2.2 整型数据 23
2.2.3 实型数据 27
2.2.4 字符型数据 28
2.3 C语言的运算符和表达式 32
2.3.1 运算符及表达式简介 32
2.3.2 算术运算符及算术表达式 33
2.3.3 自增、自减运算符及自增、自减表达式 34
2.3.4 赋值运算符及赋值表达式 35
2.3.5 逗号运算符及其表达式 39
2.4 类型转换 40
2.4.1 自动类型转换 40
2.4.2 强制类型转换 42
本章小结 43
习题2 43
第3章 顺序结构程序设计 45
3.1 C语句概述 45
3.1.1 程序的执行顺序 45
3.1.2 C语言的语句分类 46
3.2 最基本的语句—赋值语句 47
3.3 数据的输入与输出 48
3.3.1 格式化输入与输出 48
3.3.2 字符数据的输入与输出 54
3.4 顺序结构程序设计举例 57
本章小结 60
习题3 60
第4章 选择结构程序设计 61
4.1 条件判断和选择结构 61
4.2 选择结构中的运算符 62
4.2.1 关系运算符与关系表达式 62
4.2.2 逻辑运算符与逻辑表达式 64
4.2.3 条件运算符与条件表达式 66
4.3 用于选择结构的if语句 67
4.3.1 if语句的一般形式 67
4.3.2 单分支if语句 69
4.3.3 嵌套的if语句 72
4.4 用于多分支选择结构的switch语句 75
4.4.1 switch语句的一般形式 75
4.4.2 break语句 77
4.5 选择结构程序设计举例 79
本章小结 84
习题4 85
第5章 循环结构程序设计 87
5.1 循环语句 87
5.1.1 while语句 88
5.1.2 do-while语句 89
5.1.3 for语句 90
5.1.4 循环语句的比较 94
5.2 复杂的循环结构 99
5.2.1 循环嵌套的基本方式 99
5.2.2 循环嵌套举例 100
5.3 流程转移控制语句 105
5.3.1 continue语句在循环结构中的作用 105
5.3.2 break语句在循环结构中的作用 107
5.3.3 goto语句在循环结构中的作用 108
5.4 循环结构程序设计举例 110
本章小结 116
习题5 116
第6章 数组 118
6.1 一维数组 118
6.1.1 一维数组的定义 118
6.1.2 一维数组的初始化 119
6.1.3 一维数组成员的引用 119
6.1.4 一维数组的使用 120
6.2 多维数组 125
6.2.1 多维数组的定义 125
6.2.2 多维数组的初始化 126
6.2.3 多维数组成员的引用 127
6.2.4 多维数组的使用 128
6.3 字符数组 132
6.3.1 字符数组的定义 132
6.3.2 字符数组的初始化 133
6.3.3 字符数组成员的引用 134
6.3.4 使用字符数组处理字符串 135
6.3.5 字符串处理函数 138
6.3.6 字符数组的使用 141
本章小结 143
习题6 143
第7章 指针 145
7.1 指针的基本概念 145
7.1.1 地址和指针类型 145
7.1.2 指针变量的定义、初始化和引用 147
7.2 指针的使用 151
7.2.1 指针的运算 151
7.2.2 指向简单变量的指针 152
7.2.3 指向指针变量的指针 155
7.3 指针与数组 156
7.3.1 指向数组元素的指针 156
7.3.2 指针数组 168
7.3.3 数组指针 169
7.4 指针应用程序举例 171
本章小结 174
习题7 174
第8章 函数和变量的存储类型 176
8.1 函数概述 176
8.1.1 函数的概念 176
8.1.2 函数的分类 177
8.2 函数的定义、调用和声明 178
8.2.1 函数的定义 178
8.2.2 函数调用 183
8.2.3 函数的声明 186
8.3 函数中的参数 189
8.3.1 实际参数与形式参数 189
8.3.2 参数的传递方式 190
8.4 函数的嵌套调用和递归调用 192
8.4.1 函数的嵌套调用 192
8.4.2 函数的递归调用 194
8.4.3 函数应用程序设计举例 197
8.5 内部函数和外部函数 200
8.5.1 内部函数 200
8.5.2 外部函数 200
8.6 变量的作用域 202
8.6.1 局部变量 202
8.6.2 全局变量 204
8.7 变量的存储类型 206
8.7.1 动态存储和静态存储 207
8.7.2 自动变量 207
8.7.3 静态变量 208
8.7.4 寄存器变量 211
8.7.5 外部变量 212
8.7.6 存储类型小结 213
本章小结 214
习题8 216
第9章 结构体与共用体 217
9.1 结构体类型 217
9.1.1 结构体类型的定义 217
9.1.2 结构体变量的定义 218
9.1.3 结构体变量的初始化和引用 220
9.2 结构体数组 221
9.3 指向结构体的指针 223
9.3.1 指向结构体变量的指针 223
9.3.2 指向结构体数组成员的指针 224
9.4 结构体与函数 225
9.4.1 结构体作函数参数 225
9.4.2 结构体作函数返回值 226
9.5 共用体类型 228
9.5.1 共用体类型及其变量的定义 228
9.5.2 共用体变量的引用 230
9.6 枚举类型 231
9.7 typedef类型 232
9.8 程序举例 233
本章小结 237
习题9 237
第10章 程序编译预处理 239
10.1 C语言编译原理 239
10.2 文件包含命令#include 240
10.2.1 调用方式 241
10.2.2 C语言中典型的库文件 243
10.3 宏定义#define 243
10.3.1 无参宏定义 244
10.3.2 带参宏定义 248
10.3.3 典型的宏定义重要概念 252
10.4 条件编译 252
10.5 综合案例 255
本章小结 257
习题10 258
第11章 位运算 260
11.1 数字系统、位和字节 260
11.1.1 数字系统 260
11.1.2 位和字节 261
11.2 位运算符与位运算 262
11.2.1 位逻辑运算符与运算 262
11.2.2 位移位运算符与运算 265
11.2.3 位运算赋值运算符 267
11.3 位运算应用程序举例 268
11.4 位段 270
11.4.1 位段结构类型 270
11.4.2 位段结构类型变量的定义与引用 272
本章小结 273
习题11 274
第12章 文件 275
12.1 文件的基本概念 275
12.1.1 文件概述 275
12.1.2 文件的分类 275
12.1.3 缓冲文件系统 277
12.2 文件的操作流程 277
12.3 文件的打开与关闭 279
12.3.1 文件的打开 279
12.3.2 文件的关闭 281
12.4 文件的顺序读写 281
12.4.1 按字符读写文件 281
12.4.2 按字符串读写文件 283
12.4.3 按数据块读写文件 284
12.4.4 按格式读写文件 286
12.5 文件的随机读写 288
12.6 文件操作的错误检测 290
12.7 文件应用实例 291
本章小结 296
习题12 296
附录1 C语言的关键字 297
附录2 ASCII字符表 298
附录3 运算符的优先级及其结合性 300
附录4 常用的C语言库函数 301
参考文献 308