第1章 简单的C程序设计 1
1.1 几个简单的C程序 2
1.2 C语言常用符号 9
1.2.1 C语言的关键字 9
1.2.2 标识符 9
1.2.3 其他的符号 10
1.3 C语言程序的上机调试步骤 10
1.4 Turbo C集成开发环境 11
1.4.1 Turbo C 2.0的安装 11
1.4.2 Turbo C 2.0集成化操作界面 12
1.4.3 Turbo C 2.0简单操作 12
1.5.1 C语言的发展过程 20
1.5 C语言的概况 20
1.5.2 C语言的特点 21
习题一 22
第2章 数据类型、运算符和表达式 23
2.1 常用的进位制 24
2.1.1 二进制、八进制和十六进制数 24
2.1.2 十、二进制、八进制和十六进制数之间的换算 25
2.2 数与字符在计算机内存中的表示方法 26
2.2.1 机器数和真值 26
2.2.2 原码、反码和补码 26
2.2.3 定点数和浮点数 27
2.3.1 整型常量 28
2.3 常量 28
2.2.4 字符编码 28
2.3.2 实型常量 29
2.3.3 字符常量 30
2.3.4 字符串常量 31
2.3.5 符号常量 31
2.4 变量 32
2.4.1 整型变量 32
2.4.2 实型变量 35
2.4.3 字符型变量 37
2.5 常用运算符与表达式 38
2.5.1 算术运算符与算术表达式 38
2.5.3 强制类型转换运算符 40
2.5.2 赋值运算符和赋值表达式 40
2.5.4 加一、减一运算符 41
2.5.5 逗号运算符和逗号表达式 41
2.5.6 位运算 42
2.6 基本输入输出操作的实现 43
2.6.1 字符的输入和输出 43
2.6.2 有格式的输入与输出 44
习题二 50
第3章 算法与程序设计基础 57
3.1 算法概述 58
3.1.1 算法的概念 58
3.1.2 算法的特性 59
3.2.1 自然语言表示法 60
3.2 算法的常用表示方法 60
3.2.2 流程图 61
3.2.3 N-S结构流程图 62
3.2.4 伪代码表示法 63
3.2.5 用计算机语言实现算法 64
3.3 结构化程序设计方法 65
3.4 C语句概述 66
3.5 选择结构程序设计 68
3.5.1 关系运算符和关系表达式 68
3.5.2 逻辑运算符和逻辑表达式 69
3.5.3 if语句 70
3.5.4 if语句的嵌套 74
3.5.6 switch语句 77
3.5.5 条件运算符和条件表达式 77
3.5.7 选择结构程序设计举例 79
3.6 循环程序设计 83
3.6.1 goto语句以及用goto语句构成的循环 83
3.6.2 while语句 84
3.6.3 do-while语句 85
3.6.4 for语句 87
3.6.5 循环的嵌套 89
3.6.6 break语句 90
3.6.7 continue语句 91
3.6.8 循环程序设计举例 93
3.7 综合程序应用举例 96
习题三 101
第4章 函数 105
4.1 函数概述 106
4.2 函数的定义 107
4.3 函数的调用与返回值 108
4.3.1 实参与形参的区分 108
4.3.2 函数的调用 110
4.3.3 对被调用函数的声明 111
4.3.4 函数的返回语句与返回值 113
4.4 函数的参数传递方式 115
4.4.1 值传递方式 115
4.4.2 地址传递方式 115
4.5.1 函数的嵌套调用 117
4.5 函数的嵌套与递归 117
4.5.2 函数的递归调用 118
4.6 分程序 120
4.7 变量的作用域 121
4.7.1 局部变量 122
4.7.2 全局变量 122
4.8 变量的生存期 124
4.8.1 自动变量(auto) 124
4.8.2 静态变量(static) 125
4.8.3 外部变量(extern) 126
4.8.4 寄存器变量(register) 127
4.9.1 内部函数 128
4.9 内部函数和外部函数 128
4.9.2 外部函数 129
4.10 编译预处理命令 130
4.10.1 宏定义 130
4.10.2 文件包含 133
4.10.3 条件编译 134
习题四 135
第5章 指针与数组类型 143
5.1 指针的概念 144
5.2 指针变量的定义与使用 145
5.2.1 定义指针变量 145
5.2.2 指针变量的使用 146
5.2.3 指针变量作为函数参数 148
5.2.4 指向函数的指针变量 150
5.3 数组的概念 152
5.4 数组变量的定义与使用 152
5.4.1 一维数组的定义 152
5.4.2 一维数组的使用 153
5.4.3 一维数组作为函数的参数 155
5.5 二维数组与二级指针 157
5.5.1 二维数组 157
5.5.2 二级指针 160
5.6 动态内存分配与动态数组 163
5.7.1 字符串的表示形式 166
5.7 字符数组与字符串函数 166
5.7.2 字符串函数 170
5.8 main函数的参数与void指针 172
习题五 174
第6章 结构与联合类型 177
6.1 结构与联合类型的概述 178
6.2 结构变量的定义与使用 180
6.2.1 结构变量的定义 180
6.2.2 结构变量的使用 182
6.3 结构指针与结构数组 185
6.3.1 结构指针 185
6.3.2 结构数组 188
6.4.1 链表及其实现 191
6.4 链表及其操作 191
6.4.2 链表的基本操作 195
6.4.3 链表的应用 199
6.5 位域与联合类型 203
6.6 枚举类型 206
习题六 209
第7章 文件 211
7.1 文件概述 212
7.1.1 文件的概念 212
7.1.2 文件的分类 212
7.1.3 文件类型指针 213
7.1.4 文件的处理过程 214
7.2.1 文件的打开函数 216
7.2 文件的打开和关闭 216
7.2.2 文件的关闭函数 217
7.3 文件的顺序读写 217
7.3.1 文本文件的顺序读写 217
7.3.2 二进制文件的顺序读写 227
7.4 文件的定位与随机读写 230
7.4.1 rewind()函数 231
7.4.2 fseek()函数 231
7.4.3 ftell()函数 233
7.5 文件状态检查函数 233
7.5.1 文件读/写结束检查函数feof() 233
7.5.3 文件出错复位函数clearerr() 234
7.5.2 文件出错检查函数ferror() 234
7.6 文件输入/输出小结 235
习题七 235
第8章 面向对象技术与C++ 239
8.1 C++的起源和特点 240
8.2 简单的C++程序 240
8.3 C++程序的上机实现 242
8.4 C++的输入和输出 244
8.4.1 用cout输出 244
8.4.2 用cin输入 244
8.5 设置函数参数的默认值 245
8.6 内联函数 247
8.7 重载函数 248
8.8 变量的引用 251
8.8.1 引用的概念 251
8.8.2 引用作函数参数 253
8.9 面向对象的概念和思想 254
8.9.1 面向对象的概念 254
8.9.2 面向对象方法与结构化方法的比较 255
8.9.3 面向对象系统的特性 256
8.10 类和对象 257
8.10.1 类的定义 257
8.10.2 对象的定义 260
8.10.3 对象的成员表示 260
8.11 构造函数 262
8.12 析构函数 265
8.13 继承与派生类 267
8.13.1 继承与派生类的概念 267
8.13.2 派生类的定义格式 268
8.13.3 公有派生类 270
8.13.4 私有派生类 271
8.13.5 保护成员 271
8.13.6 派生类的构造函数 272
习题八 274
附录A 美国标准信息交换码表 277
附录B Visual C++集成环境下调试标准C程序的方法 281
附录C 常用库函数介绍 285
附录D C语言编译错误信息 305