上篇 C语言程序设计 3
第1章 程序设计及C语言概述 3
1.1 算法与程序设计 3
1.1.1 算法 3
1.1.2 程序 4
1.1.3 程序设计语言与程序设计过程 5
1.2 C语言的特点 7
1.3 C语言程序结构 8
1.3.1 C语言程序的一般形式 8
1.3.2 C语言程序的主要成分 9
1.4 上机操作 11
1.4.1 Turbo C 2.0启动与退出 11
1.4.2 编辑、编译、连接、运行的基本操作 12
1.4.3 在Turbo C++环境下编辑运行C语言程序 14
1.5 流程图及N-S图 15
1.5.1 用流程图表示算法 15
1.5.2 用N-S图表示算法 16
1.6 结构化程序设计 18
1.6.1 结构化程序 18
1.6.2 结构化程序设计遵循的原则 18
1.6.3 结构化程序设计举例 19
习题一 21
第2章 C语言数据类型、运算符和表达式 23
2.1 C语言数据类型 23
2.2 常量与变量 23
2.2.1 常量与符号常量 23
2.2.2 标识符与变量 24
2.3 整型数据 26
2.3.1 整型常量 26
2.3.2 整型变量 26
2.4 实型数据 28
2.4.1 实型常量 28
2.4.2 实型变量 28
2.4.3 精度数据 29
2.5 字符型数据 30
2.5.1 字符常量 30
2.5.2 字符变量 31
2.5.3 字符串常量 33
2.6 系统函数 33
2.6.1 系统库函数 33
2.6.2 常用数学函数 34
2.7 算术运算符 35
2.7.1 基本算术运算符 35
2.7.2 算术表达式和运算符的优先级与结合性 36
2.7.3 自增自减运算符 36
2.7.4 类型转换运算符及类型转换 38
2.8 关系运算符和逻辑运算符 39
2.8.1 关系运算符 39
2.8.2 逻辑运算符 40
2.8.3 条件运算符 41
2.9 赋值运算符和赋值表达式 42
2.9.1 赋值运算中的运算符和表达式 42
2.9.2 赋值运算中的数据类型转换 42
2.9.3 算术自反赋值运算符 42
2.9.4 赋值运算符的优先级与结合性 43
2.10 逗号运算符和逗号表达式 43
2.11 运算符的优先级与表达式的类型 44
2.11.1 运算符的优先级 44
2.11.2 C语言表达式的类型 45
习题二 45
第3章 简单程序设计 47
3.1 程序设计简例 47
3.2 格式输入输出函数的一般形式 48
3.2.1 格式输入函数scanf 48
3.2.2 格式输出函数printf 50
3.3 字符输入输出函数 51
3.3.1 字符输入函数getchar 51
3.3.2 字符输出函数putchar 52
3.4 程序设计案例 53
习题三 55
第4章 结构化程序设计 57
4.1 概述 57
4.2 分支选择结构程序设计 57
4.2.1 分支选择结构 57
4.2.2 分支选择程序设计案例 62
4.3 循环结构程序设计 65
4.3.1 当型循环与直到型循环 65
4.3.2 for循环控制语句 67
4.3.3 goto转移控制语句 68
4.3.4 break语句和continue语句 68
4.4 多重循环的实现 69
4.4.1 循环语句的比较 71
4.4.2 循环程序设计案例 72
习题四 74
第5章 数组 78
5.1 一维数组 78
5.1.1 一维数组的定义和初始化 78
5.1.2 一维数组元素的引用 79
5.1.3 数列的排序程序实例 80
5.2 维数组及多维数组 81
5.2.1 二维数组的定义和初始化 82
5.2.2 二维数组元素的引用 83
5.2.3 二维数组程序设计实例 83
5.2.4 多维数组 85
5.3 字符数组与字符串 86
5.3.1 字符数组与字符串 86
5.3.2 字符数组程序设计实例 91
5.3.3 字符串处理函数 92
5.4 程序设计案例 95
习题五 96
第6章 函数 99
6.1 函数的概念 99
6.1.1 C语言程序的结构 100
6.1.2 函数的使用说明与分类 100
6.1.3 函数定义 101
6.2 函数调用 103
6.2.1 函数的调用 103
6.2.2 函数调用的3种方式 104
6.2.3 对被调用函数的声明 105
6.2.4 实参与形参的数据传送 106
6.2.5 数组名作为函数参数 108
6.3 变量的作用域和存储类型 110
6.3.1 变量的作用域 110
6.3.2 变量的存储类型 113
6.4 嵌套调用与递归函数 118
6.4.1 数的嵌套调用 118
6.4.2 递归函数 119
6.5 内部函数和外部函数 120
6.5.1 内部函数和外部函数的概念 121
6.5.2 多文件程序的运行 122
习题六 123
第7章 指针 127
7.1 内存数据的指针与指针变量 127
7.2 指针变量的定义及指针运算 128
7.2.1 指针变量的定义 129
7.2.2 指针变量的运算 129
7.2.3 指针变量作为函数的参数 132
7.3 数组元素的指针与数组的指针 134
7.3.1 数组元素的指针 134
7.3.2 数组的指针 135
7.3.3 多维数组的指针 135
7.3.4 指向由m个元素组成的一维数组的指针变量 136
7.4 函数的指针和返回指针的函数 137
7.4.1 指向函数的指针变量 137
7.4.2 返回指针的函数 138
7.5 字符指针 140
7.5.1 字符串的指针 140
7.5.2 字符数组和字符指针变量的区别 141
7.6 指针数组与指向指针的指针 141
7.6.1 指针数组 141
7.6.2 指向指针的指针 142
7.6.3 命令行参数 143
7.7 程序设计案例 144
习题七 147
第8章 结构体与共用体 151
8.1 结构体类型和结构体类型变量 151
8.1.1 结构体类型及其定义 151
8.1.2 结构体类型变量的定义 153
8.1.3 结构体类型变量及其成员的引用与初始化 155
8.2 结构体数组 156
8.2.1 结构体数组的定义及初始化 156
8.2.2 结构体数组的初始化 157
8.2.3 结构体数组的应用 157
8.3 指向结构体类型数据的指针 159
8.3.1 指向结构体变量的指针 159
8.3.2 指向结构体数组的指针 160
8.3.3 指向结构数据的指针作函数参数 161
8.4 内存的动态分配与单链表 163
8.4.1 内存的动态分配 163
8.4.2 链表的概念 164
8.4.3 链表的操作运算 165
8.5 共用体和枚举型 167
8.5.1 共用体 167
8.5.2 枚举型 168
8.6 typedef语句 169
8.6.1 typedef语句的一般形式及使用方法 169
8.6.2 使用typedef语句应注意的问题 169
8.7 结构体与共用体应用案例 170
习题八 175
第9章 位运算符与长度运算符 179
9.1 原码、反码和补码 179
9.2 移位运算符 180
9.2.1 位左移运算符 180
9.2.2 位右移运算符 180
9.3 位逻辑运算符 181
9.3.1 按位“取反”运算符 181
9.3.2 按位“与”运算符 181
9.3.3 按位“或”运算符 182
9.3.4 按位“异或”运算符 182
9.4 位自反赋值运算符 183
9.5 求长度运算符 183
9.6 位段 183
9.7 位运算案例 186
习题九 187
第10章 文件操作 189
10.1 文件概述 189
10.2 文件类型指针 190
10.3 文件的打开和关闭 190
10.3.1 文件的打开 190
10.3.2 文件的关闭 192
10.4 文件的读写 192
10.4.1 文件的字符读写函数 192
10.4.2 文件的字符串读写函数 194
10.4.3 文件的数据块读写函数 195
10.4.4 文件格式化读写函数 198
10.4.5 文件的其他读写函数 199
10.5 文件定位 200
10.5.1 rewind函数 200
10.5.2 ftell函数 201
10.5.3 fseek函数 201
10.6 文件操作中的检错检测 202
10.6.1 ferror函数 202
10.6.2 clearerror函数 202
10.6.3 feof函数 203
10.7 程序设计案例 203
习题十 206
第11章 编译预处理 209
11.1 概述 209
11.2 宏定义 209
11.2.1 不带参数的宏定义 209
11.2.2 带参数的宏定义 211
11.2.3 解除宏定义 213
11.3 文件包含 214
11.4 条件编译 215
11.5 程序设计案例 216
习题十一 219
第12章 图形处理 222
12.1 图形输出初始化和显示模式设置 222
12.1.1 图形输出初始化 222
12.1.2 显示模式的设置 224
12.1.3 退出图形方式 225
12.2 绘图函数 225
12.2.1 视区和屏幕操作函数 225
12.2.2 颜色控制函数 227
12.2.3 像素和位映像操作函数 227
12.2.4 直线类绘图函数 229
12.2.5 矩形和多边形的绘图函数 230
12.2.6 圆弧类绘图函数 231
12.2.7 填充函数 232
12.2.8 图形文本函数 233
12.3 图形处理应用实例 234
习题十二 236
下篇 实验、课程设计与参考程序 241
一、实验 241
实验一 上机练习 241
实验二 数据类型、运算符和表达式 241
实验三 简单程序设计 243
实验四 分支结构程序设计 244
实验五 循环结构程序设计 245
实验六 数组 247
实验七 函数 247
实验八 指针 248
实验九 结构体与共用体 249
实验十 位运算与长度运算符 250
实验十一 文件操作 251
实验十二 编译预处理 251
实验十三 图形处理 252
二、程序阅读 254
三、课程设计 259
课程设计一 学生成绩分段统计 259
课程设计二 中国古代民间游戏 260
课程设计三 学生成绩查询管理 260
课程设计四 学生成绩管理系统 261
课程设计五 指针时钟设计 263
四、实验参考程序 265
五、课程设计参考程序 285
六、习题参考答案 303
附录 327
附录1 C语言的字符集 327
附录2 C语言的保留字 327
附录3 C语言的库函数 327
附录4 实验报告表 336
参考文献 338