第1章C语言概述 1
1.1计算机语言的发展 1
1.1.1机器语言 1
1.1.2汇编语言 1
1.1.3高级语言 2
1.2 C语言的发展及特点 2
1.2.1 C语言的发展 2
1.2.2 C语言的特点 3
1.3认识第一个C程序 3
1.4开发第一个C程序 5
1.4.1 C程序的开发过程 5
1.4.2 Visual C+++环境下运行C程序 7
1.5深入研究:调试手段与错误定位 9
本章小结 11
习题 11
第2章 数据类型、运算符和表达式 13
2.1标识符和关键字 13
2.1.1字符集 13
2.1.2标识符 14
2.1.3关键字 14
2.2数据类型 15
2.3常量与变量 17
2.3.1常量 17
2.3.2变量 21
2.4运算符与表达式 23
2.4.1算术运算符及算术表达式 23
2.4.2关系运算符及关系表达式 27
2.4.3逻辑运算符及逻辑表达式 28
2.4.4赋值运算符及赋值表达式 30
2.4.5条件运算符及条件表达式 32
2.4.6逗号运算符及逗号表达式 33
2.4.7求字节数运算符及求字节数表达式 34
2.5数据类型转换 34
2.6深入研究:整型数值的溢出问题 36
本章小结 37
习题 37
第3章控制结构 39
3.1结构程序设计 39
3.2顺序结构程序设计 39
3.2.1表达式语句 39
3.2.2函数调用语句 40
3.2.3空语句 45
3.2.4复合语句 46
3.3选择结构程序设计 46
3.3.1 if语句 46
3.3.2 switch语句 49
3.4循环结构程序设计 52
3.4.1 while语句 52
3.4.2 do-while语句 54
3.4.3 for语句 55
3.4.4循环的嵌套 57
3.5转移控制语句 59
3.5.1 break语句 59
3.5.2 continue语句 61
3.5.3 goto语句 62
3.6综合实例 63
3.7深入研究:程序优化问题 65
本章小结 67
习题 67
第4章 函数 70
4.1函数的定义 70
4.2函数的调用 72
4.2.1函数调用的一般形式 72
4.2.2函数参数的传递 76
4.2.3函数的嵌套调用 77
4.3函数的声明 78
4.4函数的返回与返回值 80
4.4.1函数的返回 80
4.4.2返回值 81
4.5函数的递归调用 82
4.6变量的作用域与生命期 85
4.6.1局部变量 85
4.6.2全局变量 86
4.7变量的存储类型 88
4.7.1自动变量 88
4.7.2静态变量 89
4.7.3寄存器变量 91
4.7.4外部变量 92
4.8综合实例 93
4.9深入研究:递归的设计与使用问题 95
本章小结 97
习题 98
第5章 数组 101
5.1为什么要使用数组 101
5.2一维数组 102
5.2.1一维数组的定义 102
5.2.2一维数组的引用 103
5.2.3一维数组的初始化 107
5.3二维数组 108
5.3.1二维数组的定义 108
5.3.2二维数组的引用 109
5.3.3二维数组的初始化 110
5.4多维数组 112
5.5字符数组 114
5.5.1字符数组的定义和引用 114
5.5.2字符数组的初始化 114
5.5.3字符数组的输入输出 115
5.5.4字符串处理函数 116
5.6数组与函数 118
5.7综合实例 120
5.8深入研究:数组的负数下标和动态数组问题 122
本章小结 124
习题 124
第6章 指针 127
6.1指针与指针变量 127
6.1.1指针的概念 127
6.1.2指针变量的提出 128
6.1.3指针变量的定义 129
6.1.4指针变量的初始化 130
6.1.5指针变量的使用 132
6.2指针与数组 135
6.2.1指针与一维数组 136
6.2.2指针与二维数组 140
6.2.3指针与字符数组 142
6.2.4指针数组 144
6.3指针与函数 145
6.3.1指针作为函数参数 145
6.3.2指针作为函数的返回值 149
6.3.3指向函数的指针 150
6.4指向指针的指针 152
6.5动态内存分配 153
6.6带参数的main()函数 155
6.7综合实例 156
6.8深入研究:多级指针问题 158
本章小结 159
习题 160
第7章 结构体、共用体和枚举 163
7.1结构体类型 163
7.1.1结构体类型的提出 163
7.1.2结构体类型的定义 163
7.2结构体类型变量 165
7.2.1结构体类型变量的定义 165
7.2.2结构体类型变量的引用 166
7.2.3结构体类型变量的初始化 167
7.3结构体类型数组 168
7.3.1结构体类型数组的定义 168
7.3.2结构体类型数组的引用 169
7.4结构体类型指针 170
7.4.1指向结构体变量的指针 170
7.4.2指向结构体数组的指针 172
7.5结构体与函数 173
7.6共用体 175
7.6.1共用体类型的提出 175
7.6.2共用体类型的定义 175
7.6.3共用体变量的定义 176
7.6.4共用体变量的引用 176
7.7枚举 178
7.7.1枚举类型的定义 178
7.7.2枚举变量的定义 179
7.7.3枚举变量的使用 180
7.8自定义数据类型 182
7.9综合实例 183
7.10深入研究:单链表的插入与删除 185
本章小结 187
习题 188
第8章 位运算 191
8.1位运算符 191
8.1.1按位与运算符 191
8.1.2按位或运算符 193
8.1.3按位异或运算符 194
8.1.4按位取反运算符 195
8.1.5按位左移运算符 196
8.1.6按位右移运算符 196
8.2位段 198
8.2.1位段的定义 198
8.2.2位段的使用 199
8.3综合实例 201
8.4深入研究:字段拼装问题 204
本章小结 205
习题 205
第9章 文件 207
9.1文件概述 207
9.2文件指针 208
9.3文件的打开和关闭 208
9.3.1文件打开函数fopen() 209
9.3.2文件关闭函数fclose() 210
9.4文件的读写 210
9.4.1字符读写函数fgetc()和fputc 210
9.4.2字符串读写函数fgets()和fputs() 212
9.4.3数据块读写函数fread()和 fwrite() 213
9.4.4格式化读写函数fscanf()和 fpintf() 215
9.4.5自定义其他类型数据的读写函数 217
9.5文件的定位 217
9.6文件的出错检测 218
9.7综合实例 219
9.8深入研究:读写效率问题 222
本章小结 223
习题 224
第10章 编译预处理 226
10.1宏定义 226
10.1.1不带参数的宏定义 226
10.1.2带参数的宏定义 228
10.1.3宏定义的嵌套 229
10.1.4取消宏定义 229
10.2文件包含 230
10.3条件编译 232
10.4其他预处理功能 233
10.5预定义的宏名 234
10.6 深入研究:头文件的重复引用问题 234
本章小结 235
习题 235
附录A预备知识 237
附录A.1计算机硬件系统的基本工作原理 237
附录A.2进制与进制转换 239
附录A.3规范化编程 243
附录B ASCII码字符集 245
附录C运算符的优先级与结合性 248
附录D C库函数 249
参考文献 254