1.1 程序设计基础知识 1
1.1.1 程序与程序设计语言 1
第1章 C语言程序设计概述 1
1.1.2 程序算法描述 3
1.1.3 程序的3种基本结构 8
1.2 C语言的历史及特点 9
1.2.1 C语言的产生与发展概况 9
1.2.2 C语言的特点 9
1.3.1 C语言源程序的组成 10
1.3 C语言源程序的组成、书写规则与风格 10
1.3.2 C语言源程序书写规则与风格 13
1.4 C语言的字符集、标识符与关键字 14
1.4.1 C语言的基本字符集与转义字符 14
1.4.2 C语言的标识符 15
1.4.3 C语言的关键字 16
1.5 C语言程序的开发过程与开发环境 16
1.5.1 C语言程序的开发过程 16
1.5.2 Turbo C 2.0集成开发环境简介 17
1.5.3 Visual C++6.0开发环境简介 21
小结 23
习题 24
第2章 C语言的数据类型与运算 26
2.1 C语言的数据类型分类 26
2.11 数据类型的基本概念 26
2.1.2 数据类型的分类 26
2.2.3 字符型 28
2.3.1 整型常量 28
2.3 常量 28
2.2.1 整型 28
2.2.2 实型 28
2.2 基本数据类型 28
2.3.2 实型常量 29
2.3.3 字符常量 30
2.3.4 字符串常量 31
2.3.5 直接常量与符号常量 31
2.4.1 变量的含义与分类 32
2.4 变量 32
2.4.2 整型变量 33
2.4.3 实型变量 34
2.4.4 字符变量 35
2.4.5 变量的定义与赋值 37
2.5 运算符与表达式概述 38
2.5.1 运算符与表达式的分类 38
2.5.2 运算符的优先级与结合性 39
2.6 算术运算符与算术表达式 41
2.6.1 基本算术运算符 41
2.6.2 负值运算符、自增运算符与自减运算符 41
2.6.3 算术表达式 44
2.7 赋值运算符与赋值表达式 44
2.7.1 基本赋值运算符 44
2.7.2 复合赋值运算符 45
2.7.3 赋值表达式 46
2.8 逻辑运算符与逻辑表达式 46
2.8.1 逻辑运算符 47
2.8.2 逻辑表达式 48
2.9 关系运算符与关系表达式 49
2.9.1 关系运算符 49
2.9.2 关系表达式 50
2.10 位运算符与位运算表达式 51
2.10.1 位运算符与位运算 51
2.10.2 位运算赋值运算符 54
2.10.3 位运算表达式 54
2.11.1 条件运算符和条件表达式 55
2.11 其他运算符与表达式 55
2.11.2 逗号运算符和逗号表达式 56
2.11.3 求字节运算符 57
2.12 不同类型数据的混合运算与类型转换 58
2.12.1 混合运算与数据类型转换的分类 58
2.12.2 自动转换 58
2.12.3 赋值转换 60
2.12.4 强制转换 61
习题 62
小结 62
第3章 C语言基本语句和顺序结构程序设计 64
3.1 C语言基本语句 64
3.1.1 流程控制语句 64
3.1.2 表达式语句 66
3.1.3 函数调用语句 66
3.1.4 空语句 67
3.1.5 复合语句 67
3.2 数据输入与输出 67
3.2.1 格式输入与输出 67
3.2.2 字符数据输入与输出 73
3.3 顺序结构程序举例 74
小结 76
习题 76
第4章 选择结构程序设计 79
4.1 选择结构的需求实例 79
4.2.1 if语句的3种形式与使用 80
4.2 if语句 80
4.2.2 嵌套if语句的二义性与解决方法 83
4.3 用switch语句实现选择 85
4.4 用条件运算符实现选择 88
4.5 几种选择结构实现方法的比较 88
4.6 选择结构程序举例 91
小结 93
习题 93
5.1 while语句 96
第5章 循环结构程序设计 96
5.2 do...while语句 97
5.3 for语句 99
5.4 break、continue、goto语句 101
5.4.1 break语句 101
5.4.2 continue语句 102
5.4.3 goto语句 103
5.5 循环的嵌套 104
5.6 复合结构程序举例 104
小结 108
习题 109
6.1 概述 112
6.1.1 数组应用需求实例 112
第6章 数组 112
6.1.2 数组的概念与分类 113
6.1.3 数组名的特殊意义 113
6.2 一维数组 113
6.2.1 一维数组的定义 114
6.2.2 一维数组的初始化 114
6.2.3 一维数组的引用 115
6.2.4 一维数组程序举例 116
6.3 多维数组 119
6.3.1 多维数组的定义 119
6.3.2 多维数组的初始化 120
6.3.3 多维数组的引用 120
6.3.4 多维数组程序举例 121
6.4.1 字符数组的定义 123
6.4.2 字符数组的初始化 123
6.4 字符数组与字符串 123
6.4.3 字符数组的引用 124
6.4.4 字符数组的输入与输出 125
6.4.5 字符串的特殊性 125
6.4.6 常用字符串处理函数 125
6.4.7 字符数组应用程序举例 129
小结 130
习题 130
7.1.1 函数应用的需求举例 134
7.1 概述 134
第7章 函数 134
7.1.2 函数的概念与意义 135
7.1.3 模块化程序设计与函数 136
7.1.4 C语言函数的分类 136
7.2 函数的定义 136
7.2.1 函数的组成和函数定义的一般形式 136
7.2.2 函数的类型与函数值 139
7.3 有参函数的参数与参数值传递 141
7.3.1 形式参数与实际参数 141
7.3.2 各种类型的实参 142
7.3.3 参数值的传递 146
7.4 函数的调用 148
7.4.1 函数调用的一般形式 148
7.4.2 函数调用的方式 149
7.4.3 库函数的调用 149
7.4.4 函数原型与自定义函数的调用 150
7.5 函数的嵌套调用 152
7.5.1 函数嵌套调用的过程 152
7.5.2 函数嵌套调用程序举例 153
7.6 函数的递归调用 154
7.6.1 递归的概念、过程与优缺点 154
7.6.2 函数递归调用程序设计举例 157
7.7 函数应用程序举例 160
7.7.1 无参函数应用程序设计举例 160
7.7.2 有参函数应用程序设计举例 161
7.8 变量的作用域、生存期、存储类别及其声明 162
7.8.1 概述 162
7.8.2 局部变量和全局变量及其作用域 163
7.8.3 动态存储变量和静态存储变量及其生存期 165
7.8.4 变量声明与变量定义的区别 172
7.9 内部函数与外部函数 173
7.9.1 内部函数 173
7.9.2 外部函数 174
7.9.3 外部函数应用程序举例 175
7.10 编译预处理 176
7.10.1 文件包含 176
7.10.2 宏定义 177
7.10.3 条件编译 179
小结 181
习题 181
第8章 指针 185
8.1 概述 185
8.1.1 指针应用的需求实例 185
8.1.2 变量地址、指针、指针变量的概念 187
8.1.3 指针变量的定义与赋值规则 187
8.1.4 地址运算符和指针运算符 189
8.1.5 指针变量运算及注意事项 190
8.2 指针与简单变量 191
8.2.1 指向简单变量的指针变量 191
8.2.2 指针变量作为函数的参数 191
8.2.3 程序举例 193
8.3 指针与一维数组 195
8.3.1 指向一维数组的指针 195
8.3.2 指向一维数组的指针变量的引用 196
8.3.3 用数组名或指针变量作为函数的参数 197
8.3.4 指向一维数组的指针变量的程序举例 199
8.4 指针与多维数组 201
8.4.1 二维数组各元素的地址及值的表示方法 201
8.4.2 指向二维数组的指针变量的引用 202
8.4.3 指向二维数组的指针变量作函数参数 203
8.4.4 指向二维数组的指针变量的程序举例 205
8.5 指针与字符串 206
8.5.1 指向字符串指针的定义与赋值 206
8.5.2 指向字符串指针变量的引用 207
8.5.3 用指向字符串的指针变量作为函数的参数 208
8.5.4 指向字符串指针变量的程序举例 210
8.6 指针与函数 211
8.6.1 指向函数的指针的定义与赋值 211
8.6.2 用指向函数的指针变量作为函数的参数 212
8.6.3 用指向函数的指针变量调用函数的程序设计举例 214
8.7 指针类型的函数 215
8.7.1 指针类型函数的概念、作用与定义 215
8.7.2 指针类型函数的程序举例 216
8.8 指针数组 218
8.8.1 指针数组的概念及定义 218
8.8.2 指针数组的应用及程序举例 219
8.9 指向指针的指针 221
8.9.1 指向指针的指针的概念、定义与赋值 221
8.9.2 指向指针的指针的程序举例 222
8.10 main函数的命令行参数 224
8.10.1 概念与一般形式 224
8.10.2 指针数组用作main函数的形参及程序举例 224
小结 225
习题 226
第9章 构造数据类型 230
9.1 结构体 230
9.1.1 结构体类型定义 230
9.1.2 结构体类型变量定义 231
9.1.3 结构体类型变量的引用 232
9.1.4 结构体数组 233
9.1.5 指向结构体类型数据的指针 234
9.2.1 概述 237
9.2 链表 237
9.2.2 创建静态链表 239
9.2.3 创建动态链表 240
9.3 共用体 243
9.3.1 共用体的概念 243
9.3.2 共用体类型的定义 243
9.3.3 共用体变量的定义和引用 243
9.4 枚举类型 245
9.5 定义已有类型的别名 246
9.6 位段 247
小结 249
习题 250
第10章 文件 252
10.1 概述 252
10.1.1 文件应用的需求举例 252
10.1.2 文件的概念、文件名和文件属性 252
10.1.4 流式文件、文本流与C语言文件分类 253
10.1.3 缓冲文件系统与非缓冲文件系统 253
10.1.5 文件类型指针及其定义 254
10.2 文件的打开与关闭 254
10.2.1 文件的打开 255
10.2.2 文件的关闭 256
10.3 文件的读写 257
10.3.1 读写一个字符 257
10.3.2 读写两个字节 259
10.3.3 读写一行字符 260
10.3.4 读写一个数据块 261
10.3.5 读写一个字符串 263
10.3.6 按指定格式读写数据 264
10.4 文件的定位 264
10.4.1 移动文件指针到文件头部 264
10.4.2 移动文件指针到指定位置 265
10.4.3 获得流中文件指针的位置 266
10.5 文件状态检测 266
10.6 文件操作的程序实例 267
小结 269
习题 270
第11章 C++基础 271
11.1 C++概述 271
11.2 C++对C的扩充 272
11.2.1 C++的输入输出 273
11.2.2 C++的行注释 275
11.2.3 const常量定义与使用 275
11.2.4 局部变量的定义与全局变量作用域运算符 277
11.2.5 变量的引用 277
11.2.6 带缺省参数的函数 279
11.2.7 内联函数 281
11.2.8 new与delete运算符 282
11.3 C++面向对象程序设计 283
11.3.1 类与对象 283
11.3.2 构造函数与析构函数 287
11.3.3 静态成员 288
11.3.4 友元 289
11.3.5 重载 290
11.3.6 继承与派生 292
11.3.7 多态性与虚函数 295
11.3.8 I/O类库与文件输入输出 297
11.3.9 模板 298
小结 299
习题 300
附录A ASCII字符一览表 301
附录B 全国计算机等级考试二级(C语言程序设计)考试大纲 303
附录C Turbo C 2.0常用库函数 307
附录D 上机实验 314