第1章 C语言概述 1
1.1 C语言的发展历史简介 1
1.2 C语言的特点 1
1.3 C语言源程序举例 2
1.4 C程序的编辑、编译、连接和运行 4
1.5 习题 5
第2章 数据类型、运算符与表达式 6
2.1 C语言的数据类型 6
2.2 常量和变量 6
2.2.1 常量 6
2.2.2 变量 7
2.3 整型数据 7
2.3.1 整型常量 7
2.3.2 整型变量 7
2.3.3 整型数据的输入输出 8
2.4 实型数据 9
2.4.1 实型常量 9
2.4.2 实型变量 10
2.4.3 实型数据的输入输出 10
2.5 字符型数据 11
2.5.1 字符型常量 11
2.5.2 字符串常量 12
2.5.3 字符型变量 12
2.5.4 字符数据的输入输出 12
2.6 算术运算符和算术表达式 13
2.6.1 算术运算符 13
2.6.2 算术表达式 14
2.6.3 不同数据类型间的混合运算 15
2.7 赋值运算符和赋值表达式 16
2.7.1 赋值运算符 16
2.7.2 赋值表达式 16
2.7.3 赋值表达式的类型转换 17
2.8 其他运算符和表达式 18
2.8.1 自增、自减运算符 18
2.8.2 逗号运算符和逗号表达式 19
2.8.3 求字节数运算符 20
2.9 习题 21
第3章 程序设计初步 23
3.1 C语句概述 23
3.1.1 C语句的种类 23
3.1.2 C程序的赋值语句 24
3.2 顺序结构程序设计 25
3.3 数据的输入与输出 26
3.3.1 printf函数 26
3.3.2 scanf函数 30
3.3.3 getchar、putchar及getch函数 32
3.4 程序设计举例 34
3.5 习题 35
第4章 选择结构程序的设计 37
4.1 关系运算符和关系表达式 37
4.1.1 关系运算符及其优先次序 37
4.1.2 关系表达式 37
4.2 逻辑运算符和逻辑表达式 38
4.2.1 逻辑运算符及其优先次序 38
4.2.2 逻辑表达式 38
4.3 if语句 40
4.3.1 if语句的三种形式 40
4.3.2 条件运算符 42
4.4 switch语句 44
4.5 if语句和switch语句的嵌套形式 45
4.5.1 if语句的嵌套 45
4.5.2 switch语句的嵌套 46
4.6 程序设计举例 47
4.7 习题 50
第5章 循环结构程序的设计 52
5.1 while语句和do-while语句构成的循环 52
5.1.1 while语句 52
5.1.2 do-while语句 53
5.2 for语句构成的循环 54
5.3 嵌套循环结构的概念和实现 57
5.4 break语句和continue语句 58
5.4.1 break语句 58
5.4.2 continue语句 59
5.5 goto语句和用goto语句构成循环 60
5.6 程序设计举例 61
5.7 习题 63
第6章 数组 66
6.1 一维数组 66
6.1.1 一维数组的定义 66
6.1.2 一维数组元素的引用和初始化 67
6.1.3 一维数组程序设计举例 68
6.2 二维数组 72
6.2.1 二维数组的定义 72
6.2.2 二维数组元素的引用和初始化 73
6.2.3 二维数组程序设计举例 75
6.3 字符数组与字符串 76
6.3.1 字符数组的定义 76
6.3.2 字符数组的引用和初始化 77
6.3.3 字符串 77
6.3.4 字符数组的输入输出 78
6.3.5 处理字符串的函数 80
6.3.6 字符数组程序设计举例 83
6.4 习题 87
第7章 函数 90
7.1 函数概述 90
7.2 函数的定义 91
7.3 函数的参数和函数的返回值 92
7.3.1 形式参数和实际参数 92
7.3.2 函数的返回值 93
7.4 函数的调用 94
7.4.1 函数调用的一般形式 94
7.4.2 函数调用的方式 95
7.4.3 函数调用的说明 95
7.5 函数的嵌套和递归调用 96
7.5.1 函数的嵌套调用 96
7.5.2 函数的递归调用 98
7.6 数组作为函数的参数 101
7.7 局部变量和全局变量 103
7.7.1 局部变量 103
7.7.2 全局变量 103
7.8 变量的存储类别 104
7.8.1 变量的存储类别 104
7.8.2 内部变量的存储 105
7.8.3 外部变量的存储 107
7.9 内部函数和外部函数 108
7.9.1 内部函数 108
7.9.2 外部函数 109
7.10 程序设计举例 110
7.11 习题 113
第8章 预处理命令 116
8.1 宏定义 116
8.1.1 不带参数的宏定义 116
8.1.2 带参数的宏定义 118
8.2 “文件包含”处理 119
8.3 条件编译 121
8.4 习题 123
第9章 指针 126
9.1 指针的基本概念 126
9.1.1 指针变量的定义 126
9.1.2 指针变量的引用 127
9.2 指针与一维数组 129
9.2.1 指向数组元素的指针 129
9.2.2 通过指针引用数组元素 130
9.2.3 指针使用的几个细节 132
9.3 指针与字符串 133
9.3.1 字符串的表现形式 133
9.3.2 字符指针作函数参数 134
9.3.3 字符指针变量与字符数组的区别 136
9.4 指针与二维数组 137
9.4.1 二维数组的指针 137
9.4.2 行指针变量 138
9.4.3 二维数组的指针作函数参数 139
9.5 指针数组与多级指针的概念 140
9.5.1 指针数组 140
9.5.2 多级指针 142
9.6 指针与函数 143
9.6.1 指针变量作为函数的参数 144
9.6.2 函数的指针 145
9.6.3 返回指针值的函数 148
9.7 命令行参数 149
9.7.1 命令行参数的概念 149
9.7.2 命令行参数的处理 149
9.8 程序设计举例 151
9.9 习题 154
第10章 结构体与其他数据类型 156
10.1 结构体的概念 156
10.2 结构体类型变量和数组 157
10.2.1 结构体类型变量 157
10.2.2 结构体类型数组 160
10.3 指向结构体的指针 162
10.4 使用指针处理链表 164
10.4.1 内存分配和释放函数 165
10.4.2 单向链表的操作 167
10.5 共用体和枚举类型 171
10.5.1 共用体 171
10.5.2 枚举类型 174
10.6 用typedef声明类型 176
10.7 程序设计举例 177
10.8 习题 179
第11章 位运算 181
11.1 位运算符 181
11.2 位运算 181
11.2.1 按位取反运算 181
11.2.2 左移运算 182
11.2.3 右移运算 183
11.2.4 按位与运算 184
11.2.5 按位或运算 184
11.2.6 按位异或运算 185
11.3 位运算应用举例 186
11.4 位段结构 188
11.5 习题 189
第12章 文件 192
12.1 文件概述 192
12.1.1 文件 192
12.1.2 数据文件的存储形式 192
12.1.3 标准文件与非标准文件 193
12.1.4 文件类型指针 194
12.2 文件的打开与关闭 194
12.2.1 打开文件的函数fopen 194
12.2.2 关闭文件的函数fclose 196
12.3 文件的定位和检测 196
12.3.1 文件的顺序读写和随机读写 196
12.3.2 rewind函数和fseek函数 197
12.3.3 feof函数和ftell函数 198
12.3.4 ferror函数和clearerr函数 198
12.4 文件的读写 199
12.4.1 fgetc函数和fputc函数 199
12.4.2 fread函数和fwrite函数 201
12.4.3 fscanf函数和fbrintf函数 203
12.4.4 fgets函数和fputs函数 204
12.5 程序设计举例 205
12.6 习题 210
附录A Turbo C 2.0集成开发环境的简介 212
附录B C语言关键字 215
附录C 运算符的优先级及其结合性 216
附录D C的常用函数库 218
附录E ASCII码表 225
参考文献 229