第1章 概述 1
1.1 程序与程序设计语言 1
1.1.1 程序 1
1.1.2 程序设计语言 1
1.2 C语言的历史与特点 3
1.2.1 C语言的发展历史 4
1.2.2 C语言的特点 4
1.3 C程序简介 5
1.4 C程序的运行环境及其编译与执行 7
习题 11
第2章 数据类型、运算符与表达式 12
2.1 常量与变量 12
2.1.1 常量与符号常量 12
2.1.2 变量 13
2.2 整型数据 15
2.2.1 整型常量 15
2.2.2 整型变量 16
2.3 实型数据 16
2.3.1 实型常量 16
2.3.2 实型变量 17
2.4 字符型数据 18
2.4.1 字符常量 18
2.4.2 字符变量 19
2.4.3 字符串常量 20
2.5 各种数值型数据间的混合运算 21
2.5.1 数据类型转换规则 21
2.5.2 数据类型转换方法 22
2.6 算术运算符和算术表达式 23
2.6.1 基本的算术运算符 23
2.6.2 算术表达式 24
2.7 赋值运算和赋值表达式 24
2.7.1 简单赋值运算 24
2.7.2 复合赋值运算 26
2.7.3 自增运算符和自减运算符 26
2.8 逗号运算符和逗号表达式 27
2.9 小结 28
习题 30
第3章 顺序程序设计 33
3.1 概述 33
3.1.1 C语句分类 33
3.1.2 顺序程序设计概念 34
3.2 赋值语句、变量赋初值 35
3.2.1 赋值语句 35
3.2.2 变量赋初值 35
3.3 C程序处理数据的输入与输出 36
3.3.1 数据输入与输出概念 36
3.3.2 字符数据的输入与输出 36
3.4 格式输入与输出 37
3.4.1 格式输出函数——printf函数 37
3.4.2 格式输入函数——scanf函数 41
3.5 程序举例 42
3.6 小结 44
习题 46
第4章 选择结构程序设计 49
4.1 关系运算符和关系表达式 49
4.1.1 关系运算符 49
4.1.2 关系表达式 50
4.2 逻辑运算符和逻辑表达式 51
4.2.1 逻辑运算符 51
4.2.2 逻辑表达式 52
4.3 条件运算符和条件表达式 53
4.4 选择语句 55
4.4.1 流程图和N-S图 55
4.4.2 if语句的语法格式 55
4.4.3 if语句的嵌套 57
4.5 switch和break语句 59
4.5.1 switch语句 59
4.5.2 break语句 61
4.6 程序举例 61
4.7 小结 64
习题 66
第5章 循环结构程序设计 68
5.1 概述 68
5.2 goto语句与循环 68
5.3 while语句 69
5.4 do-while语句 70
5.5 for语句 71
5.6 几种循环结构的比较 73
5.7 循环的嵌套 73
5.8 循环控制语句 74
5.8.1 用 break语句终止循环 74
5.8.2 continue语句 75
5.9 算法及其表示方法简介 77
5.9.1 算法及其特性 77
5.9.2 算法表示方法 78
5.9.3 用程序设计语言实现算法 81
5.10 循环算法的设计与实现 82
5.10.1 穷举算法 83
5.10.2 迭代算法 85
5.11 小结 87
习题 88
第6章 数组 92
6.1 概述 92
6.2 一维数组 94
6.2.1 一维数组的定义 94
6.2.2 一维数组元素的引用 95
6.2.3 一维数组的初始化 96
6.2.4 一维数组程序举例 97
6.3 二维数组 105
6.3.1 二维数组的定义 105
6.3.2 二维数组的引用 106
6.3.3 二维数组的初始化 106
6.3.4 二维数组程序举例 107
6.4 字符数组 110
6.4.1 字符数组的定义 110
6.4.2 字符数组的初始化 111
6.4.3 字符数组的输入和输出 112
6.4.4 字符串处理函数 115
6.5 字符数组应用 118
6.6 小结 121
习题 121
第7章 函数 126
7.1 概述 126
7.2 函数的定义 127
7.2.1 函数定义的一般形式 127
7.2.2 函数的参数与函数的返回值 129
7.3 函数的调用 132
7.3.1 函数调用的方式 132
7.3.2 对被调用函数的声明 132
7.4 函数的嵌套调用和递归调用 134
7.4.1 函数的嵌套调用 134
7.4.2 函数的递归调用 137
7.5 局部变量和全局变量 141
7.5.1 局部变量 141
7.5.2 全局变量 142
7.6 变量的存储类别 143
7.6.1 自动变量 144
7.6.2 局部静态变量 145
7.6.3 register(寄存器)变量 146
7.6.4 用extern关键字声明的外部变量 146
7.6.5 用static关键字声明的外部变量 147
7.7 内部函数和外部函数 147
7.7.1 内部函数 147
7.7.2 外部函数 148
7.8 结构化程序设计方法简介 148
7.8.1 自顶向下程序设计 148
7.8.2 运行一个多源文件组成的C程序 149
7.9 小结 150
习题 151
第8章 指针 160
8.1 概述 160
8.2 指针的概念 160
8.3 指针变量 162
8.3.1 指针变量的定义 162
8.3.2 指针变量的应用 163
8.3.3 指针变量作函数参数 166
8.4 指针与数组 168
8.4.1 指向一维数组元素的指针 168
8.4.2 一维数组作函数参数 171
8.4.3 指向数组元素的指针变量作函数参数 172
8.4.4 指向多维数组元素的指针 173
8.4.5 数组指针 175
8.4.6 指向多维数组元素的指针作函数参数 178
8.4.7 动态内存分配 179
8.5 指针与字符串 182
8.5.1 指向字符串的指针 182
8.5.2 字符串指针作函数参数 185
8.6 指针数组与多级指针 187
8.6.1 指针数组 187
8.6.2 指针数组的应用 188
8.6.3 指向指针的指针变量 190
8.6.4 main函数的参数 192
8.7 函数指针与指针函数 194
8.7.1 函数指针 194
8.7.2 指针函数 196
8.8 小结 198
习题 198
第9章 结构体与共用体 204
9.1 概述 204
9.2 结构体 204
9.2.1 结构体类型的定义 204
9.2.2 结构体类型变量的定义及初始化 206
9.2.3 结构体类型变量及其成员的引用 208
9.2.4 结构体数组 209
9.2.5 指向结构体类型数据的指针 212
9.2.6 用结构体变量及其成员作函数参数 215
9.3 共用体 217
9.3.1 共用体类型及变量的定义 217
9.3.2 共用体变量的引用方式 218
9.4 枚举类型 222
9.5 用typedef定义类型 223
9.6 编译预处理命令 224
9.6.1 宏定义 224
9.6.2 文件包含 227
9.6.3 条件编译 227
9.7 小结 229
习题 231
第10章 文件 236
10.1 C文件概念 236
10.2 文件类型与文件指针 237
10.3 文件的打开与关闭 238
10.3.1 文件打开与fopen函数 238
10.3.2 文件关闭与fclose函数 240
10.4 文件的读写 241
10.4.1 单字符(字节)方式读写 241
10.4.2 字节块数据项读写与fread和fwrite函数 244
10.4.3 文件的格式读写 248
10.4.4 文件处理的其他读写函数 250
10.5 文件读写指针定位 251
10.5.1 rewind函数 251
10.5.2 随机读写和fseek函数 252
10.5.3 文件位置指针的当前位置与ftell函数 253
10.6 文件检测 253
10.6.1 文件操作出错检测 253
10.6.2 文件是否结束检测 254
10.7 小结 254
习题 256
第11章 常见错误和程序调试 260
11.1 常见错误分析 260
11.2 程序调试 271
11.3 检查和分析错误原因 272
11.4 Turbo C环境下编辑、调试和运行C程序的方法 273
第12章 图形程序设计 279
12.1 概述 279
12.2 图形模式的初始化 279
12.3 独立图形运行程序的建立 281
12.4 屏幕颜色的设置和清屏函数 281
12.5 基本图形绘制函数 283
12.5.1 点的函数 283
12.5.2 画线函数 284
12.6 封闭图形的填充 286
12.6.1 先画轮廓再填充 286
12.6.2 设定填充方式 287
12.6.3 任意封闭图形的填充 289
12.7 图形模式下的文本输出 289
12.7.1 文本输出函数 289
12.7.2 有关文本字体、字型和输出方式的设置 290
12.7.3 用户对文本字符大小的设置 292
12.8 有关图形窗口和图形屏幕操作函数 293
12.8.1 图形窗口操作 293
12.8.2 屏幕操作 293
12.9 小结 294
习题 294
附录A 常用字符与ASCII代码对照表 295
附录B C语言位运算 297
附录C 运算符和结合性 301
附录D Turbo C常用库函数 303
附录E 常见的编译出错信息 310
主要参考文献 314