第1章C++概述 1
1.1计算机程序设计语言的发展 2
1.1.1机器语言阶段 2
1.1.2汇编语言阶段 2
1.1.3高级语言阶段 3
1.1.4从C到C++ 4
1.2过程化程序设计 4
1.3面向对象的程序设计 5
1.3.1基本概念 5
1.3.2面向对象程序设计的特点 6
1.4简单的C++程序介绍 6
1.5程序开发的过程 9
1.6 C++上机实践 10
1.6.1 Visual C++ 6.0集成开发环境 10
1.6.2开发C++程序过程 12
习题一 13
第2章 数据类型、运算符和表达式 14
2.1保留字和标识符 15
2.1.1保留字 15
2.1.2标识符 15
2.2 C++的基本数据类型 15
2.3常量与变量 17
2.3.1常量 17
2.3.2变量 18
2.4基本运算符和表达式 19
2.4.1基本运算符和表达式的简介 20
2.4.2算术运算符和算术表达式 20
2.4.3赋值运算符和赋值表达式 21
2.4.4关系运算符和关系表达式 23
2.4.5逻辑运算符和逻辑表达式 23
2.4.6位运算符和位运算表达式 24
2.4.7条件运算符和条件表达式 25
2.4.8逗号运算符和逗号表达式 26
2.4.9 sizeof运算符和sizeof表达式 26
2.5数据类型转换 26
2.5.1隐式转换 26
2.5.2显式转换 27
2.6简单的输入/输出实现方法 27
2.6.1格式化输入/输出——scanf()和printf() 27
2.6.2 I/O流 29
2.6.3 cin 30
2.6.4 cout 30
2.6.5输出控制符 31
2.7认识上机过程中的错误 33
习题二 34
第3章C++流程控制 35
3.1算法与流程图 36
3.1.1算法的概念 36
3.1.2算法的描述 36
3.2 C++语句和程序的三种基本结构 37
3.2.1 C++语句 37
3.2.2 C++程序的三种基本结构 38
3.2.3结构化算法 38
3.3顺序结构程序 38
3.4选择结构程序 39
3.4.1 if语句 40
3.4.2嵌套if语句 41
3.4.3 switch语句 44
3.5循环结构程序设计 46
3.5.1 while语句 46
3.5.2 do-while语句 48
3.5.3 for循环语句 50
3.5.4循环的嵌套 52
3.5.5转向语句 55
3.5.6三种循环的比较 56
3.6常用算法及应用实例 57
3.6.1累加与累乘 57
3.6.2求最大数、最小数 58
3.6.3求素数 59
3.6.4枚举法 60
3.6.5递推与迭代 61
3.7程序的调试 64
3.7.1进入调试 65
3.7.2单步调试 66
3.7.3查看变量、表达式的值 66
3.7.4停止调试 66
习题三 67
第4章 函数 71
4.1函数的定义 72
4.1.1函数定义 72
4.1.2函数的返回值 73
4.2函数的调用 74
4.2.1函数调用形式及过程 74
4.2.2函数的声明 75
4.2.3函数调用的参数传递方式 77
4.3函数的嵌套调用和递归调用 79
4.3.1函数的嵌套调用 79
4.3.2函数的递归调用 80
4.4内联函数和函数重载 84
4.4.1内联函数 84
4.4.2函数重载 86
4.5函数的参数 90
4.5.1函数参数的求值顺序 90
4.5.2具有默认参数值的函数 90
4.6应用实例 91
4.7函数的调试 95
习题四 96
第5章 作用域和存储类型 99
5.1作用域 100
5.1.1作用域分类 100
5.1.2局部变量与全局变量 101
5.1.3动态存储方式与静态存储方式 104
5.2变量的存储类型 105
5.2.1自动类型(auto) 105
5.2.2寄存器类型(register) 106
5.2.3静态类型(static ) 106
5.2.4外部类型(extern) 109
5.3编译预处理 110
5.3.1宏定义 110
5.3.2文件包含命令 113
5.3.3条件编译命令 114
5.4程序的多文件组织 115
5.4.1头文件 115
5.4.2多文件结构 115
5.4.3多文件结构程序示例 116
5.5多文件程序的创建与调试 118
5.5.1多文件程序的创建 118
5.5.2多文件程序的调试 119
习题五 121
第6章 数组 123
6.1数组的概念 124
6.1.1数组与数组元素 124
6.1.2数组的维数 124
6.2一维数组的定义及应用 124
6.2.1一维数组的定义和初始化 124
6.2.2一维数组的操作 126
6.2.3数组的越界问题 127
6.2.4一维数组的应用 127
6.3字符数组的定义及应用 131
6.3.1字符数组和字符串 131
6.3.2字符串处理函数 133
6.3.3字符数组应用举例 135
6.4二维数组 136
6.4.1二维数组的定义 137
6.4.2二维数组的初始化 138
6.4.3二维字符数组 139
6.4.4二维数组应用 140
6.5数组作为函数参数 145
6.5.1向函数传递一维数组 145
6.5.2向函数传递二维数组或多维数组 147
6.6数组应用实例 148
6.7断点调试的方法 150
习题六 154
第7章 结构体、共用体和枚举类型 160
7.1结构体的定义及使用 161
7.1.1结构体的定义 161
7.1.2定义结构体变量的方法 161
7.1.3结构体变量的使用 163
7.1.4结构体变量的初始化 164
7.1.5结构体数组 164
7.1.6结构体和函数 169
7.2共用体的定义与使用 170
7.2.1共用体的概念 170
7.2.2定义共用体类型变量 170
7.2.3共用体变量的使用 171
7.3枚举类型 173
7.4 typedef定义类型 175
7.5应用实例 176
7.6程序调试 178
7.6.1结构体变量各成员变量内存分配情况 178
7.6.2共用体变量各数据成员内存分配情况 179
习题七 180
第8章 指针和引用 183
8.1指针与指针变量 184
8.1.1地址与指针的概念 184
8.1.2指针变量 185
8.1.3指针变量的运算 189
8.1.4 void指针 191
8.2指针与数组 191
8.2.1一维数组与指针 192
8.2.2二维数组与指针 193
8.2.3指向数组的指针 195
8.2.4指针数组 196
8.2.5指向指针的指针 197
8.3字符指针与字符串 198
8.3.1字符数组与字符指针 198
8.3.2字符指针数组 200
8.4动态内存分配和释放 200
8.4.1 C++中堆的使用 201
8.4.2 C语言中动态分配空间的函数 203
8.5指针与函数 204
8.5.1指针变量与数组名作函数参数 204
8.5.2返回值为指针类型的函数 208
8.5.3函数指针 210
8.6 const指针 211
8.6.1指向常量的指针变量的定义与使用 211
8.6.2指针常量 212
8.6.3指向常量的指针常量 213
8.7结构体指针 213
8.7.1结构体指针的概念 213
8.7.2指向结构体数组元素的指针 214
8.7.3结构体指针作为函数参数 215
8.8链表 217
8.8.1链表概述 217
8.8.2链表的基本操作 218
8.9引用 225
8.9.1引用及声明方法 225
8.9.2用引用作为函数的参数 227
8.9.3如何使一个被调函数同时返回多个值 228
8.9.4用const限定引用 229
8.9.5用引用作为函数返回值 230
8.9.6引用总结 231
8.10综合应用实例 231
8.11上机调试 235
8.11.1指针变量值的调试查看 235
8.11.2函数地址的调试查看 237
8.11.3引用的调试查看 238
小结 238
习题八 239
第9章 文件 243
9.1 C语言文件概述 244
9.2文件结构体与文件指针 245
9.3文件的打开与关闭 246
9.3.1文件的打开(fopen函数) 246
9.3.2文件的关闭(fclose函数) 247
9.4文件的读写 248
9.4.1字符的读写 ( fgetc函数和fputc函数) 248
9.4.2字符串的读写 (fgets函数和fputs函数) 253
9.4.3数据块的读写 (fread函数和fwrite函数) 255
9.4.4格式化的读写 (fscanf函数和fprintf函数) 257
9.5文件的定位 258
9.5.1位置指针复位(rewind函数) 259
9.5.2位置指针随机定位 (fseek函数) 260
9.5.3检测当前位置指针的 位置(ftell函数) 263
9.6文件的检测 263
9.6.1文件读写错误检测 (ferror函数) 263
9.6.2清除文件错误标志 ( clearerr函数) 263
9.6.3文件结束检测(feof函数) 264
9.7常用的文件操作函数小结 264
9.8程序设计举例 265
9.9上机调试 271
习题九 276
附录A ASCII码表 278
附录BC++的库函数 280