第1章 C语言概述 1
1.1 计算机语言的发展 1
1.2 C语言的发展及特点 2
1.2.1 C语言的发展 2
1.2.2 C语言的特点 3
1.3 C语言的组成要素 4
1.4 C程序的基本构成 5
1.5 C程序的运行机制 6
1.6 C语言的开发环境 6
1.6.1 Turbo C 2.0简介 6
1.6.2 Turbo C 2.0集成开发环境 7
1.6.3 Turbo C 2.0的配置文件 13
1.6.4 Turbo C 2.0编写程序的基本过程 13
本章小结 13
习题1 14
第2章 数据类型、运算符和表达式 15
2.1 数据类型 15
2.2 常量与变量 17
2.2.1 常量 17
2.2.2 变量 21
2.3 运算符与表达式 26
2.3.1 算术运算符及算术表达式 26
2.3.2 关系运算符及关系表达式 29
2.3.3 逻辑运算符及逻辑表达式 30
2.3.4 赋值运算符及赋值表达式 32
2.3.5 增量运算符 34
2.3.6 条件运算符及条件表达式 35
2.3.7 逗号运算符及逗号表达式 36
2.3.8 求字节数运算符及求字节数表达式 36
2.3.9 强制类型转换运算符及表达式 37
本章小结 38
习题2 38
第3章 控制结构 41
3.1 概述 41
3.2 顺序结构程序设计 43
3.2.1 赋值语句 43
3.2.2 字符输入输出函数 43
3.2.3 格式输入输出函数 45
3.2.4 程序举例 48
3.3 选择结构程序设计 49
3.3.1 if语句 49
3.3.2 switch语句 53
3.3.3 程序举例 55
3.4 循环结构程序设计 56
3.4.1 while语句 56
3.4.2 do-while语句 58
3.4.3 for语句 58
3.4.4 循环的嵌套 61
3.5 break与continue语句 63
3.6 综合实例 65
本章小结 67
习题3 67
第4章 数组 69
4.1 概述 69
4.2 一维数组 69
4.2.1 一维数组的定义 69
4.2.2 一维数组的初始化 70
4.2.3 一维数组的引用 71
4.2.4 一维数组程序举例 72
4.3 二维数组 75
4.3.1 二维数组的定义 75
4.3.2 二维数组的初始化 76
4.3.3 二维数组的引用 77
4.3.4 二维数组程序举例 78
4.4 多维数组 80
4.5 字符数组 82
4.5.1 字符数组的定义和引用 83
4.5.2 字符数组的初始化 83
4.5.3 字符数组的输入输出 84
4.5.4 字符串处理函数 85
4.6 综合实例 87
本章小结 89
习题4 89
第5章 函数 92
5.1 函数的定义 92
5.2 函数的调用 93
5.2.1 函数调用的一般形式 93
5.2.2 函数参数的传递 95
5.3 函数的声明 96
5.4 函数的返回 98
5.4.1 函数的返回 98
5.4.2 返回值 99
5.5 函数的嵌套与递归 100
5.5.1 函数的嵌套 100
5.5.2 函数的递归 101
5.6 变量的作用域与存储类型 102
5.6.1 局部变量 103
5.6.2 全局变量 105
5.6.3 静态变量 106
5.6.4 寄存器变量 107
5.6.5 外部变量 107
5.6.6 作用域与存储类型小结 109
本章小结 109
习题5 110
第6章 指针 112
6.1 指针变量 112
6.1.1 指针变量的提出 112
6.1.2 指针变量的定义 113
6.1.3 指针变量的初始化 113
6.1.4 指针变量的引用 113
6.1.5 指针作函数参数 117
6.2 指针与数组 120
6.2.1 指针与一维数组 120
6.2.2 指针与二维数组 122
6.2.3 指针与字符串 125
6.2.4 指针数组 126
6.2.5 指向数组元素的指针作为函数参数 127
6.3 指针与函数 129
6.3.1 返回指针的函数 129
6.3.2 指向函数的指针 130
6.4 指向指针的指针 132
6.5 动态内存分配 133
6.6 main()函数和命令行参数 134
6.7 综合实例 136
本章小结 138
习题6 138
第7章 结构体、共用体和枚举 140
7.1 结构体类型的定义 140
7.2 结构体类型变量的定义和引用 141
7.2.1 结构体类型变量的定义 141
7.2.2 结构体类型变量的初始化 143
7.2.3 结构体类型变量的引用 144
7.3 包含结构体的结构体 145
7.4 结构体类型数组的定义和引用 146
7.5 结构体与指针 148
7.5.1 指向结构体类型变量的指针 148
7.5.2 指向结构体类型数组的指针 150
7.6 共用体 151
7.6.1 共用体的定义 151
7.6.2 共用体变量的引用 152
7.6.3 共用体类型数据的特点 155
7.7 枚举类型 155
7.7.1 枚举类型的定义 155
7.7.2 枚举类型变量的定义 156
7.8 自定义数据类型 159
7.9 综合实例 160
本章小结 164
习题7 165
第8章 位运算 168
8.1 位运算符和位运算 168
8.1.1 按位与运算符 168
8.1.2 按位或运算符 170
8.1.3 按位异或运算符 171
8.1.4 按位取反运算符 172
8.1.5 左移运算符 173
8.1.6 右移运算符 174
8.2 位段 174
8.2.1 位段的定义 174
8.2.2 位段的使用 175
8.3 综合实例 177
本章小结 180
习题8 181
第9章 文件 182
9.1 文件概述 182
9.2 文件指针 183
9.3 文件的打开和关闭 184
9.3.1 文件打开函数fopen() 184
9.3.2 文件关闭函数fclose() 185
9.4 文件的读写 185
9.4.1 字符读写函数fgetc()和fputc() 186
9.4.2 字符串读写函数fgets()和fputs() 187
9.4.3 数据块读写函数fread()和fwrite() 188
9.4.4 格式化读写函数fscanf()和fpintf() 190
9.4.5 自定义其他类型数据的读写函数 192
9.5 文件的定位 193
9.6 文件的出错检测 194
9.7 综合实例 194
本章小结 197
习题9 198
第10章 编译预处理 200
10.1 宏定义 200
10.1.1 不带参数的宏定义 200
10.1.2 带参数的宏定义 202
10.1.3 宏定义的嵌套 203
10.1.4 取消宏定义 203
10.2 文件包含 204
10.3 条件编译 205
10.4 其他预处理功能 207
10.5 预定义的宏名 208
本章小结 208
习题10 208
附录Ⅰ 预备知识 210
附录Ⅱ 常用字符与ASCII代码对照表 219
附录Ⅲ C语言中的关键字 220
附录Ⅳ 运算符的优先级与结合性 221
附录Ⅴ C库函数 222
参考文献 226