第1章 绪论 1
1.1 程序设计语言 1
1.1.1 机器语言 1
1.1.2 汇编语言 1
1.1.3 高级语言 2
1.2 程序设计的概念 2
1.2.1 程序设计 2
1.2.2 程序设计的步骤 2
1.3 C语言的发展和C++简介 5
1.3.1 C语言发展简述 5
1.3.2 C++简介 5
1.4 C语言程序的基本结构 6
1.5 算法 10
1.5.1 算法的概念 10
1.5.2 计算机算法的特征 11
1.5.3 计算机算法的分类 12
1.5.4 最佳算法 13
1.5.5 算法的基本结构及其描述 13
1.6 Visual C++简介 17
1.6.1 Visual C++ 6.0主窗口 17
1.6.2 简单C/C++程序的编写和运行过程 18
1.6.3 程序调试的一般过程及其调试手段 20
1.6.4 Visual C++中程序调试方法和工具 22
习题 25
第2章 C语言基础 26
2.1 C语言的词汇与词法 26
2.1.1 基本字符集 26
2.1.2 关键字 26
2.1.5 运算符 27
2.1.3 特定字 27
2.1.4 标识符 27
2.1.6 分隔符 28
2.1.7 字面常量 28
2.2 C语言的数据类型 32
2.2.1 C语言数据类型概述 32
2.2.2 C语言的基本数据类型 33
2.2.3 举例 35
2.3 常量与变量 36
2.3.1 常量 36
2.3.2 变量 38
2.3.3 举例 41
2.4 运算符和表达式 44
2.4.1 运算符和表达式概述 44
2.4.2 算术运算符和算术表达式 46
2.4.3 类型转换 49
2.4.4 赋值运算符和赋值表达式 51
2.4.5 逗号运算符和逗号表达式 53
习题 54
第3章 结构化程序设计 58
3.1 结构化程序设计方法 58
3.1.1 自顶向下分析设计问题 59
3.1.2 模块化程序设计 60
3.1.3 结构化程序编写 60
3.2 语句的概念 61
3.2.1 表达式语句 61
3.2.2 控制语句 61
3.2.3 复合语句 62
3.3.1 顺序结构 63
3.3 程序的3种基本结构 63
3.2.4 空语句 63
3.3.2 选择结构(分支结构) 64
3.3.3 循环结构 64
3.4 赋值语句 65
3.5 输入输出函数 66
3.5.1 格式输出函数printf 66
3.5.2 格式输入函数scanf 71
3.5.3 字符输出函数putchar() 73
3.5.4 字符输入函数getchar() 73
3.6 顺序结构程序设计举例 74
习题 77
4.1.1 关系运算符 80
4.1.2 关系表达式 80
4.1 关系运算符和关系表达式 80
第4章 选择结构 80
4.2 逻辑运算符及逻辑表达式 81
4.2.1 逻辑运算符 81
4.2.2 逻辑表达式 81
4.2.3 逻辑运算符的优先级和结合性 82
4.3 if语句 83
4.3.1 if语句(单分支) 83
4.3.2 if…else语句(双分支) 87
4.3.3 if语句的嵌套 89
4.3.4 if…else if语句(多分支) 91
4.3.5 条件运算符和条件表达式 96
4.4 switch语句 96
习题 99
第5章 循环结构程序设计 105
5.1 while语句 105
5.2 do…while语句 110
5.3 for语句 113
5.4 break语句和continue语句 118
5.4.1 break语句 118
5.4.2 continue语句 120
5.5 循环的嵌套 121
5.6 goto语句 124
5.7 常用算法举例 125
5.7.1 累加法 125
5.7.2 穷举法 126
5.7.3 迭代与递推 130
习题 132
第6章 函数 135
6.1 函数的概念 135
6.1.1 标准库函数与头文件 135
6.1.2 标准库函数rand()举例 136
6.2 函数的定义、声明与调用 139
6.2.1 函数定义 139
6.2.2 函数的声明与函数原型 141
6.2.3 函数的调用 142
6.3 函数间参数传递和返回值 146
6.3.1 函数间参数传递 146
6.3.2 函数的返回值 147
6.4 函数的嵌套调用 150
6.5 递归函数 153
6.5.1 递归的概念 153
6.5.2 递归调用和递归函数 154
6.5.3 递归调用的执行过程 155
6.5.4 递归函数应用举例 157
6.6.2 变量的作用域 159
6.6 变量的作用域与存储类别 159
6.6.1 变量的生存期和可见性 159
6.6.3 变量的存储类别 163
6.6.4 局部变量的存储类型 164
6.6.5 全局变量的存储类型 166
6.6.6 内部函数和外部函数 169
习题 172
第7章 编译预处理 175
7.1 宏定义 175
7.1.1 不带参数的宏 175
7.1.2 带参数的宏 177
7.1.3 取消宏定义 179
7.2 条件编译 180
7.2.1 #if、#elif、#else和#endif命令 180
7.2.2 #ifdef和#ifndef命令 181
7.2.3 defined预处理运算符 182
7.3 文件包含 182
7.4 多文件组织 184
7.4.1 内部连接 184
7.4.2 外部连接 185
习题 186
第8章 数组 188
8.1 一维数组 188
8.1.1 一维数组的定义 188
8.1.2 一维数组的引用 189
8.1.3 一维数组的初始化 190
8.1.4 一维数组应用举例 191
8.2 多维数组 194
8.2.1 二维数组的定义和引用 194
8.2.2 二维数组的初始化 195
8.2.3 二维数组应用举例 196
8.3 字符串 199
8.3.1 字符型数组 199
8.3.2 字符串 200
8.3.3 字符串处理函数 202
8.3.4 字符串应用举例 204
习题 206
第9章 结构体、共用体和枚举类型 209
9.1 结构体 209
9.1.1 结构体类型的定义 209
9.1.2 结构体变量定义和初始化 210
9.1.3 结构变量的引用 212
9.1.4 结构体数组 214
9.2.2 共用体变量的定义、初始化和引用 218
9.2 共用体 218
9.2.1 共用体的类型定义 218
9.3 枚举类型 221
9.3.1 枚举类型的定义 221
9.3.2 枚举变量的定义、初始化和使用 221
9.4 typedef语句 223
习题 225
第10章 指针 227
10.1 地址与指针变量 227
10.1.1 内存单元地址 227
10.1.2 指针 227
10.1.3 指针变量的定义和初始化 228
10.1.4 指针的运算 229
10.1.5 指向指针的指针 232
10.2.1 指针变量作为函数参数 233
10.2 指针与函数 233
10.2.2 函数的返回值为指针 235
10.2.3 指向函数的指针 235
10.3 指针与数组 236
10.3.1 一维数组与指针 236
10.3.2 二维数组与指针 239
10.3.3 字符串与指针 243
10.3.4 指针数组 246
10.4 指针与结构体 250
10.4.1 指向结构体的指针 250
10.4.2 动态存储分配 252
10.4.3 链表 254
习题 259
11.1 文件概述 262
第11章 文件 262
11.2 文件的打开和关闭 264
11.2.1 文件的打开 264
11.2.2 文件的关闭 265
11.3 文件的读写 266
11.3.1 文本文件的读写 266
11.3.2 二进制文件的读写 270
11.4 文件的定位 272
习题 276
第12章 C++的面向对象程序设计简介 278
12.1 面向对象程序设计的基本概念 278
12.1.1 结构化程序设计 278
12.1.2 面向对象程序设计 279
12.1.3 封装性 279
12.1.5 多态性 280
12.1.4 继承性 280
12.2 类和对象 281
12.2.1 类的定义 281
12.2.2 类的成员函数 282
12.2.3 对象定义与成员访问 283
12.2.4 类成员的访问控制 284
12.2.5 构造函数 285
12.2.6 析构函数 287
12.2.7 面向对象的程序实例 287
12.3 友元 289
12.3.1 友元函数 289
12.3.2 友元类 290
12.4 继承和派生 292
12.4.1 派生类的定义 292
12.4.2 派生类的构造函数 294
12.4.3 对基类成员的访问控制 295
12.4.4 类成员的同名覆盖 297
12.4.5 多继承 298
12.4.6 虚基类 299
12.4.7 派生类应用实例 301
12.5 多态与重载 305
12.5.1 函数重载 305
12.5.2 运算符重载 308
12.5.3 类型转换 312
12.6 流类的应用(输入/输出) 314
12.6.1 流的概念 315
12.6.2 标准设备的输入/输出 316
12.6.3 文件的输入/输出 321
习题 326
参考文献 329