第1章 C语言与程序设计 1
1.1 程序设计语言及其发展 1
1.1.1 程序设计语言的发展历程 1
1.1.2 程序处理方式 2
1.2 程序的基本结构及其表示 3
1.3 C语言概述 4
1.3.1 C语言发展简史 4
1.3.2 C语言的特点 5
1.3.3 简单的C程序介绍 6
1.3.4 C程序的上机步骤 8
习题1 12
第2章 基本类型数据及其运算 13
2.1 C语言的数据类型 13
2.2 常量与变量 14
2.2.1 标识符 14
2.2.2 常量 15
2.2.3 变量 16
2.3 整型数据 17
2.3.1 整型常量 17
2.3.2 整型变量 18
2.4 实型数据 20
2.4.1 实型常量 20
2.4.2 实型变量 20
2.5 字符型数据 21
2.5.1 字符常量 22
2.5.2 字符变量 22
2.5.3 字符串常量 24
2.6 运算符与表达式 24
2.6.1 运算符概述 25
2.6.2 表达式概述 25
2.6.3 算术运算符与算术表达式 26
2.6.4 赋值运算符与赋值表达式 27
2.6.5 自增、自减运算符 30
2.6.6 逗号运算符与逗号表达式 31
2.7 数据的类型转换 32
2.8 数据的输入与输出 32
2.8.1 格式化输出函数printf 33
2.8.2 格式化输入函数scanf 37
2.8.3 字符输出函数putchar 41
2.8.4 字符输入函数getchar 41
2.9 简单程序设计——顺序结构程序设计 41
2.9.1 C语句 42
2.9.2 顺序结构程序举例 42
习题2 43
第3章 选择结构程序设计 45
3.1 关系运算符与关系表达式 45
3.1.1 关系运算符 45
3.1.2 关系表达式 46
3.2 逻辑运算符与逻辑表达式 46
3.2.1 逻辑运算符 46
3.2.2 逻辑表达式 47
3.3 if语句 48
3.3.1 if语句的形式 48
3.3.2 if语句的嵌套 53
3.4 switch语句 54
3.5 条件运算符与条件表达式 57
3.6 程序举例 58
习题3 59
第4章 循环结构程序设计 60
4.1 while语句 60
4.2 do-while语句 62
4.3 for语句 63
4.4 循环嵌套 65
4.5 break语句和continue语句 67
4.5.1 break语句 67
4.5.2 continue语句 67
4.6 程序举例 68
习题4 70
第5章 数组 72
5.1 一维数组 72
5.1.1 一维数组的定义 72
5.1.2 一维数组元素的引用 73
5.1.3 一维数组的初始化 75
5.1.4 一维数组程序举例 75
5.2 二维数组 80
5.2.1 二维数组的定义 80
5.2.2 二维数组元素的引用 81
5.2.3 二维数组的初始化 84
5.2.4 二维数组程序举例 85
5.3 字符数组 88
5.3.1 字符数组的定义 88
5.3.2 字符数组的初始化 89
5.3.3 字符数组的输入与输出 90
5.3.4 字符串处理函数 94
5.3.5 字符数组应用举例 97
习题5 102
第6章 函数 104
6.1 C语言函数概述 104
6.2 函数的定义 105
6.2.1 函数定义的一般形式 105
6.2.2 函数参数与函数返回值 106
6.3 函数的调用 110
6.3.1 函数调用的一般形式 110
6.3.2 被调用函数的声明 111
6.4 函数的嵌套调用与递归调用 113
6.4.1 函数的嵌套调用 113
6.4.2 函数的递归调用 115
6.5 用数组做函数参数 117
6.5.1 用数组元素做函数参数 117
6.5.2 用一维数组名做函数参数 118
6.5.3 用二维数组名做函数参数 123
6.6 局部变量和全局变量 124
6.6.1 局部变量 124
6.6.2 全局变量 125
6.7 变量的存储类别 127
6.7.1 动态存储方式与静态存储方式 127
6.7.2 局部变量的存储类别 128
6.7.3 全局变量的存储类别 131
6.8 C语言预处理 133
6.8.1 宏定义 133
6.8.2 文件包含 136
习题6 137
第7章 指针 138
7.1 地址和指针 138
7.1.1 变量的地址和变量的值 138
7.1.2 变量的访问方式 139
7.2 指针变量的定义与引用 140
7.2.1 指针变量的类型 140
7.2.2 指向变量的指针变量的定义 140
7.2.3 指针变量的引用 141
7.2.4 指针运算符 141
7.2.5 指针运算 144
7.2.6 用指针变量做函数参数 145
7.3 指针与数组 147
7.3.1 指针与一维数组 147
7.3.2 指针与二维数组 150
7.3.3 用指向数组的指针变量做函数参数 156
7.4 指针与字符串 163
7.4.1 字符指针与字符数组 163
7.4.2 用指向字符的指针做函数参数 166
7.5 指针与函数 169
7.5.1 指向函数的指针 169
7.5.2 返回指针的函数 173
7.6 指向指针的指针 174
7.6.1 间接访问 174
7.6.2 指针数组 175
7.7 main函数的参数 177
习题7 178
第8章 结构体与共用体 180
8.1 结构体 180
8.1.1 结构体类型的定义 180
8.1.2 结构体变量的定义 181
8.1.3 结构体变量的引用 183
8.1.4 结构体变量的赋值 184
8.1.5 结构体数组 185
8.1.6 结构体指针变量 188
8.1.7 用结构体数据做函数参数 192
8.2 共用体 193
8.2.1 共用体类型的定义 193
8.2.2 共用体变量的定义 194
8.2.3 共用体变量的引用和赋值 195
8.3 用typedef定义类型 197
8.4 动态链表 198
8.4.1 动态链表概述 199
8.4.2 动态存储分配 199
8.4.3 单链表的基本操作 200
习题8 211
第9章 文件 213
9.1 文件概述 213
9.1.1 文件的分类 213
9.1.2 缓冲区 214
9.1.3 文件指针 215
9.2 文件的打开与关闭 216
9.2.1 文件的打开 216
9.2.2 文件的关闭 218
9.3 文件的顺序读/写 218
9.3.1 字符读/写函数 218
9.3.2 字符串读/写函数 222
9.3.3 数据块读/写函数 224
9.3.4 格式化读/写函数 226
9.4 文件的随机读/写 228
9.4.1 文件的定位操作 228
9.4.2 文件的随机读/写操作 229
9.5 文件检测函数 230
习题9 232
第10章 位运算 233
10.1 位运算符及其运算 233
10.1.1 位运算符 233
10.1.2 位运算应用举例 236
10.2 位段及其应用 239
10.2.1 位段 239
10.2.2 位段应用举例 241
习题10 242
第11章 C语言应用 243
11.1 C语言开发环境概述 243
11.2 C语言在硬件方面的应用 244
11.2.1 C语言直接访问硬件 244
11.2.2 C语言利用中断访问计算机系统 245
11.2.3 C语言通过操作系统访问计算机系统 247
11.3 C语言在软件方面的应用 248
附录A 常用字符与ASCⅡ码值对照表 256
附录B C语言关键字 261
附录C 运算符和结合性 262
附录D C库函数 264
参考文献 270