第1章 概述 1
1.1 计算机程序设计与C语言 1
1.2 程序设计语言的发展 1
1.2.1 第一代计算机语言:机器语言 1
1.2.2 第二代计算机语言:汇编语言 2
1.2.3 高级语言 3
1.3 C语言的主要发展阶段 4
1.4 C语言的特点 5
1.5 C语言源程序的结构和书写格式 6
1.5.1 C语言源程序的结构 6
1.5.2 C语言源程序的书写 7
1.6 C语言的语句和程序的组成 7
1.6.1 C语言语句的概念 7
1.6.2 C语言程序的组成 7
1.6.3 C语言的基本语句 8
1.6.4 输出、输入语句 9
1.6.5 C语言源程序实例 9
第2章 Turbo C的设置和C程序的编译链接 11
2.1 Turbo C 2.0简介 11
2.1.1 Turbo C 2.0的特点 11
2.1.2 Turbo C 2.0开发环境 11
2.2 Turbo C 2.0使用的秘诀 12
2.2.1 Turbo C 2.0文件的配置 12
2.2.2 Turbo C的启动和退出 13
2.2.3 Turbo C窗口的改变 14
2.2.4 Turbo C的窗口显示方式 15
2.2.5 Turbo C的设置 15
2.3 C语言源程序的编写、编译、链接、运行和查看 18
2.3.1 Turbo C窗口的各个区域 18
2.3.2 C语言源程序的编写 19
2.3.3 C语言源程序的编译和链接 20
2.3.4 C语言源程序的运行和查看 20
2.4 实战C程序的开发 20
第3章 C语言的基础知识和数据类型 27
3.1 C语言中所用的数字 27
3.1.1 数制 27
3.1.2 数制的转换 28
3.1.3 数制技巧 29
3.1.4 计算机常用数据 29
3.2 C语言的字符集和ASCII码表 30
3.2.1 字符集基本知识 30
3.2.2 ASCII码 31
3.3 C语言中字符的表示方法 32
3.3.1 直接表示法 32
3.3.2 ASCII码转义表示法 32
3.3.3 字符转义表示法 33
3.4 C语言的基本词法 33
3.4.1 保留字 33
3.4.2 标识符 34
3.4.3 C语言的词汇分类 34
3.5 C语言的数据类型 35
3.5.1 基本数据类型简介 35
3.5.2 非基本数据类型简介 35
3.5.3 数据类型总汇 36
3.5.4 变量和常量 36
3.6 整型数据 37
3.6.1 整型常量 37
3.6.2 有符号整型变量 38
3.6.3 无符号型变量 38
3.6.4 整型变量 38
3.7 字符型数据 40
3.7.1 字符型常量 40
3.7.2 字符型变量 40
3.8 实型数据 41
3.8.1 实型常量 41
3.8.2 实型变量 42
3.8.3 基本数据类型表 43
3.9 C语言中的原码、反码和补码 44
3.9.1 补码的概念 44
3.9.2 C语言中负数补码的计算 44
第4章 运算符和表达式 47
4.1 算术运算符 47
4.1.1 运算法则 47
4.1.2 算术运算符的共性 48
4.1.3 算术表达式格式、运算对象、结果的数据类型 48
4.1.4 算术运算口诀 48
4.1.5 算术表达式的应用 49
4.1.6 复合表达式举例 49
4.2 关系运算符 50
4.2.1 运算法则 50
4.2.2 关系运算符的共性 50
4.2.3 关系表达式实例 51
4.3 逻辑运算符 52
4.3.1 逻辑运算符及其特点 52
4.3.2 逻辑运算规则 52
4.3.3 逻辑表达式 52
4.3.4 实例 53
4.3.5 逻辑运算符两边表达式的运算属性 54
4.4 位移运算符 55
4.4.1 位移运算符的概念 55
4.4.2 左移运算符 56
4.4.3 右移运算符 56
4.4.4 位移运算符的共性 57
4.5 位逻辑运算符 59
4.5.1 位逻辑运算符简介 59
4.5.2 位逻辑运算规则 59
4.5.3 位与、位加、位或 60
4.5.4 优先权和结合性 60
4.5.5 某数和全1、全0二进制数的位逻辑运算 61
4.6 赋值、自反赋值运算符 62
4.6.1 基本赋值运算符(赋值运算符) 62
4.6.2 算术自反赋值运算符 62
4.6.3 位自反赋值运算符 63
4.6.4 赋值运算符、自反赋值运算符的共性 63
4.7 指针、指向成员运算符 64
4.7.1 指针运算符 64
4.7.2 指向成员运算符 64
4.7.3 指针运算符和指向成员运算符的共性 64
4.8 逗号运算符 64
4.8.1 逗号运算符理论 64
4.9 强制转换运算符 65
4.9.1 基本知识 65
4.10 条件运算符 66
4.10.1 基本知识 66
4.10.2 条件表达式在计算过程中的特点 67
4.11 求字节数运算符 68
4.11.1 基本知识 68
4.12 符号运算符 69
4.12.1 正号 69
4.12.2 负号 69
4.12.3 共性 69
4.13 递增递减运算符 70
4.13.1 递增运算符(++) 70
4.13.2 递减运算符(--) 70
4.13.3 两递运算符的注意事项 71
4.14 不同数据类型数据的混合运算 72
4.14.1 数据类型的自动转换 72
4.14.2 强制转换 75
4.15 C语言中的常用表达式 76
4.15.1 解决数学问题的C语言表达式 76
4.15.2 表达式技巧 77
4.16 运算符优先权总结 78
4.16.1 运算符优先、结合顺序表 78
4.16.2 基本概念 78
4.16.3 运算符优先、结合顺序表的使用 80
第5章 程序设计基础 81
5.1 结构化程序设计方法 81
5.1.1 算法和算法的描述 81
5.1.2 C语言中程序结构的分类 81
5.1.3 用于判断的表达式 82
5.2 字符输入输出函数 82
5.2.1 字符输入函数 82
5.2.2 字符输出函数 83
5.3 格式输入输出函数 84
5.3.1 格式输入函数 84
5.3.2 格式输出函数 89
5.3.3 输入输出格式符 90
5.4 格式符中占位数的作用 91
5.4.1 在整型输入格式符中加入占位数m 92
5.4.2 在字符型输入格式符中加入占位数m 92
5.4.3 在实型输出格式符中加入占位数m.n 94
5.4.4 在字符串输出格式符中加入占位数m.n 95
5.4.5 输出格式符中占位数作用记忆法 96
5.4.6 输入格式符中占位数的作用 97
5.5 顺序结构程序 99
5.5.1 赋值语句 99
5.5.2 表达式语句 100
5.5.3 函数调用语句 100
5.5.4 复合语句 101
5.6 选择结构程序 101
5.6.1 单分支选择结构 101
5.6.2 双分支选择结构 103
5.6.3 多分支选择结构 107
5.7 顺序、选择结构程序实例 112
第6章 循环结构程序设计 115
6.1 当循环 115
6.1.1 当循环的流程 115
6.1.2 当循环的实现方式 115
6.1.3 while语句的循环过程 116
6.1.4 while语句的注意事项 116
6.2 直到循环 117
6.2.1 直到循环的流程 117
6.2.2 直到循环的实现方式 117
6.2.3 do while语句的循环过程 118
6.2.4 注意事项 118
6.3 次数循环 119
6.3.1 次数循环的流程 119
6.3.2 次数循环的实现方式 120
6.3.3 for语句的循环过程 120
6.3.4 for语句的注意事项 120
6.3.5 非标准for语句 121
6.4 改变循环走向的语句 122
6.4.1 强制结束循环语句break 123
6.4.2 强制继续循环语句continue 124
6.4.3 转向语句goto 126
6.5 循环程序实例解说 127
第7章 数组 135
7.1 一维数组 135
7.1.1 一维数组的定义 135
7.1.2 一维数组元素的引用 135
7.1.3 一维数组的初始化 136
7.1.4 一维数组的输入输出 137
7.2 二维数组 138
7.2.1 二维数组的定义 139
7.2.2 二维数组元素的引用 139
7.2.3 二维数组的初始化 140
7.2.4 二维数组的初始化方式 140
7.2.5 二维数组的输入输出和嵌套for循环语句 141
7.3 字符数组 143
7.3.1 字符数组的初始化 143
7.3.2 字符数组的赋值 148
7.3.3 字符数组的输入输出 149
7.4 字符串 151
7.4.1 字符串概念 151
7.4.2 字符串和一维数组 151
7.4.3 字符串和二维字符数组 155
7.5 常用字符串处理系统函数 158
7.5.1 字符串输入函数 159
7.5.2 字符串输出函数 159
7.5.3 测试字符串长度函数 160
7.5.4 字符串复制函数 160
7.5.5 字符串比较函数 161
7.5.6 字符串连接函数 162
7.6 排序问题 163
7.6.1 选择排序法 163
7.6.2 冒泡排序法 165
7.6.3 下沉排序法 167
第8章 指针 169
8.1 指针和指针变量 169
8.1.1 指针和指针变量的概念 169
8.1.2 内存单元和地址 169
8.1.3 变量的地址 170
8.1.4 数组的地址 170
8.1.5 与指针有关的运算符 171
8.2 指针变量的初始化、定义和赋值 171
8.2.1 指针变量的初始化 172
8.2.2 指针变量的定义和赋值 172
8.2.3 取地址运算符和指针运算符的进一步讨论 173
8.3 指针变量的引用 175
8.3.1 指向变量的指针变量的引用 175
8.3.2 指向一维数组的指针变量的引用 176
8.3.3 指向字符串的指针变量 180
8.3.4 指针变量的引用程序分析 183
8.4 指针数组 186
8.4.1 指针数组的定义 186
8.4.2 指针数组的赋值 187
8.4.3 指针数组元素的使用 187
第9章 函数 189
9.1 函数的概念和模块化设计方法 189
9.1.1 函数及其相关的概念 190
9.1.2 函数的分类 190
9.1.3 函数的定义 191
9.1.4 函数的定义格式 193
9.1.5 函数的调用 194
9.1.6 被调函数声明 195
9.1.7 模块化程序设计方法 196
9.2 函数调用时的数据传递方法 196
9.2.1 函数的形参和实参的进一步讨论 197
9.2.2 形参与实参传递数据 197
9.2.3 利用返回值传递数据 202
9.2.4 全局变量的数据传递方式 202
9.2.5 全局变量的声明 203
9.3 函数的嵌套调用 204
9.3.1 函数的嵌套调用 204
9.3.2 嵌套调用中程序的运行过程 204
9.4 函数的递归调用 206
9.4.1 函数的递归调用 206
9.4.2 递归过程 207
9.4.3 回溯过程 208
9.4.4 递归调用程序结构 208
9.4.5 基本递归程序实例 210
第10章 不同文件之间的函数调用 215
10.1 文件和函数 215
10.1.1 文件包含命令 215
10.1.2 不同文件之间的函数调用中的基本概念 216
10.1.3 被包含文件位置和引用格式 216
10.1.4 不同文件之间的函数调用实例 217
10.1.5 文件介绍 218
10.2 变量的存储类型 222
10.2.1 变量的属性 222
10.2.2 PC机中的数据传送 222
10.2.3 变量的定义 222
10.2.4 变量的存储类型 223
10.2.5 变量的生存期和作用域 224
10.2.6 使用全局变量,在两个编译单位之间进行数据传递 228
10.3 系统函数之一:常用数学函数 229
10.3.1 求绝对值函数 230
10.3.2 求平方根函数 230
10.3.3 求常用对数 230
10.3.4 求自然对数 230
10.3.5 求指数 230
10.3.6 求10X次方 231
10.3.7 求xY次方 231
10.3.8 求小于实数x的的最大整数 231
10.3.9 求大于实数x的的最小整数 231
10.3.10 求正弦函数 231
10.3.11 求余弦函数 231
10.3.12 求正切函数 232
10.4 系统函数之二:常用字符处理函数 232
10.4.1 判断数字字符 232
10.4.2 判断英文字母 233
10.4.3 判断大写英文字母 233
10.4.4 判断小写英文字母 234
10.4.5 整数转ASCII代码 234
10.4.6 大写字母转小写字母 235
10.4.7 小写字母转大写字母 235
10.5 系统函数之三:常用字符串类型转换函数 237
10.5.1 字符串转整数 237
10.5.2 字符串转实数 238
10.6 系统函数之四:常用dos函数 239
10.6.1 发出鸣笛声 239
10.6.2 产生延时 239
10.6.3 中止鸣笛声 239
10.7 系统函数之五:常用随机数函数 240
10.7.1 随机数发生器初始化 240
10.7.2 生成随机数 240
第11章 结构型 243
11.1 结构型的概念和定义方法 243
11.1.1 构造类型、结构型的概念 243
11.1.2 基本数据类型和结构型的比较 243
11.1.3 现实生活中的结构型 243
11.1.4 结构型的定义 244
11.1.5 嵌套式结构型 245
11.2 结构型变量的定义和成员的引用 246
11.2.1 结构型变量的定义和初始化 246
11.2.2 结构型变量成员的引用 250
11.3 结构型数组的定义和数组元素成员的引用 252
11.3.1 结构型数组的定义和初始化 252
11.3.2 结构型数组元素成员的引用 255
11.3.3 结构型数组元素成员地址的引用 257
11.4 指向结构型数据的指针变量的定义和使用 259
11.4.1 结构型指针变量的定义 259
11.4.2 指向结构型数组的指针变量 260
11.5 结构型数据在函数之间的传递 261
11.5.1 形参是数组,实参是数组名,结构型参数传递 261
11.5.2 形参是数组,实参是指针,结构型参数传递 264
11.5.3 形参是指针,实参是指针,结构型参数传递 265
11.5.4 用全局变量传递结构型参数 267
11.5.5 用返回值传递结构型参数 269
11.5.6 用值传递方式传递结构型参数 270
11.6 日期时间系统函数 272
11.6.1 日期系统函数 272
11.6.2 系统时间函数 274
第12章 自定义型、共用体和枚举型 277
12.1 用户自定义类型 277
12.1.1 基本数据类型符的自定义 277
12.1.2 数组类型的自定义 279
12.1.3 结构型的自定义 280
12.1.4 指针型的自定义 281
12.2 共用体 282
12.2.1 共用体的定义 282
12.2.2 共用体的引用方法 283
12.2.3 共用体的特点 285
12.3 枚举型 287
12.3.1 枚举型的定义 287
12.3.2 枚举型的引用方法 288
12.3.3 枚举型的应用 290
第13章 文件 293
13.1 文件概述 293
13.1.1 文件 293
13.1.2 磁盘文件名 293
13.1.3 磁盘和路径 293
13.1.4 相对路径的描述 294
13.1.5 在C语言程序中的分割符和路径表示法 295
13.2 WINDOWS系统中进入DOS环境 296
13.2.1 WINDOWS系统中进入DOS环境的方法 296
13.2.2 建立用户文件夹和文件 298
13.2.3 改变当前所在位置的命令 298
13.2.4 查看当前文件夹中的文件 299
13.2.5 运行文件 300
13.2.6 查看文本文件内容 301
13.3 磁盘文件的处理 301
13.3.1 磁盘文件的打开和关闭 301
13.3.2 缓冲文件系统和非缓冲文件系统 302
13.3.3 磁盘文件的分类 302
13.3.4 文件内部指针 303
13.3.5 设备文件 303
13.3.6 文件结构型和指针 303
13.4 与文件相关的系统函数简介 304
13.4.1 与文件相关的系统函数 304
13.4.2 与文件相关的系统函数简介 304
13.4.3 文件打开函数的mode参数 306
13.4.4 标准设备文件的打开与关闭 307
13.5 与文件相关的系统函数及应用 307
13.5.1 打开文件函数 307
13.5.2 关闭文件函数 308
13.5.3 文件尾测试函数 309
13.5.4 写字符函数 309
13.5.5 读字符函数 311
13.5.6 写字符串函数 313
13.5.7 读字符串函数 315
13.5.8 写数据函数 316
13.5.9 读数据函数 317
13.5.10 指向文件在什么位置函数 318
13.5.11 文件头定位函数 319
13.5.12 文件随机定义函数 319
13.6 文件应用程序分析 320
13.6.1 将一系列字符放入文件中 320
13.6.2 从文件中取出一个字符串显示在屏幕上 321
13.6.3 字符、字符串读写函数的代换 321
13.6.4 文件内部指针的定位 322
13.6.5 通过程序向文件写入字符 323
13.6.6 显示文件全文的字符 323
13.6.7 从文件中输出若干等长字符串 323
13.6.8 从文件中输出若干不等长字符串 324
13.6.9 文件合成 325
13.6.10 通过结构型将学生信息存入一个二进制文件 327
13.6.11 实现对文件的加密和解密 329
第14章 综合实例解析 331
附录1 ASCII代码表 349
附录2 ASCII码中不可显示字符的作用 351
附录3 Turbo c 2.0常用系统函数表 352
参考文献 354