第1章 C语言概述 1
1.1 为什么要学习C语言 1
1.1.1 C语言的历史 1
1.1.2 C语言的特点 2
1.2 C语言的一个简单实例 3
1.3 编辑、编译、连接、运行一个C语言程序 3
1.4 学习C语言所需的必备知识 4
1.4.1 数制 4
1.4.2 数制之间的转换 5
1.4.3 整数的原码、补码、反码表示 6
习题 6
2.1.1 关键词 7
2.1 C语言的词法记号 7
第2章 数据类型、运算符、表达式、赋值语句、输入输出 7
2.1.2 标识符 8
2.1.3 分隔符 8
2.2 数据类型 8
2.2.1 整型 8
2.2.2 浮点型 9
2.2.3 字符型 9
2.3 常量和变量 10
2.3.1 常量 10
2.3.2 变量 11
2.4 运算符和表达式 12
2.4.1 算术运算符和算术表达式 12
2.4.3 逻辑运算符和逻辑表达式 13
2.4.2 关系运算符和关系表达式 13
2.4.4 赋值运算符和赋值表达式 14
2.4.5 条件表达式和逗号表达式 14
2.4.6 类型转换 15
2.5 变量初始化和赋值语句 16
2.5.1 变量的初始化 16
2.5.2 赋值语句 17
2.6 数据输出 17
2.7 数据输入 21
2.8 程序实例 23
习题 26
第3章 Turbo C 2.0集成环境简介 29
3.1 Turbo C 2.0概述 29
3.2 TC集成开发环境 30
3.3 一个简单的例子 33
3.4 常用调试手段 40
3.5 菜单命令与快捷键简介 45
3.5.1 菜单简介 45
3.5.2 快捷键简介 47
习题 48
第4章 分支结构 49
4.1 语句概述 49
4.2 问题的引出 50
4.3 if语句 51
4.3.1 if语句的一般形式 51
4.3.2 if语句的缺省形式 53
4.3.3 较复杂的条件表达式 54
4.4 if语句的嵌套 55
4.4.1 嵌套的引出 55
4.4.2 算法和流程图 56
4.4.3 if语句嵌套形式的多样性 58
4.4.4 if与else的配对规则 59
4.4.5 嵌套举例 60
4.5 switch语句 62
4.6 程序实例 66
4.7 编程版式 69
习题 70
第5章 循环结构 73
5.1 while语句 73
5.2 do-while语句 76
5.3 for语句 78
5.3.1 for语句的一般形式 78
5.3.2 for语句形式的多样性 79
5.3.3 循环次数确定的情况 82
5.3.4 循环次数不确定的情况 84
5.4 循环的嵌套 86
5.5 几种循环的比较 88
5.6 break、continue、goto语句 90
5.6.1 break语句 90
5.6.2 continue语句 91
5.6.3 goto语句 91
5.7 程序实例 92
5.8 结构化程序设计 96
习题 98
第6章 函数、存储类和预处理程序 100
6.1 函数 100
6.1.1 引言 100
6.1.2 函数的定义 101
6.1.3 函数调用和参数传递 104
6.1.4 函数说明 105
6.1.5 函数的嵌套调用与递归调用 106
6.2 变量的作用域和生命期 109
6.2.1 问题的提出 109
6.2.2 auto变量 110
6.2.3 extern变量 112
6.2.4 static变量 113
6.2.5 register变量 114
6.2.6 存储类别小结 115
6.3 预处理程序 118
6.3.1 文件包含 118
6.3.2 宏替换 118
6.3.3 条件编译 120
习题 121
第7章 数组 124
7.1 问题的引出 124
7.2 一维数组 125
7.2.1 一维数组的说明、引用和存储 125
7.2.2 一维数组的初始化 127
7.2.3 一维数组的经典实例 128
7.3.1 二维数组的说明、引用和存储 133
7.3 二维数组 133
7.3.2 二维数组的初始化 135
7.3.3 二维数组的经典实例 136
7.4 字符数组与字符串 138
7.4.1 字符数组的说明与初始化 138
7.4.2 字符串 139
7.4.3 字符数组的经典实例 140
7.5 数组应用实例 142
7.5.1 排序 142
7.5.2 二分查找 145
7.5.3 用高斯消去法求解线性方程组 147
7.5.4 一个数模求解实例 149
习题 153
第8章 指针 157
8.1 地址和指针 157
8.1.1 地址 157
8.1.2 指针 158
8.2 指针变量 158
8.2.1 指针变量的说明 158
8.2.2 指针变量的运算 159
8.3 指针作为函数参数 160
8.3.1 问题的提出 160
8.3.2 指针的解决方法 161
8.3.3 程序实例 162
8.4.1 指针与数组的关系 163
8.4 指针与数组 163
8.4.2 用指针形式参数对应数组名实际参数 165
8.4.3 程序实例 167
8.5 指针的运算 168
8.6 字符指针 169
8.6.1 用字符指针处理字符串 169
8.6.2 字符串处理函数 171
8.6.3 字符数组和字符指针处理字符串时的区别 173
8.7 指针数组和指向指针的指针 176
8.7.1 指针数组 176
8.7.2 指向指针的指针 176
8.7.3 指向指针的指针应用 177
8.7.4 带形式参数的main函数 180
8.8 指向函数的指针 181
8.9 程序实例 183
习题 187
第9章 常用库函数和软件开发概述 189
9.1 Turbo C常用库函数 189
9.1.1 输入输出 189
9.1.2 数学计算 190
9.1.3 数据类型测试和转换 192
9.1.4 其他 194
9.1.5 图形处理 195
9.2 软件开发概述 201
9.2.1 中小规模软件开发步骤 201
9.2.2 衡量软件质量的几个主要准则 201
9.3.1 编译程序能查出的错误 203
9.3 使用C语言时常犯的错误 203
9.3.2 编译程序不能发现的错误 204
9.4 程序实例 205
习题 210
第10章 结构和杂类 211
10.1 结构 211
10.1.1 结构类型的定义 211
10.1.2 结构变量的说明和引用 212
10.1.3 结构数组 212
10.1.4 结构与函数 215
10.2.1 指向结构变量的指针 216
10.2 指针在结构中的应用 216
10.2.2 用结构指针作为函数参数 217
10.2.3 链表 218
10.3 杂类 221
10.3.1 位运算 221
10.3.2 位段 223
10.3.3 联合 223
10.3.4 枚举 225
10.3.5 类型定义 225
10.3.6 多文件 226
10.4 程序实例 227
习题 232
11.1.1 文件的概念 235
11.1.2 文件的分类 235
第11章 文件 235
11.1 文件概述 235
11.1.3 缓冲文件系统和非缓冲文件系统 236
11.2 缓冲文件系统 236
11.2.1 缓冲文件系统基本概念 236
11.2.2 缓冲文件的打开和关闭 237
11.2.3 缓冲文件的读和写 240
11.2.4 缓冲文件的定位 244
11.2.5 综合实例 247
11.3 非缓冲文件系统 250
11.3.1 非缓冲文件系统基本概念 250
11.3.3 非缓冲文件的打开和关闭 251
11.3.4 非缓冲文件的读和写 251
11.3.2 非缓冲文件的建立 251
11.3.5 非缓冲文件的定位 252
习题 253
第12章 综合实例 254
12.1 多级菜单 254
12.1.1 程序说明 254
12.1.2 程序清单 258
12.2 图形格式转换程序 265
12.2.1 PCX和BMP文件格式 265
12.2.2 程序清单 267
附录 270
附录1 ASCII码表 270
附录2 C语言运算符的优先级和结合性 272
附录3 TC编译、连接时的错误和警告信息 273
参考文献 278