第一部分 C语言 1
第一章 C语言概述 1
1.1 C语言的起源 1
1.2 C是中级语言 1
1.3 C是结构语言 2
1.4 C是编程者的语言 3
1.5 编译程序与解释程序 4
1.6 C语言程序的形式 5
1.7 库函数和连接 6
1.8 分块编译 6
1.9 Turbo C的内存映射 7
1.10 常用术语一览表 7
第二章 变量、常数、运算符和表达式 8
2.1 标识符名 8
2.2 数据类型 8
2.3 类型修饰符 8
2.4 访问修饰符 10
2.5 变量的说明 10
2.6 局部变量 10
2.7 形式参数 12
2.8 全程变量 12
2.9 存储类型说明符 14
2.9.1 外部变量(extern) 14
2.9.2 静态变量(static variables) 15
2.9.3 静态局部变量(static local variables) 15
2.9.4 静态全程变量(static globle variables) 16
2.9.5 寄存器变量(register variables) 17
2.10 赋值语句 18
2.10.1 赋值中的类型转换 18
2.10.2 变量初始化 19
2.11 常量 19
2.11.1 控制字符常量 20
2.12 运算符 20
2.12.1 算术运算符 20
2.12.2 增1和减1运算符 21
2.12.3 关系运算符和逻辑运算符 22
2.12.4 按位运算符 23
2.12.5 “?”运算符 26
2.12.6 “&”和“*”运算符 26
2.12.7 编译状态运算符sizeof 27
2.12.8 逗号运算符 28
2.12.9 运算符“·”和“→” 28
2.12.10 方括号“〔〕”和圆括号“()” 29
2.12.11 运算符优先次序表 29
2.12.12 表达式 30
2.12.13 表达式中的类型转换 30
2.12.14 强制类型转换 31
2.12.15 空格和圆括号 31
2.12.16 C语言的简写 31
第三章 程序控制语句 33
3.1 C语言中的逻辑变量 33
3.2 C语言的语句 33
3.3 条件语句 33
3.4 if语句 33
3.4.1 if的嵌套形式 34
3.4.2 阶梯式if_else_if语句 35
3.4.3 “?”运算符 36
3.5 switch 37
3.5.1 嵌套式switch 40
3.6 循环 40
3.7 for 40
3.7.1 for循环的变体 41
3.7.2 无限循环 43
3.7.3 无循环体for循环 44
3.8 while 44
3.9 do/while 46
3.10 break 46
3.11 exit 48
3.12 continue 49
3.13 标号和goto语句 49
第四章 函数 51
4.1 返回语句 51
4.1.1 从函数返回 51
4.1.2 返回值 52
4.2 函数作用域规则 53
4.3 函数参数 53
4.3.1 赋值调用和赋地址调用 54
4.3.2 函数调用与指针 54
4.3.3 函数调用与数组 55
4.4 argc和argv——main()中的参数 58
4.5 函数返回非整型值 60
4.5.1 返回指针 61
4.6 函数原型 62
4.6.1 参数说明的现代风格与传统风格 63
4.7 函数递归(recursive) 63
4.8 指向函数的指针 64
4.9 补充问题 66
4.9.1 参数和通用函数 66
4.9.2 效率 67
第五章 数组 68
5.1 一维数组 68
5.2 传递一维数组给函数 69
5.2.1 字符串 70
5.3 二维数组 71
5.3.1 字符串数组 73
5.4 多维数组 74
5.5 数组与指针 75
5.6 数组空间的分配 76
5.7 数组的初始化 78
5.7.1 不定长数组的初始化 79
5.8 应用举例——井字游戏(Tic_Tac_Toe) 80
第六章 指针 84
6.1 指针是地址 84
6.2 指针变量 84
6.3 指针运算符 84
6.4 指针表达式 85
6.4.1 指针的赋值 85
6.4.2 指针的算术运算 86
6.4.3 指针比较 86
6.5 Turbo C动态分配函数 88
6.6 指针和数组 88
6.6.1 指向字符型数组的指针 89
6.6.2 指针数组 90
6.7 指向指针的指针 91
6.8 指针初始化 92
6.9 函数型指针 93
6.10 使用指针的一些问题 95
第七章 结构、联合、用户定义的类型和枚举 97
7.1 结构 97
7.1.1 访问结构元素 98
7.1.2 结构数组 99
7.1.3 实例 99
7.2 将结构传递给函数 104
7.2.1 将结构元素传递给函数 104
7.2.2 将整个结构传递给函数 105
7.3 结构指针 106
7.3.1 结构指针说明 106
7.3.2 使用结构指针 106
7.4 结构内部的数组和结构 109
7.5 位域 110
7.6 联合 112
7.7 枚举 113
7.8 使用sizeof来确保可移植性 115
7.9 使用typedef 115
第八章 输入、输出和磁盘文件 117
8.1 流(stream)和文件(file) 117
8.1.1 流的概念(stream) 117
8.1.2 文件(file) 118
8.2 概念和实际 118
8.3 控制台I/O 119
8.3.1 getche()和putchar()函数 119
8.3.2 gets()和puts()函数 120
8.4 控制台格式化I/O 121
8.4.1 printf()函数 121
8.4.2 scanf()函数 122
8.5 缓冲型I/O系统 124
8.5.1 文件指针 124
8.5.2 fopen()函数 125
8.5.3 putc()函数 126
8.5.4 getc()函数 126
8.5.5 fclose()函数 126
8.5.6 ferror()和rewind()函数 127
8.5.7 fopen(),getc(),putc()和fclose()函数的用法 127
8.5.8 getw()和putw()函数 129
8.5.9 fgets()和fputs()函数 129
8.5.10 fread()和fwrite()函数 129
8.5.11 fseek()和随机访问I/O 130
8.5.12 stdin,stdout和stderr 133
8.5.13 fprintf()和fscanf()函数 133
8.5.14 删除文件 135
8.6 非缓冲型I/O——UNIX型文件系统 135
8.6.1 open(),creat()和close()函数 136
8.6.2 write()和read()函数 137
8.6.3 unlink()函数 138
8.6.4 随机访问文件和lseek()函数 138
8.7 方法选择 140
第九章 Turbo C预处理指令和编译选择 141
9.1 Turbo C的预处理指令 141
9.2 #define指令 141
9.3 #error指令 143
9.4 #include指令 143
9.5 条件编译指令 144
9.5.1 #if,#else,#elif和#endif 144
9.5.2 #ifdef和#ifndef 146
9.6 #undef指令 147
9.7 #line指令 147
9.8 #pragma指令 147
9.9 预定义的宏替换名 148
第十章 Turbo C存储模式 150
10.1 8086系列微处理器 150
10.2 地址的计算 150
10.3 16位与20位指针 152
10.4 存储模式 152
10.4.1 微型模式(Tiny model) 153
10.4.2 小型模式(Small model) 153
10.4.3 中型模式(medium model) 153
10.4.4 紧凑模式(compact model) 153
10.4.5 大型模式(large model) 153
10.4.6 巨型模式(huge model) 153
10.4.7 模式的选择 153
10.4.8 编译程序的内存模式选择项 154
10.5 混合模式编程 154
10.5.1 far(远程) 154
10.5.2 near(近程) 155
10.5.3 huge(特大) 155
10.6 Turbo C的段修饰符 155
10.7 内存显示和修改程序实例 155
10.7.1 display_mem()函数 155
10.7.2 change-mem()函数 156
10.7.3 完整的内存显示和修改程序 156
第十一章 Turbo C的屏幕与图形功能 160
11.1 PC图形适配器及其模式的操作 160
11.2 字符屏幕函数 161
11.2.1 窗口 161
11.2.2 基本输入与输出 161
11.2.3 屏幕操作函数 162
11.2.4 字符属性控制 165
11.2.5 字符屏显状态函数 167
11.2.6 directvideo变量 167
11.2.7 一个简短的演示程序 168
11.3 Turbo C的图形函数 169
11.3.1 视口(viewport) 169
11.3.2 显示模式控制函数 169
11.3.3 基本图形函数 173
11.3.4 图形模式下的字符输出 175
11.3.5 图形模式状态函数 176
11.3.6 图形屏幕操作函数 177
第二部分 Turbo C环境 182
第十二章 Turbo C的集成编程环境 182
12.1 启动Turbo C 182
12.2 主菜单(main menu) 183
12.2.1 文件(File) 184
12.2.2 编辑(Edit) 184
12.2.3 运行(Run) 184
12.2.4 编译(Compile) 184
12.2.5 工程处理(Project) 185
12.2.6 选择设置(Options) 185
12.2.7 调试(Debug) 185
12.3 编辑窗和信息窗 186
12.4 热键(Hot key) 186
12.4.帮助(Help) 186
12.4.3 开关窗和缩放(Switching Windows and Zoom) 186
12.4.3 制作(Make) 186
12.4.4 Alt-x组合键(The Alt-x Key Combination) 186
12.5 TCINST程序 186
12.5.1 Turbo C目录 187
12.5.2 编辑程序命令 187
12.5.3 环境设置 188
12.5.4 显示模式 189
12.5.5 颜色 189
12.5.6 窗口尺寸重设置 189
12.5.7 退出 189
第十三章 Turbo C的文字编辑程序 190
13.1 编辑程序命令 190
13.2 调用编辑程序和输入字符 190
13.3 删除字符、词和行 190
13.4 字块的移动、拷贝和删除 192
13.5 光标移动命令 192
13.6 查找和查找并替换 192
13.7 标志设置和位置寻找 193
13.8 保存和装入你的文件 193
13.9 自动缩进方式 194
13.10 从磁盘文件中读写字块 194
13.11 查找配对定界符 194
13.12 其它编辑命令 195
13.13 带文件名调用Turbo C 195
13.14 编辑命令小结 195
第十四章 编译程序和连接程序选择项 197
14.1 集成开发环境选择项 197
14.2 编译程序选择项 197
14.2.1 存储模式(Model) 197
14.2.2 宏定义(Defines) 197
14.2.3 代码生成(Code Generation) 198
14.2.4 优化(Optimization) 199
14.2.5 源代码处理(Source) 200
14.2.6 出错信息(Error) 200
14.3 连接程序选择项(Linker Options) 202
14.3.1 映象文件(Map file) 202
14.3.2 初始化段(Initialize Segments) 202
14.3.3 缺省库(Default Libries) 202
14.3.4 警告重复符号(Warn Duplicate Symbols) 203
14.3.5 栈警告(Stack Warning) 203
14.3.6 大小写敏感连接(Case_Sensitive Link) 203
14.4 环境选择项(Environment Options) 203
14.5 目录选择项(Directories Options) 204
14.6 参数(Args) 204
14.7 保存和装入选择项(Saving and Loading Options) 204
14.7.1 系统设置文件TCCONFIG.TC 204
14.7.2 使用其它设置文件 204
14.8 Turbo C的命令行版本(Command Line Version) 205
14.8.1 使用命令行编译程序进行编译 205
14.8.2 文件名内容 208
14.9 TLINK:Turbo C的独立连接程序 208
14.9.1 连接Turbo C程序 209
14.9.2 连接选择项 209