第1章 C语言概述 1
1.1 C语言的发展与特点 1
1.2 C语言程序的结构和语法规则 2
1.2.1 C语言程序的基本结构 2
1.2.2 C语言函数的一般结构 4
1.2.3 C语言函数的语法规则 4
1.3 C语言的编译环境 6
1.4 小结 11
习题 11
第2章 数据类型、运算符与表达式 12
2.1 C语言的数据类型 12
2.2 标识符、常量和变量 12
2.2.1 标识符 12
2.2.2 常量 14
2.2.3 变量 14
2.3 整型数据 15
2.3.1 整型常量 15
2.3.2 整型变量 15
2.4 实型数据 16
2.4.1 实型常量 16
2.4.2 实型变量 17
2.5 字符型数据 17
2.5.1 字符常量 17
2.5.2 字符变量 18
2.5.3 字符串常量 20
2.6 算术运算与算术表达式 20
2.6.1 算术运算 21
2.6.2 算术表达式 21
2.7 赋值运算与赋值表达式 22
2.8 自增、自减和逗号运算 23
2.8.1 自增(++)、自减(--)运算 23
2.8.2 逗号运算符及其表达式 24
2.9 小结 25
习题 27
第3章 顺序结构程序设计 28
3.1 程序设计概述 28
3.1.1 算法的概念 28
3.1.2 算法的特征 28
3.1.3 算法的描述 29
3.1.4 结构化程序设计方法 30
3.2 C语言语句 31
3.3 格式化输出函数printf() 32
3.3.1 printf()函数的一般格式 32
3.3.2 格式指示符 33
3.3.3 使用说明 34
3.4 格式化输入函数scanf() 34
3.4.1 scanf()函数的一般格式 35
3.4.2 格式指示符 35
3.4.3 使用说明 36
3.5 单个字符的输入/输出函数 37
3.6 顺序程序设计举例 37
3.7 小结 39
习题 39
第4章 选择结构程序设计 43
4.1 关系运算及其表达式 43
4.1.1 关系运算符及其优先次序 43
4.1.2 关系表达式 44
4.2 逻辑运算及其表达式 44
4.2.1 逻辑运算及其优先次序 44
4.2.2 逻辑表达式 45
4.3 if语句和条件运算符 46
4.3.1 if语句 46
4.3.2 条件运算符 51
4.4 switch语句 52
4.5 选择结构程序设计举例 57
4.6 小结 60
习题 60
第5章 循环结构程序设计 65
5.1 循环语句概述 65
5.2 for语句和while语句 65
5.2.1 for语句 65
5.2.2 while语句 66
5.3 直到型循环do-while语句 67
5.4 循环结构的嵌套 68
5.5 break和continue语句对循环控制的影响 70
5.6 goto语句 72
5.7 循环结构程序设计应用 72
5.7.1 应用举例 72
5.7.2 穷举与迭代算法 73
5.8 小结 77
习题 78
第6章 数组 81
6.1 数组的概念 81
6.2 一维数组 81
6.2.1 一维数组的定义 81
6.2.2 一维数组的引用 82
6.2.3 一维数组的初始化 83
6.2.4 一维数组应用举例 84
6.3 二维数组 86
6.3.1 二维数组的定义 86
6.3.2 二维数组的引用 86
6.3.3 二维数组的初始化 87
6.3.4 二维数组应用举例 87
6.4 字符数组与字符串 91
6.4.1 字符数组的定义和基本操作 91
6.4.2 字符数组的整体操作 92
6.4.3 常用的字符串处理函数 93
6.4.4 程序举例 94
6.5 小结 96
习题 96
第7章 函数 99
7.1 函数的定义与调用 99
7.1.1 函数的定义 99
7.1.2 函数的返回值与函数类型 102
7.1.3 对被调用函数的声明和函数原型 104
7.1.4 函数的调用 106
7.1.5 函数的形参与实参 108
7.2 函数的嵌套调用和递归调用 109
7.2.1 函数的嵌套调用 109
7.2.2 函数的递归调用 112
7.3 数组作为函数参数 114
7.3.1 数组元素作为函数参数 114
7.3.2 数组名作为函数的形参和实参 115
7.4 内部变量与外部变量 118
7.4.1 内部变量 118
7.4.2 外部变量 119
7.5 内部函数和外部函数 121
7.5.1 内部函数 122
7.5.2 外部函数 124
7.5.3 多个源程序文件的编译和连接 124
7.6 变量的动态存储与静态存储简介 125
7.6.1 动态存储与静态存储的概念 125
7.6.2 内部变量的存储方式 126
7.6.3 外部变量的存储方式 128
7.7 小结 130
习题 131
第8章 编译预处理 137
8.1 宏定义 137
8.1.1 无参宏定义 137
8.1.2 带参宏定义 140
8.2 文件包含 144
8.3 小结 145
习题 145
第9章 指针 149
9.1 指针和指针变量的概念 149
9.1.1 指针的基本概念 149
9.1.2 指针变量的基本概念 149
9.2 指针变量的定义与应用 150
9.2.1 指针变量的定义与相关运算 150
9.2.2 指针变量作为函数参数 153
9.3 数组的指针和指向数组的指针变量 155
9.3.1 概述 155
9.3.2 通过指针引用数组元素 155
9.3.3 二维数组的指针及其指针变量 158
9.4 字符串的指针和指向字符串的指针变量 160
9.4.1 字符串的表示和引用 160
9.4.2 字符串指针作函数参数 164
9.5 返回指针的函数 165
9.6 指针数组与主函数main()的形参 166
9.6.1 指针数组 166
9.6.2 主函数main()的形参 168
9.6.3 指向指针的指针变量 169
9.7 函数的指针和指向函数的指针变量 170
9.8 小结 172
习题 173
第10章 结构体、共用体和枚举类型 178
10.1 结构体类型与结构体变量的定义 178
10.1.1 结构体的类型定义 178
10.1.2 结构体变量的定义 179
10.2 结构体变量的引用与初始化 180
10.2.1 结构体变量的引用 180
10.2.2 结构体变量的初始化 181
10.3 结构体数组 181
10.3.1 结构体数组的定义 181
10.3.2 结构体数组的初始化 182
10.4 指向结构体类型数据的指针 183
10.4.1 指向结构体变量的指针 183
10.4.2 指向结构体数组的指针 184
10.4.3 指向结构体数据的指针作函数参数 185
10.5 单链表 186
10.5.1 概述 186
10.5.2 建立单链表 187
10.5.3 在单链表中插入结点 188
10.6 共用体类型和枚举类型 189
10.6.1 共用体类型 189
10.6.2 枚举类型 190
10.7 定义已有类型的别名 191
10.8 小结 192
习题 193
第11章 位运算 201
11.1 数值在计算机中的表示 201
11.1.1 二进制数的简单运算 201
11.1.2 数值在计算机中的表示 201
11.2 位运算 202
11.2.1 位运算符 202
11.2.2 位运算符功能实现 202
11.3 位段简介 205
11.3.1 位段的定义和位段变量的说明 205
11.3.2 位段的使用 206
11.4 小结 207
习题 207
第12章 文件 209
12.1 文件概述 209
12.2 文件的打开与关闭 210
12.2.1 文件的打开(fopen()函数) 211
12.2.2 文件的关闭(fclose()函数) 212
12.3 文件的读/写操作 212
12.3.1 读/写文件中的一个字符——fgetc()和fputc()函数 212
12.3.2 读/写一个字符串——fgets()函数和fputs()函数 215
12.3.3 读/写一个数据块——fread()和fwrite()函数 217
12.3.4 对文件进行格式化读/写——fscanf()和fprintf()函数 217
12.3.5 读/写函数的选用原则 218
12.4 位置指针与文件定位 218
12.4.1 位置指针复位函数rewind() 218
12.4.2 随机读/写与fseek()函数 218
12.4.3 返回文件当前位置的函数ftell() 219
12.5 小结 219
习题 221
第13章 Turbo C V2.0综合应用 222
13.1 简单的数据库管理举例 223
13.2 Turbo C V2.0图形功能 224
13.2.1 图形模式的设置 224
13.2.2 基本图形函数 226
13.2.3 填充函数 227
13.2.4 图形方式下文本输出函数 227
13.2.5 图形功能应用举例 227
习题 233
附录 234
附录A 标准ASCII码字符编码表 234
附录B 运算符的优先级和结合性 235
附录C 标准库函数 236
附录D Turbo C V2.0常见错误 241
参考文献 248