第1章 C语言概述 1
1.1 C语言的发展与特点 1
1.1.1 C语言的发展 1
1.1.2 C语言的特点 2
1.2 C程序结构与特点 3
1.2.1 C程序结构 3
1.2.2 C程序源文件的特点 6
1.3 Turbo C集成环境与程序的上机操作 6
1.3.1 Turbo C集成编程环境 6
1.3.2 上机操作与查错 9
习题 11
上机实习 11
第2章 数据类型、表达式及其运算 13
2.1 C语言的数据类型 13
2.1.1 C语言中的关键字、标识符 13
2.1.2 C语言数据类型的取值范围 14
2.2 常量 15
2.2.1 整型常量 15
2.2.2 实型常量 16
2.2.3 字符型常量 16
2.2.4 字符串常量 17
2.2.5 符号常量 17
2.3 变量 18
2.3.1 变量的概念 18
2.3.2 变量的定义与初始化 18
2.4 C语言的运算符及表达式 23
2.4.1 C语言的运算符 23
2.4.2 算术运算符 25
2.4.3 算术表达式 27
2.4.4 算术表达式数据间的混合运算与类型转换 27
2.5 赋值运算符和赋值表达式 29
2.5.1 基本赋值运算符 29
2.5.2 复合赋值运算符 30
2.5.3 赋值表达式 30
2.6 指针运算 31
2.6.1 地址与指针的概念 31
2.6.2 指针变量的定义与引用 32
2.6.3 指针的运算 35
2.7 逗号运算符与逗号表达式 37
习题 38
上机实习 39
第3章 顺序结构程序设计 41
3.1 结构化程序设计的基本概念及C语句 41
3.1.1 结构化程序设计的基本概念 41
3.1.2 C语句概述 42
3.2 赋值语句 43
3.3 数据的输入/输出 44
3.3.1 格式输入与输出 44
3.3.2 字符数据的输入函数getchar()与输出函数putchar() 51
习题 52
上机实习 53
第4章 选择结构程序设计 56
4.1 关系表达式和关系运算符 56
4.1.1 关系表达式 56
4.1.2 关系运算符及其优先次序 56
4.2 逻辑运算符及逻辑表达式 57
4.2.1 逻辑运算符及其优先次序 57
4.2.2 逻辑表达式 58
4.3 if语句 58
4.3.1 if语句的3种形式 59
4.3.2 if语句的嵌套 63
4.3.3 条件运算符 65
4.4 switch语句 66
习题 68
上机实习 68
第5章 循环结构程序设计 72
5.1 while语句 72
5.2 do...while语句 73
5.3 for语句 75
5.4 3种循环语句的比较 78
5.4.1 3种循环语句的不同用法 78
5.4.2 编写循环结构程序的要点 78
5.5 循环结构中用到的其他语句 78
5.5.1 break语句 78
5.5.2 continue语句 80
5.5.3 goto语句 80
5.6 多重循环 81
习题 83
上机实习 84
第6章 数组 86
6.1 一维数组 86
6.1.1 一维数组的定义 86
6.1.2 一维数组元素的引用 87
6.1.3 一维数组的初始化 90
6.2 二维数组 90
6.2.1 二维数组的定义 90
6.2.2 二维数组的初始化 91
6.2.3 二维数组元素的引用 92
6.3 字符型数组与字符串 93
6.3.1 字符数组的定义 93
6.3.2 字符数组的初始化 94
6.3.3 字符数组的引用 94
6.3.4 字符串和字符串结束标志 95
6.3.5 字符数组的输入/输出 96
6.3.6 字符串处理函数 97
6.4 指针与一维数组 100
6.4.1 数组的指针和指向数组的指针变量 100
6.4.2 字符串的指针和指向字符串的指针变量 103
6.5 指针数组、指针与二维数组 105
6.5.1 指针数组的定义 105
6.5.2 指针数组的引用 105
6.5.3 指向二维数组元素的指针 107
6.5.4 指针引用二维数组元素 108
6.5.5 指向指针的指针变量 109
6.6 程序举例 111
习题 115
上机实习 116
第7章 函数 120
7.1 概述 120
7.1.1 模块化程序结构的概念 120
7.1.2 C语言程序的构成 121
7.2 C函数的分类与定义 122
7.2.1 C语言函数的分类 122
7.2.2 C语言函数的定义 122
7.3 函数的参数和函数的值 123
7.3.1 函数的形式参数和实际参数 123
7.3.2 函数的返回值 125
7.4 函数的调用 126
7.4.1 函数的原型与声明 126
7.4.2 函数的调用 128
7.5 函数的嵌套调用 129
7.6 函数的递归调用 130
7.6.1 递归的概念 130
7.6.2 递归三要素 131
7.6.3 递归函数程序设计举例 132
7.7 指针与函数 134
7.7.1 指针变量作为函数的参数 134
7.7.2 数组作为函数参数 135
7.7.3 返回指针值的函数 141
7.7.4 函数的指针和指向函数的指针变量 142
7.7.5 main函数的形参 144
7.8 变量的作用域与存储类别 145
7.8.1 变量的作用域 145
7.8.2 变量的存储类别 149
7.9 内部函数和外部函数 154
7.9.1 内部函数 154
7.9.2 外部函数 154
7.9.3 多个源程序文件的编译与连接 155
7.10 程序编译预处理 156
7.10.1 宏定义 156
7.10.2 条件编译 159
7.11 指针运算小结和程序举例 161
7.11.1 有关指针的数据类型和指针运算小结 161
7.11.2 程序举例 162
习题 167
上机实习 168
第8章 结构体与共用体 171
8.1 结构体类型的定义 171
8.2 结构体变量的引用 173
8.3 结构体变量的初始化 175
8.4 结构体数组 175
8.4.1 定义结构体数组 175
8.4.2 结构体数组的初始化和引用 176
8.4.3 结构体数组应用举例 177
8.5 结构体类型的指针变量 179
8.5.1 指向结构体变量的指针 179
8.5.2 指向结构体数组的指针 181
8.5.3 用指向结构体的指针作函数参数 182
8.5.4 结构体应用举例 184
8.6 链表 185
8.6.1 链表概述 185
8.6.2 单向链表 186
8.6.3 动态链表所需要的函数 187
8.6.4 动态链表的建立与输出 188
8.6.5 链表的插入与删除 189
8.6.6 链表举例 191
8.7 共用体 193
8.7.1 共用体的概念 193
8.7.2 共用体变量的引用方式 195
8.7.3 共用体类型数据的特点 195
8.8 枚举类型 197
8.8.1 枚举类型和枚举变量的定义 197
8.8.2 枚举类型的使用 198
8.8.3 枚举类型程序举例 199
8.9 用typedef定义新的类型 199
习题 200
上机实习 202
第9章 文件 206
9.1 C文件概述 206
9.1.1 文件的分类 206
9.1.2 文件的操作过程 207
9.2 文件类型指针 207
9.3 文件的打开与关闭 208
9.3.1 文件的打开函数fopen() 208
9.3.2 文件的关闭函数fclose() 209
9.4 文件的读写 209
9.4.1 字符读写函数fputc()和fgetc() 210
9.4.2 字符串读写函数fgets()和fputs() 212
9.4.3 数据块读写函数fread()和fwrite() 213
9.4.4 格式化读写函数fprintf()和fscanf() 215
9.5 文件定位与随机读写 217
9.5.1 函数rewind() 217
9.5.2 函数fseek()与随机读写 218
9.5.3 函数ftell() 220
9.6 文件检测函数 221
9.6.1 函数feof() 221
9.6.2 函数ferror() 221
9.6.3 函数clearerr() 222
习题 222
上机实习 222
第10章 位运算 225
10.1 位运算符和位运算 225
10.1.1 位运算符 225
10.1.2 位运算的功能与应用 225
10.2 应用举例 230
10.3 位段 233
10.3.1 位段的定义和位段变量的说明 233
10.3.2 位段的引用方法 234
习题 237
上机实习 237
第11章 图形程序设计 239
11.1 图形模式 239
11.1.1 显示器基础 239
11.1.2 Turbo C图形方式 240
11.2 基本绘图函数 243
11.2.1 绘图函数 243
11.2.2 填充函数 250
11.2.3 图形存取函数 256
11.3 图形方式下的文本输出 258
11.3.1 设置字体函数 258
11.3.2 输出字符串函数 259
11.4 程序举例 260
习题 265
上机实习 266
附录A 常用字符与ASCII代码对照表 267
附录B Turbo C库函数 268
附录C 常见错误分析和程序调试 279
附录D 习题参考答案 287
参考文献 307