1、 一、 单选题(20 分,每题 2 分)1、面向对象程序设计的三大特点是_ _。 A. 封装 继承 多态 B. 私有 公有 保护C. 友员 重载 继承D. 构造 析构 封装2、构造函数不具备的特征的是_ _。 A. 构造函数的函数名与类名相同 B. 构造函数可以重载C. 构造函数可以设置默认参数D构造函数必须指定返回类型3、类的析构函数的作用是_ _。A一般成员函数的初始化 B类的初始化C对象的初始化 D在对象的生存期结束之前自动执行,作清理工作4、下面关于友员函数的描述不正确的是_ _ A可以将一个普通函数声明为某类的友员函数,友员函数可以访问该类的私有成员和保护成员;B友员函数具有传递性和
2、交换性C将 A 类声明为 B 类的友员类,则 A 类所有的成员函数都是 B 类的友员函数D友员函数在类中声明,不能在在类中定义;5、重载运算符时,运算符的_ _ A 优先级和结合律均保持不变;B 优先级和结合律均可以改变。C 优先级可以改变,但结合律不能改变;D 优先级不能改变,但结合律可以改变;6、下面四个选项中,_ _是用来声明虚函数的。A. virtual B. public C. using D. false7、在 C+中,对于基类的 protected 成员,当以 protected 方式派生一个新类时。该成员将成为派生类的_成员。A. private Bprotected Cpub
3、lic D非法 8、下列关于虚基类的描述,错误的是_ _。A设置虚基类的目的是为了消除二义性B虚基类的构造函数在非虚基类之后调用C若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用D若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数9假定 AB 为一个类, 则该类的拷贝构造函数的声明语句为_ _. AABBAB(AB x) CAB( AB public:AAA()A=100;B=200; coutprint();s=add(*a2);coutclass Complexprivate:double real,image;public:Complex(do
4、uble r, double i) coutclass baseint n;public:base(int a)cout#includeclass CMyExceptionpublic:CMyException (string n=“none“) : name(n)cout0)throw “error“;else throw x;void main()try throw new CMyException(“obj1“); catch(CMyException *e)coutGetName()endl;delete e;tryfunc(-8);catch(int x)cout“处理了int类型的
5、异常:“xendl;catch(char *s)cout“处理了char*类型的异常:“sendl;运行结果班级 姓名 学号 装订线、 程序设计(45 分,每小题 15 分)1.封装一个 CStudent 类,用来描述学生的属性和行为。学生有姓名、学号、年龄、平均成绩,分别编写构造函数、拷贝构造函数、Display()成员函数(显示学生的信息) 。要求如下:在 student.h 文件中定义类,在 student.cpp 文件中实现类,在 test.cpp 文件中测试类。test.cpp 文件如下:(1分)/test.cpp#include “student.h”void main()CStu
6、dent st1(“李华“,18,1111,4.5);CStudent st2(st1);CStudent st3;st3=st2;st3.Display();2.设计几何体的派生,几何体派生关系如下图所示:(分)要求1) 编写程序,定义基类几何图形类(Cshape) ,派生类长方形类(Crectang)和圆类(Ccirle)计算图形的面积、周长并输出2) 重载运算符+号,实现两个长方形面积的相加。班级 姓名 学号 装订线长方形 圆几何图形将 1100 之间的偶数存入文件“date.dat” 中,并将其读出显示在屏幕上 (10 分) 编写一个函数模板,它能弹回两个值中的最小值,但同时要确保能正确的处理字符串。 (分)班级 姓名 学号 装订线