第1章 C语言概述 1
1.1程序设计语言的发展历程 1
1.2 C语言的发展历程 3
1.3 C语言的主要特点 4
1.4 C语言程序的基本组成 5
1.5 C语言程序的书写风格 8
1.6 C语言程序的基本标识符 8
1.7 C语言程序的编译及运行 10
1.8程序设计及算法描述 11
1.8.1程序设计 11
1.8.2算法的描述 12
1.9 Turbo C的运行环境及基本操作 13
1.9.1 Turbo C的启动与退出 13
1.9.2 Turbo C主菜单命令 15
1.9.3源程序的编辑和运行过程 15
1.9.4 Turbo C环境下的键盘命令表 16
1.10 Visual C++ 6.0的运行环境及基本操作 17
1.10.1 C++与面向对象程序设计 17
1.10.2 Visual C++ 6.0集成开发环境 19
1.11程序举例 24
本章小结 25
习题 26
第2章 C语言数据类型 27
2.1数据类型简介 27
2.2常量 28
2.2.1整型常量 28
2.2.2实型常量 29
2.2.3字符常量 30
2.2.4字符串常量 31
2.2.5符号常量 32
2.3变量 33
2.3.1变量的概念 33
2.3.2变量的定义与初始化 33
2.3.3整型变量 34
2.3.4实型变量 35
2.3.5字符型变量 36
2.3.6基本数据类型描述 38
2.4程序举例 38
本章小结 39
习题 39
第3章 C语言的运算符和表达式 41
3.1 C语言运算符简介 41
3.1.1 C语言运算符的种类及功能 41
3.1.2 C语言运算符的优先级及结合性 42
3.2 C语言的运算符 44
3.2.1算术运算符 44
3.2.2自增与自减运算符 45
3.3算术表达式 47
3.3.1算术表达式的运算 47
3.3.2算术表达式的书写规则 47
3.4表达式中数据间的混合运算与类型转换 48
3.5赋值运算符及复合赋值运算符 50
3.5.1赋值运算符 50
3.5.2复合赋值运算符 51
3.6逗号运算符及逗号表达式 52
3.7程序举例 53
本章小结 54
习题 54
第4章 顺序结构程序设计 57
4.1结构化程序设计简介 57
4.2 C程序中的语句 58
4.3赋值语句 60
4.4数据的输入/输出 61
4.4.1字符输入/输出函数 62
4.4.2格式输出函数 63
4.4.3格式输入函数 68
4.5程序举例 71
本章小结 74
习题 74
第5章 选择结构程序设计 77
5.1选择结构的概念 77
5.2关系运算符和关系表达式 78
5.2.1关系运算符及其优先次序 78
5.2.2关系表达式 79
5.3逻辑运算符和逻辑表达式 80
5.3.1逻辑运算符及其优先次序 80
5.3.2逻辑表达式 80
5.3.3逻辑表达式的求值规则 81
5.4 if语句 83
5.4.1 if语句的三种形式 83
5.4.2 if语句的嵌套 89
5.5条件运算符和条件表达式 91
5.6 switch语句 93
5.7程序举例 95
本章小结 104
习题 104
第6章 循环结构程序设计 107
6.1循环结构的概念 107
6.2 while语句 108
6.3 do...while语句 111
6.4 for语句 113
6.5 break语句和continue语句 116
6.5.1 break语句 117
6.5.2 continue语句 118
6.6多重循环 121
6.7程序举例 124
6.8循环语句的比较 130
6.8.1三种循环语句的比较 130
6.8.2编写循环程序可能遇到的问题 131
本章小结 133
习题 134
第7章 数组 137
7.1数组及数组元素的概念 137
7.2一维数组的定义及引用 138
7.2.1一维数组的定义 138
7.2.2一维数组元素的引用 139
7.2.3一维数组的初始化 139
7.2.4一维数组程序举例 140
7.3二维数组的定义及引用 148
7.3.1二维数组的定义 148
7.3.2二维数组的存储结构 149
7.3.3二维数组元素的引用 149
7.3.4二维数组的初始化 150
7.3.5二维数组的程序举例 151
7.4多维数组的定义及引用 157
7.4.1多维数组的定义 157
7.4.2多维数组的存储结构 157
7.4.3多维数组元素的引用 157
7.4.4多维数组的初始化 158
7.4.5多维数组的程序举例 158
7.5字符数组的定义及引用 159
7.5.1字符数组的定义 159
7.5.2字符数组的引用 160
7.5.3字符数组的初始化 160
7.5.4字符串及字符串结束标志 162
7.5.5字符数组的输入/输出 162
7.5.6常用字符串处理函数 164
7.5.7字符数组的程序举例 169
7.6程序举例 175
本章小结 177
习题 178
第8章 函数 180
8.1模块化设计与函数 180
8.2函数的分类 181
8.3函数的定义 182
8.4函数的调用 184
8.4.1函数调用的方式 184
8.4.2函数的参数传递 185
8.5函数的返回值 186
8.6对被调函数的声明 188
8.7函数的嵌套调用 190
8.8函数的递归调用 193
8.8.1递归模型 193
8.8.2递归的执行过程 193
8.9数组作为函数的参数 196
8.9.1数组元素作函数的参数 196
8.9.2数组名作函数的参数 197
8.9.3多维数组名作函数的参数 199
8.10局部变量和全局变量 200
8.10.1局部变量 200
8.10.2全局变量 201
8.11变量的存储类别 203
8.11.1自动变量 204
8.11.2静态变量 204
8.11.3寄存器变量 205
8.11.4用extern、static声明的全局变量 206
8.11.5存储类型小结 207
8.12内部函数和外部函数 208
8.12.1内部函数 208
8.12.2外部函数 208
8.13程序举例 208
本章小结 215
习题 216
第9章 预处理功能 219
9.1预处理命令 219
9.2宏定义命令 219
9.2.1不带参数的宏定义 220
9.2.2带参数的宏定义 222
9.3文件包含 224
9.4条件编译 226
9.5程序举例 229
本章小结 230
习题 231
第10章 指针 233
10.1地址和指针的概念 233
10.2指向变量的指针变量 234
10.2.1指向变量的指针变量的定义 234
10.2.2指针运算符 235
10.2.3指针变量的引用 236
10.2.4指针变量的初始化 237
10.2.5指针变量的运算 237
10.2.6指针变量作函数的参数 241
10.3数组的指针和指向数组的指针变量 243
10.3.1指向数组元素的指针变量的定义 243
10.3.2通过指针引用数组元素 243
10.3.3数组名作为函数的参数 246
10.4指向二维数组的指针变量 250
10.4.1指向含有n个元素的二维数组的指针变量 250
10.4.2通过指向一维数组的指针变量引用二维数组的元素 252
10.5字符串的指针和指向字符串的指针变量 254
10.5.1字符串的指针 254
10.5.2指向字符串的指针变量的定义 255
10.5.3指向字符串的指针变量的初始化 255
10.6函数的指针和指向函数的指针变量 260
10.6.1指向函数的指针变量的定义 260
10.6.2用指向函数的指针变量调用函数 260
10.6.3函数的指针作函数的参数 261
10.7返回指针的函数 262
10.8指针数组 265
10.8.1指针数组的定义 265
10.8.2指针数组的初始化 266
10.8.3指针数组作指针型函数的参数 268
10.9指向指针的指针 270
10.9.1指向指针的指针变量的定义 270
10.9.2 main()函数的参数 272
10.10程序举例 274
本章小结 277
习题 279
第11章 结构体和共用体 281
11.1结构体 281
11.1.1结构体类型的定义 281
11.1.2结构体变量的说明 282
11.1.3结构体变量的引用 283
11.1.4结构体变量的赋值 283
11.1.5结构体变量的初始化 284
11.1.6结构体数组 285
11.1.7指向结构体变量的指针变量 288
11.2用结构体指针处理链表 290
11.2.1链表 290
11.2.2动态存储分配 291
11.2.3链表的基本操作 292
11.3共用体 296
11.3.1共用体类型 296
11.3.2共用体变量的定义 297
11.3.3共用体变量的引用 297
11.3.4共用体变量的赋值和使用 298
11.4枚举类型 299
11.4.1枚举类型的定义 300
11.4.2枚举变量的说明 300
11.4.3枚举类型变量的赋值和使用 301
11.4.4枚举变量的输入/输出 302
11.5 typedef定义新的类型标识符 303
11.6程序举例 305
本章小结 307
习题 308
第12章 文件 312
12.1文件的概念 312
12.1.1文件的分类 312
12.1.2文件操作过程 313
12.1.3文件缓冲区 314
12.2文件类型指针 315
12.3文件的打开与关闭 315
12.3.1文件打开函数 315
12.3.2文件关闭函数 317
12.4文件的读/写 318
12.4.1文件的写函数 318
12.4.2文件的读函数 321
12.4.3文件的读/写函数程序举例 325
12.5文件的随机读/写 327
12.6文件检测函数 329
12.7文件操作函数 330
12.8程序举例 333
本章小结 335
习题 335
第13章 位运算 338
13.1位运算符和位运算 338
13.1.1位运算符 338
13.1.2按位与运算 339
13.1.3按位或运算 340
13.1.4按位异或运算 341
13.1.5按位求反运算 343
13.1.6左移运算 344
13.1.7右移运算 345
13.1.8不同长度的数据进行位运算 345
13.1.9位运算示例 345
13.2位段结构 347
13.2.1位段的概念 347
13.2.2位段结构的定义和位段变量的说明 347
13.2.3位段的引用 348
13.2.4位段的赋值 348
13.2.5使用位段的注意事项 349
13.3程序举例 350
本章小结 352
习题 352
附录A C语言的关键字 354
附录B 基本ASCII码对照表 355
参考文献 356