第1章 C语言与程序设计 1
1.1程序设计语言及其发展 1
1.1.1程序设计语言的发展历程 1
1.1.2程序处理方式 2
1.2程序的基本结构及其表示 3
1.3C语言概述 4
1.3.1C语言发展简史 4
1.3.2C语言的特点 5
1.3.3简单的C程序介绍 6
1.3.4C程序的上机步骤 8
习题1 12
第2章 基本类型数据及其运算 13
2.1C语言的数据类型 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字符常量 21
2.5.2字符变量 22
2.5.3字符串常量 24
2.6运算符与表达式 24
2.6.1运算符概述 24
2.6.2表达式概述 25
2.6.3算术运算符与算术表达式 25
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.1C语句 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.3if语句 48
3.3.1if语句的形式 48
3.3.2if语句的嵌套 52
3.4switch语句 54
3.5条件运算符与条件表达式 57
3.6程序举例 57
习题3 59
第4章 循环结构程序设计 60
4.1while语句 60
4.2do-while语句 62
4.3for语句 63
4.4循环嵌套 65
4.5break语句和continue语句 67
4.5.1break语句 67
4.5.2continue语句 67
4.6程序举例 68
习题4 70
第5章 数组 71
5.1一维数组 71
5.1.1一维数组的定义 71
5.1.2一维数组元素的引用 72
5.1.3一维数组的初始化 74
5.1.4一维数组程序举例 74
5.2二维数组 79
5.2.1二维数组的定义 79
5.2.2二维数组元素的引用 80
5.2.3二维数组的初始化 82
5.2.4二维数组程序举例 83
5.3字符数组 85
5.3.1字符数组的定义 85
5.3.2字符数组的初始化 86
5.3.3字符数组的输入与输出 88
5.3.4字符串处理函数 92
5.3.5字符数组应用举例 94
习题5 99
第6章 函数 101
6.1C语言函数概述 101
6.2函数的定义 102
6.2.1函数定义的一般形式 102
6.2.2函数参数与函数返回值 103
6.3函数的调用 107
6.3.1函数调用的一般形式 107
6.3.2被调用函数的声明 108
6.4函数的嵌套调用与递归调用 110
6.4.1函数的嵌套调用 110
6.4.2函数的递归调用 112
6.5用数组做函数参数 114
6.5.1用数组元素做函数参数 114
6.5.2用一维数组名做函数参数 115
6.5.3用二维数组名做函数参数 119
6.6局部变量和全局变量 120
6.6.1局部变量 120
6.6.2全局变量 121
6.7变量的存储类别 123
6.7.1动态存储方式与静态存储方式 123
6.7.2局部变量的存储类别 124
6.7.3全局变量的存储类别 127
6.8C语言预处理 129
6.8.1宏定义 129
6.8.2文件包含 132
习题6 133
第7章 指针 134
7.1地址和指针 134
7.1.1变量的地址和变量的值 134
7.1.2间接寻址 135
7.1.3指针变量的定义 136
7.2指针变量的引用 136
7.2.1指针运算符 137
7.2.2指针运算 139
7.2.3用指针变量做函数参数 140
7.3指针与数组 142
7.3.1指向一维数组元素的指针 143
7.3.2指向二维数组的指针 145
7.3.3用指向数组的指针变量做函数参数 150
7.4指针与字符串 156
7.4.1字符指针与字符数组 156
7.4.2用指向字符的指针做函数参数 160
7.5指针与函数 163
7.5.1指向函数的指针 163
7.5.2返回指针的函数 166
7.6指向指针的指针 168
7.6.1间接访问 168
7.6.2指针数组 169
7.7main函数的参数 170
习题7 172
第8章 结构体与共用体 173
8.1结构体 173
8.1.1结构体类型的定义 173
8.1.2结构体变量的定义 174
8.1.3结构体变量的引用 176
8.1.4结构体变量的赋值 177
8.1.5结构体数组 178
8.1.6结构体指针变量 181
8.1.7用结构体数据做函数参数 185
8.2共用体 186
8.2.1共用体类型的定义 186
8.2.2共用体变量的定义 187
8.2.3共用体变量的引用和赋值 188
8.3用typedef定义类型 190
8.4动态链表 191
8.4.1动态链表概述 191
8.4.2动态存储分配 192
8.4.3单链表的基本操作 193
习题8 204
第9章 文件 205
9.1文件概述 205
9.1.1文件的分类 205
9.1.2缓冲区 206
9.1.3文件指针 207
9.2文件的打开与关闭 208
9.2.1文件的打开 208
9.2.2文件的关闭 210
9.3文件的顺序读/写 210
9.3.1字符读/写函数 210
9.3.2字符串读/写函数 214
9.3.3数据块读/写函数 216
9.3.4格式化读/写函数 218
9.4文件的随机读/写 220
9.4.1文件的定位操作 220
9.4.2文件的随机读/写操作 221
9.5文件检测函数 222
习题9 224
第10章 位运算 225
10.1位运算符及其运算 225
10.1.1位运算符 225
10.1.2位运算应用举例 228
10.2位段及其应用 230
10.2.1位段 230
10.2.2位段应用举例 232
习题10 234
第11章 C语言应用 235
11.1C语言开发环境概述 235
11.2C语言在硬件方面的应用 236
11.2.1C语言直接访问硬件 236
11.2.2C语言利用中断访问计算机系统 237
11.2.3C语言通过操作系统访问计算机系统 239
11.3C语言在软件方面的应用 240
附录A 常用字符与ASCII码值对照表 248
附录B C语言关键字 253
附录C 运算符和结合性 254
附录D C库函数 256
参考文献 262