第1章 C语言程序设计基础 1
1.1 一个大家熟悉的例子 1
1.1.1 一个简单的C语言程序例子 1
1.1.2 程序的简单分析 2
1.1.3 C语言程序结构 3
1.1.4 字符及字符集 6
1.2 C语言的由来、特点和发展 8
1.3 输入与输出函数 9
1.3.1 scanf函数(标准格式输入函数) 9
1.3.2 printf函数(标准格式输出函数) 11
1.3.3 getchar函数(单个字符输入函数) 15
1.3.4 putchar函数(单个字符输出函数) 16
1.4 C语言程序的实现 18
1.4.1 C语言程序实现方框图 18
1.4.2 C语言的编辑 19
1.4.3 编译与运行程序 20
1.4.4 C语言程序错误分类 21
1.5 进阶部分知识 23
1.5.1 转义字符 23
1.5.2 scanf函数格式说明符 23
1.5.3 printf函数格式说明符 24
1.6 习题一 29
1.7 实训一 30
2.1 数据类型 33
2.1.1 一个C语言程序例子 33
第2章 数据描述与基本操作 33
2.1.2 数据类型 36
2.1.3 数据的存储格式、范围与有效位 36
2.1.4 赋值语句 39
2.2 常量与变量 40
2.2.1 常量 40
2.2.2 变量 43
2.2.3 变量说明语句 44
2.2.4 各种数值型数据间的混合运算 44
2.3 运算符与表达式 45
2.3.1 C语言的运算符 45
2.3.2 算术运算符 46
2.3.3 算术运算符的优先级 48
2.3.4 算术表达式 49
2.4 关系运算、逻辑运算与条件运算 51
2.4.1 关系运算及表达式 51
2.4.2 逻辑运算及表达式 52
2.4.3 条件运算 55
2.5 进阶部分知识 55
2.5.1 赋值表达式 55
2.5.2 赋值中的类型转换 57
2.5.3 变量初始化 58
2.5.4 逗号运算符 59
2.6 习题二 60
2.7 实训二 62
3.1 结构化程序设计思想 65
3.1.1 一个C语言程序例子 65
第3章 结构化程序设计 65
3.1.2 结构化程序设计由来 68
3.1.3 结构化程序分析方法 69
3.1.4 结构化系统分析方法的优点 70
3.2 程序设计工具 70
3.3.1 算法 70
3.3.2 程序流程 71
3.3.3 盒图(N S) 72
3.3.4 PAD图 73
3.2.5 结构图(SC) 74
3.3 选择结构程序设计 75
3.3.1简单条件分支 75
3.3.2选择条件分支语句 78
3.3.3 无条件转向语句 80
3.4 循环结构程序设计 82
3.4.1 循环结构程序概念 82
3.4.2 while结构 85
3.4.3 do-while结构 86
3.4.4 for结构 87
3.4.5 双重循环结构 90
3.4.6 break, continue及exit语句 92
3.4.7 几种循环的比较 96
3.5 进阶部分知识 96
3.5.1 条件分支语句的嵌套 96
3.5.2 开关语句 99
3.5.3 循环语句的嵌套 102
3.6 习题三 105
3.7 实训三 107
第4章 模块化程序设计 112
4.1 函数 112
4.1.1 一个C语言程序例子 112
4.1.2函数定义 114
4.1.3 函数参数和函数的值 116
4.1.4 函数的返回值 117
4.2 函数的调用 118
4.2.1 函数调用一般格式 118
4.2.2 函数调用的方式 120
4.2.3 函数的传值调用 121
4.2.4 函数的嵌套调用 123
4.3.1 数组概念 125
4.3 一维数组 125
4.3.2 一维数组 127
4.3.3 一维数组应用举例 128
4.3.4 数组名作函数参数的调用 131
4.4 二维数组 133
4.4.1 二维数组概念 133
4.4.2 二维数组引用 134
4.4.3 二维数组应用举例 135
4.5 进阶部分知识 137
4.5.1 函数的递归调用 137
4.5.2 字符数组 141
4.5.3 字符串 143
4.5.4 字符数组的应用 145
4.6 习题四 146
4.7 实训四 151
第5章 指针 155
5.1 几个大家熟悉的指针 155
5.1.1 旅馆客房指针概念 155
5.1.2 几个日常生活中指针概念 156
5.1.3 VFP中指会概念 156
5.1.4 C语言中的单元地址和单元内容 157
5.2 C语言中的指针 158
5.2.1 指针变量 158
5.2.2 运算符 和* 160
5.2.3 指针变量的引用 162
5.2.4 指针运算 164
5.2.5 指向指针的指针 167
5.3 指针和数组 168
5.3.1 一维数组的指针表示 168
5.3.2 二维数组的指针表示 171
5.3.3 指针与字符串 174
5.3.4 指针数组 177
5.4 指针和函数 180
5.4.1 指针作为函数的参数 180
5.4.2 指针作为函数的返回值 182
5.4.3 数组指针作为函数的参数 184
5.5 进阶部分知识 187
5.5.1 函数指针 187
5.5.2 main函数中的参数 189
5.6 习题五 190
5.7 实训五 194
第6章 结构休、共用体和枚举 199
6.1 一个典型的实际问题 199
6.1.1 学生档案数据类型 199
6.1.2 定义结构体类型变量的方法 200
6.1.3 结构体变量的初始化 202
6.1.4 结构体变量的引用 203
6.2 结构体数组与函数 204
6.2.1 结构体数组的定义 204
6.2.2 结构体数组的初始化 206
6.2.3 结构体数组的引用 207
6.2.4 结构体变量作函数参数 212
6.3.1 共用体的定义 214
6.3 共用体数据变型 214
6.3.2 共用体变量的定义 215
6.3.3 共用体变量的引用 215
6.3.4 共用体变量的应用 218
6.4 枚举数据类型 219
6.4.1 枚举的定义 220
6.4.2 枚举变量的定义 220
6.4.3 枚举变量的引用 221
6.5 进阶部分知识 225
6.5.1 指向结构体变量的指针 225
6.5.2 指向结构体数组的指针 226
6.5.3用结构体变量指针作函数参数 228
6.6 习题六 230
6.7 实训六 235
第7章 文件 238
7.1 一个典型的实际问题 238
7.1.1 学生档案数据文件 238
7.1.2 文件概念 240
7.1.3 文件类型指针 241
7.2 文件的打开与关闭 243
7.2.1 文件打开 243
7.2.2 文件关闭 244
7.3 文件的顺序读写 244
7.3.1 输入和输出一个字符 244
7.3.2 输入和输出一个字符串 246
7.3.3 数据块读写函数 248
7.3.4 格式化输入输出函数 251
7.4 文件的随机读写 252
7.4.1 文件随机读写概念 252
7.4.2 文件的定位 252
7.4.3 文件的出错检测 255
7.4.4 文件输入输出小结 255
7.5 编译预处理 256
7.5.1 宏定义 256
7.5.2 带参数的宏定义 257
7.5.3 文件包含 258
7.6 进阶部分知识 260
7.6.1 非缓冲文件系统的特点 260
7.6.2 文件打开 261
7.6.5 缓冲区的设置 262
7.6.3 文件关闭 262
7.6.4 文件的读写 262
7.6.6 文件重定向 263
7.7 习题七 264
7.8 实训七 267
第8章 C语言综合训练 269
8.1 简单应用程序 269
8.1.1 换币问题 269
8.1.2 整数排序 271
8.1.3 约瑟夫问题 273
8.2 一般应用程序 275
8.2.1 分屏显示文件内容 275
8.2.2 给小学生出四则混合题目 277
8.2.3 创建一个文本编辑器 280
8.3 图形应用程序 288
8.3.1 画直线 288
8.3.2 多条直线组成的图形 289
8.3.3 云彩图形 292
8.4 C语言课程设计 296
8.4.1 目的要求 296
8.4.2 实训时间 297
8.4.3 实训内容 297
8.4.4 参考题目 297
8.4.5 考核标准 298
附录A Turbo C2.0常用错误提示解释 299
参考文献 311