C++程序设计
[参考课件](http://ppt.beegoedu.com/Upload/ppt/2020042793055.pdf)
[课本目录](https://mm.edrawsoft.cn/map.html?sharecode=6045f4cf8081c2a38937008)
#### 试卷分析
1. 考试形式
闭卷
考试时间150分钟
满分100分,及格60分
2. 考试题型
1. 单项选择(20小题共20分)
2. 填空题(20小题共20分)
3. 改错题(5小题共20分)
4. 完成程序题(5小题共20分)
5. 程序分析题(2小题共10分)
6. 程序设计题(1小题共10分)
### 错题集
1. C++的运算符大部分都可以重载,不能重载的只有. 、∷、.*、->*、#、sizeof和?:。
2. 通常拷贝构造函数的参数是某个**对象的引用**。
3. 如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为**a.operator++()**;
4. 友元函数不是当前类的成员函数,而是独主于当前类的外部函数,但它可以访问该类的所有成,包括私有成员、保护成员和公有成员
5. 重载运算符“()”“[]”和“->”时,只能将它们重载为**成员函数**
6. 将指向对象的指针作为函数参数,形参是对象指针,实参是对象的 **地址值**
7. string类中用于查找字符串中是否含有某一字符串的成员函数的第1个参数是 **要查找的子字符串**
8. C++中字符串是通过字符数组来表示的,每一个字符串都有一个结尾字符 **\0**
9. 设置私有成员的机制叫作 **隐藏**
10. 在C++的类声明中,用 public关键字声明的类成员的访问权限是 **公有的**
11. **复制构造函数** 的作用是使用一个已存在的对象去初始化另一个正在创建的对象
12. 复制构造函数使用**引用对象**作为参数初始化创建中的对象。
13. 类 ifstream和类 fstream都是从类**istream**派生而来的
14. 在C++中,通过基类的引用(或指针)调用虚函数时,发生**动态绑定**
15. 从一个基类派生一个派生类的情况,称为 **单重继承**
16. 对于一个类(A),可以利用friend关键字将一般函数、其他类(B)的成员函数或者是其他类声明为该类的友元,使得这个类中本来隐藏的信息可以被友元所访问。,记得在 B类文件前,先声明 A类;
17. io 格式化输出?<iomanip>
18. 在面向对象的程序设计中,使用多态能够增强程序的**可扩充性**
19. 假定一个结构类型定义为:“struct D { int a;union{int b;double c;};D * d[2];};",则该类型的大小为__20__字节(数组里面存的不是对象,是指针,4字节(32位系统)结构体 内存是成员内存之和,联合体按最大内存算,仅存一份)
> 20. 请简要说明变量作用域的概念及其作用范围。?
变量的作用域是指可访问该变量的代码范围。类中定义的成员变量的作用域是整个类。方法中定义的局部变量的作用域是从该变量的声明处开始到包含该声明的语句块结束处,块外是不可使用的。块内声明的变量将屏蔽其所在类定义的同名变量。
>21. 简述break语句的用法。?
break语句可用于3类语句中,第一类是在 switch语句中,第二类是在for、 while及do等循环体中,第三类是在语句块中。在 switch语句及循环体语句中, break的语义是跳过本块中余下的所有语句,转到块尾,执行其后的语句。第三种使用方法是在块中和标号配合使用,其语义是跳出标号所标记的语句块,继续执行后面的语句。这种形式的break语句多用于嵌套块中,控制从内层跳到外层块之后。