第1章 C++的初步知识 1
问1 C语言的特点有哪些 1
例1 编写一个函数getbits,实现从一个16位的单元中取出某几位 1
问2 C++的特点是什么 3
例2 类的声明 3
问3 什么是对象?如何声明一个对象 4
例3 对象的声明以及使用 4
问4 C++运行环境是怎样的 5
问5 什么是面向对象的程序设计 6
例4 一个最简单的C++程序 6
问6 在C++中,输入/输出操作是怎样处理的 8
例5 统计字符、数字的个数 8
问7 Flag和flag是否是同一标识符 9
问8 字符常量和字符变量有什么区别 9
问9 有哪两种定义常数的方法,它们有什么区别 9
例6 变量定义—求一个球体的表面积 10
第2章 数据类型与表达式 11
问10 C++有哪些数据类型 1
问11 C++语言中基本数据类型有哪些 11
例7 从键盘输入数据并进行计算处理 12
例8 用sizeof函数获取不同数据类型的长度 13
例9 求和 14
问12 C++语言如何表示不同进位计数制的整型常量 15
例10 进位计数制转换 15
问13 在C++中,如何定义符号常量 16
例11 从键盘输入半径,然后计算并输出球体的表面积与体积 16
问14 C++语言中如何表示字符型常量 17
例12 字符型常量的使用 18
问15 C++语言中为什么要使用转义字符 19
问16 C++语言中转义字符是如何表示的 19
例13 C++语言中转义字符的表示 20
问17 字符串常量与字符常量有何不同 21
问18 为什么表达式1/2的值为0 21
例14 表达式1/2的不同结果 21
问19 如何理解自增量/自减量运算符 22
例15 ++/--运算符的使用 23
问20 如何理解前增(减)量与后增(减)量运算符 24
例16 前增(减)量与后增(减)量运算符的使用 24
问21 如何计算表达式(x++)+(++x)+(x++) 26
问22 字符型与整型、浮点型数据为什么可以直接运算 26
例17 字符型数据与整型数据的直接运算 27
问23 如何理解表达式x=y=1 28
例18 表达式x=y=1和x=y==1的比较 28
第3章 程序设计初步 30
问24 什么是说明语句 30
问25 一个基本的C++程序包含哪些部分 30
例19 一个基本的C++程序 30
问26 C++语言的关系运算和逻辑运算是怎么样的 31
例20 关系运算和逻辑运算 31
问27 C++语言中三种基本程序结构是什么 33
问28 什么是顺序结构 33
问29 什么是选择结构 34
问30 什么是条件选择语句 35
例21 条件选择语句if应用实例 35
例22 分段函数值的计算 36
例23 计算任意三角形的面积 38
问31 什么是多路分支语句switch 40
例24 多路分支语句switch 40
例25 计算指定年份和月份的天数 42
例26 编制程序实现能完成简单加、减、乘、除、求余的运算器 44
问32 什么是循环结构 45
问33 什么是while型循环语句 46
例27 while型循环语句的使用 46
例28 累加和 47
例29 猴子吃桃子 48
问34 什么是do...while型循环语句 49
例30 do...while型循环语句的使用 49
例31 使用do...while循环结构计算n! 51
问35 什么是for型循环语句 52
例32 循环语句的使用 52
问36 如何理解for循环结构的多种省略写法 54
例33 for型循环语句 58
例34 输入10个分数,输出对应的评语 59
例35 水仙花数 61
例36 求数列之和 62
例37 素数的判定 62
例38 for循环的嵌套使用 63
例39 输出9×9乘法口诀表 65
例40 输出斐波纳契数列 66
例41 百钱买百鸡问题 67
例42 级数逼近问题 68
问37 循环语句中出现continue和break语句是什么意思 70
例43 continue语句使用举例 71
例44 break语句使用举例 72
问38 什么叫循环嵌套 73
例45 循环嵌套使用举例:输出1~100之间的素数 73
例46 求解积分问题 75
第4章 函数与预处理 78
问39 什么是函数 78
例47 函数定义 79
例48 函数声明和定义 79
问40 什么是函数的调用 80
例49 函数调用实例:编制函数求出圆的面积 80
问41 什么是函数的嵌套与递归调用 82
例50 函数的嵌套:编制程序,求两个整数的平方和 82
例51 汉诺塔游戏 83
问42 函数调用中的数据传递是怎么实现的 85
例52 传值过程 86
例53 传地址过程 87
例54 三种传递的比较 88
问43 函数可以嵌套定义和调用吗 90
问44 什么是函数的嵌套调用、递归调用 91
例55 函数的递归调用 91
例56 求n!的值 92
问45 什么叫局部变量 93
例57 局部变量使用实例 94
问46 什么叫全局变量 95
例58 全局变量使用实例 96
例59 求最大公约数和最小公倍数 97
问47 什么是动态存储变量 99
问48 什么是静态存储变量 99
例60 静态存储类别变量的使用 100
例61 几种变量的区别使用 101
例62 局部变量作用域实例 102
问49 什么是内部函数?什么是外部函数 104
例63 输入两个整数,在外部函数中计算并输出两数之和及差 104
问50 什么是默认参数 105
例64 使用默认参数 105
问51 什么是内联函数 107
问52 同一个文件中函数是否可以重名 107
例65 使用重载函数 107
问53 引用作为函数参数有什么用处吗 108
例66 对三个变量进行排序 109
例67 函数重载实例 110
问54 什么叫编译预处理&1 12
例68 奥赛罗游戏 112
第5章 数组 123
问55 为什么要使用“数组”这种数据结构 123
例69 计算1班“C++程序设计”期末成绩的平均分 123
问56 如何定义一个数组 125
问57 找出下列代码中的错误之处 126
问58 为什么在使用数组之前必须初始化 127
例70 在编译器中运行下列代码,并分析结果 127
问59 如何初始化一个一维数组 128
例71 将1~100这100个数依次存放到数组中 129
例72 数组操作 130
例73 二分查找 131
问60 如何初始化一个二维数组 133
例74 编程实现两个3×3矩阵的乘法 134
问61 C++中的字符串定义和使用方式是怎样的 136
例75 字符串基本操作示例 136
问62 如何初始化一个字符数组 137
例76 将一班学生的姓名存放到数组中 138
问63 '\0'有什么作用 139
例77 计算字符串的长度 139
问64 有哪些字符串处理函数 140
例78 从键盘输入字符串,并计算其中包含多少个字母 142
问65 数组如何作为函数参数传递 143
例79 用函数调用形式来实现数组元素的输入/输出功能 143
问66 数组有哪些具体应用 145
例80 从键盘输入学生的学号和成绩,按照成绩由高到低的顺序排列 145
第6章 指针 147
问67 什么是指针 147
例81 请运行下列代码,试分析结果 147
问68 如何为指针赋值 149
例82 找出下列代码中的错误之处 149
问69 指针有哪些运算方式 150
例83 利用指针来对数组元素输入/输出 150
例84 用函数指针数组实现用菜单来驱动函数调用的程序框架 152
问70 指针与数组之间有何关系 153
例85 输入10个整数,找出其中的最小值,用指针实现 154
例86 输出一个数组的地址和数值 155
例87 利用下标和指针两种方式输出数组值 156
问71 指针作为数组元素有何妙用 158
例88 设一班有6个学生,学了4门课,求每门课的平均分 158
问72 如何将指针作为函数参数传递 159
例89 输入三个整数,用指针实现按照由小到大的顺序输出 161
问73 如何理解指向指针的指针 162
例90 阅读下列程序,写出运行结果 163
问74 main函数的指针参数怎么使用 163
例91 执行下列可执行文件,查看在命令行输入“This is a test”的结果 164
问75 const指针应该如何使用 165
例92 指出下列程序的错误 165
问76 函数能够返回指针吗 166
例93 输入C语言考试成绩到数组中,找出最高分 166
问77 如何理解引用 168
例94 引用的使用 168
问78 函数的返回类型可以为引用吗 169
例95 返回引用的函数 170
问79 动态分配的内存用完后如何处理 171
第7章 自定义数据类型 172
问80 typedef声明的作用是什么 172
例96 typedef声明使用 172
问81 什么是枚举型数据类型 173
问82 枚举类型如何使用 174
例97 枚举类型数据的声明和使用 175
问83 什么是联合体 176
问84 如何使用联合体 177
例98 联合体定义及使用举例 177
问85 什么是结构体 179
问86 结构体如何使用 181
例99 结构体定义及使用之 183
例100 结构体定义及使用之二 184
问87 什么是结构体数组&1 85
例101 结构体数组应用实例 186
例102 计算学生总成绩并排序 187
问88 如何使用指向结构体的指针 190
例103 指向结构体的指针实例 190
问89 结构体变量是如何作为参数在函数之间进行传递的 191
例104 结构体变量作为参数传递实例 192
第8章 类和对象 194
问90 什么叫抽象 194
例105 抽象出的学生类 194
问91 什么叫封装 195
例106 建立一个包含封装概念的学生类 195
例107 数据的封装 196
问92 什么叫继承 197
例108 继承实例 197
问93 什么叫多态 198
例109 两个同名函数display的定义 198
问94 类是如何定义的 199
例110 定义一个学生的类 200
问95 什么是类的数据成员 201
例111 从结构体到类—数据成员示例 201
问96 什么叫类的成员函数 202
例112 将成员函数的声明和实现放在两个不同的文件中 203
问97 对象是什么 204
问98 类是如何定义的 206
问99 类的成员应该如何访问 206
问100 如何引用对象成员 207
例113 直接访问对象成员 207
例114 采用指针访问对象成员 208
问101 类的成员函数必须定义在类中吗 209
例115 一个简单的类基本操作实例 209
例116 对一个Time类,设计其前、后增量操作符 210
例117 Josephus问题 212
例118 编制一个九九乘法表 215
例119 栈的实现 216
问102 类的信息隐蔽是如何实现的 219
问103 什么是函数重载 219
例120 不同参数个数、不同数据类型的函数重载 219
问104 每个类都必须定义一个构造函数吗 220
例121 构造函数的使用 221
问105 析构函数是用来删除对象的吗 223
问106 友元关系有哪些特点 223
例122 友元成员函数实例 223
问107 什么是内联函数 225
例123 内联函数应用举例 226
第9章 构造函数与析构函数 228
问108 什么是构造函数 228
例124 构造函数实例之一 229
问109 用构造函数能够实现对象的初始化吗 232
例125 构造函数实例之二 232
问110 什么是析构函数 234
例126 定义一个带有析构函数的学生类 234
例127 析构函数设计举例 236
问111 如何使用复制构造函数 237
例128 复制构造函数的使用 238
问112 什么是静态数据成员 240
例129 在学生类中加入一个静态数据成员 240
问113 什么是静态成员函数 242
例130 在学生类中加入一个静态成员函数 243
例131 静态数据成员与静态成员函数的应用实例 244
问114 什么是对象指针 246
例132 指向具体对象的指针 248
例133 指向类成员的指针 249
例134 对象指针作为函数参数 250
问115 什么是this指针 252
例135 使用this指针交换两个实数 252
例136 this指针的隐式调用 254
问116 什么是友元 255
例137 友元函数举例 256
例138 使用友元函数计算线段距离 257
问117 什么是对象数组 258
例139 对象数组的初始化 259
例140 使用构造函数自动初始化 261
问118 什么是常引用?什么是常对象 263
例141 常引用作形参 263
问119 可以使用const修饰对象成员吗 264
例142 常数据成员与常成员函数的使用 264
第10章 运算符重载 266
问120 什么是运算符重载 26
例143 利用操作符重载实现分式的相乘 267
例144 重载成员函数 269
例145 通过友元函数重载 270
例146 运算符重载实现复数的加法 272
例147 运算符重载实现复数的减法 274
问121 重载运算符有哪些规则 276
例148 重载输入/输出运算符 277
第11章 继承与派生 280
问122 什么叫继承 280
问123 什么叫派生 280
例149 从person类派生出student类 281
例150 从点到面,失去了什么 283
例151 成员函数同名怎么办 284
问124 派生类的访问属性是怎样的 286
问125 什么叫公有继承 286
例152 公有继承的基本原理 286
例153 公有继承中基类和派生类的基本操作方式 289
问126 什么叫私有继承 291
例154 一个无法通过编译的私有继承 291
例155 修改后的私有继承操作 293
问127 什么叫保护继承 295
例156 类保护成员的使用 295
例157 保护继承实例 297
问128 派生类的构造函数是怎样的 298
例158 如何设计派生类的构造函数呢 298
例159 定义一个带构造函数的基数和派生类 301
问129 什么叫虚基类 303
例160 多重派生举例 303
问130 虚基类的构造函数是怎样的 304
例161 虚基类实例 304
例162 使用多重继承 307
第12章 多态性与虚函数 310
问131 什么叫多态性 310
例163 简单的多态实例 310
问132 什么叫虚函数 311
例164 基类和派生类同名函数 312
例165 用虚函数来实现 314
问133 定义虚函数有哪些注意事项 316
例166 计算正方形与长方形面积,并显示其尺寸与面积 316
问134 什么叫纯虚函数 318
例167 纯虚函数实例 318
问135 什么叫抽象类 320
例168 错误的抽象类使用 321
例169 修正后的实例 322
例170 灵活使用抽象基类的指针 325
例171 虚函数变实 326
第13章 输入/输出流 329
问136 什么是输入/输出流 329
例172 一个简单的输出语句程序 329
问137 如何使用标准输出流对象cout 331
例173 熟悉输入/输出流的用法 331
例174 使用流函数成员实现输出 333
例175 用put函数输出字符 334
问138 如何使用标准错误输出流对象cerr 335
例176 输入三角形的三边长,验证是否符合两边之和大于第三边的定理 335
问139 自定义格式输出是怎样的 336
例177 用不同进制输出数据 337
问140 如何用成员函数设置输出格式 338
例178 利用成员函数输出不同格式数据 339
问141 标准输入流cin是怎样的 340
例179 一个简单的输入程序 341
问142 如何使用cin的成员函数get() 342
例180 用三种get()函数读取数据 342
问143 如何使用cin的成员函数getline() 343
例181 用getline()函数读入数据 343
例182 使用istrstream和ostrstream实现数据输入与输出 344
例183 使用get()和put()复制整个文件 345
例184 控制输出精度 346
例185 设置对齐方式 347
例186 从文本文件读入文本数据 348
例187 在一个矩阵中找其中一个元素为-1的向量 349
例188 矩阵与竖向量的乘法 351