C++面向对象程序设计模拟试题四.docx
- 文档编号:3500103
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:17
- 大小:20.96KB
C++面向对象程序设计模拟试题四.docx
《C++面向对象程序设计模拟试题四.docx》由会员分享,可在线阅读,更多相关《C++面向对象程序设计模拟试题四.docx(17页珍藏版)》请在冰点文库上搜索。
C++面向对象程序设计模拟试题四
C++面向对象程序设计模拟试题四
一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下列关于C++函数的说明中,正确的是(C)。
A)内联函数就是定义在另一个函数体内部的函数
B)函数体的最后一条语句必须是return语句
C)调用一个函数之前,如果还没有定义这个函数,必须先声明其原型
D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式
2.假定MyCIass为一个类,那么下列的函数说明中,(C)为该类的无参构造函数。
A)voidMyClass();B)~MyClass(intn);C)MyClass();D)~MyClass();
3.下列叙述中,错误的是(C)。
A)派生类可以使用private派生
B)对基类成员的访问必须是无二义性的
C)基类成员的访问能力在派生类中维持不变
D)赋值兼容规则也适用于多继承的组合
4.当一个类的某个函数被说明为virtual时,该函数在该类及其所有派生类中(A)。
A.都是虚函数B.只有被重新说明为vittual时才是虚函数
C.都不是虚函数D.上面都不正确
5.派生类的构造函数的成员初始化表中,不能包含(C)。
A)基类的构造函数B)派生类中子对象的初始化
C)基类中子对象的初始化D)派生类中一般数据成员的初始化
6.下列是重载加法运算符的函数原型声明,其中错误的是(A)。
A)MyClassoperator+(double,double);
B)MyClassoperator+(double,MyClass);
C)MyClassoperator+(MyClass,double);
D)MyClassoperator+(MyClass,MyClass);
7.派生类中的成员不能直接访问基类中的(B)成员。
A)publicB)privateC)virtualD)protected
8.实现运行时的多态性要使用(D)。
A)重载函数B)析构函数C)构造函数D)虚函数
9.如果在类MyClass的外面使用函数调用MyClass:
:
f();则函数f()是类MyClass的(A)。
A.静态成员函数B.非静态成员函数
C.友元函数D.前面都不正确
10.由于常对象不能被更新,因此(A)。
A)通过常对象只能调用它的常成员函数
B)通过常对象只能调用静态成员函数
C)常对象的成员都是常成员
D)通过常对象可以调用任何不改变对象值的成员函数
二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确的答案写在每小题的空格内。
错填或不填均无分。
1.对于派生类的构造函数,在定义对象时构造函数的执行顺序为:
先执行调用____基类_______的构造函数,再执行调用子对象类的构造函数,最后执行派生类的构造函数体中的内容。
2.声明类模板应使用关键字(template)。
3.重载的关系运算符和逻辑运算符的返回类型应当是(布尔型)。
4.在面向对象方法中,类的实例称为(对象)。
5.在类的对象被释放时,(析构)函数会被自动调用。
三、完成程序填题(本大题共3个小题,每小题3分,共9分)下面程序都留有空白,请将程序补充完整,
1.请完成下面的程序
#include
usingnamespacestd;//使用标准命名空间std
//测试静态成员类
classTest
{
private:
inta;//数据成员
public:
Test(intx=0):
[1]{}//构造函数
voidShow(){cout<<"a:
"< }; intmain(void)//主函数main(void) { Testobj(168);//定义对象 obj.Show();//显示数据成员之值 return0;//返回值0,返回操作系统 } 2.请完成下面的程序 #include usingnamespacestd;//使用标准命名空间std //整数类 classInteger { private: inta;//数据成员 public: Integer(intx=0){a=x;}//构造函数 [2](){returna;}//类型转换函数(将类类型转换为整型) }; intmain(void)//主函数main(void) { Integera=6;//定义整数对象 cout< return0;//返回值0,返回操作系统 } 3.请完成下面的程序 #include usingnamespacestd;//使用标准命名空间std //复数类 classComplex { private: doublerealPart;//实部 doubleimagePart;//虚部 public: Complex(doublereal=0,doubleimage=0): realPart(real),imagePart(image){}//构造函数 doubleGetRealPart()const{returnrealPart;}//返回实部 doubleGetImagePart()const{returnimagePart;}//返回虚部 Complexoperator+(constComplex&a)const//重载加法运算符+ { returnComplex([3]);//返回和 } }; intmain(void)//主函数main(void) { Complexa(1,2),b(2,6),c;//定义复数对象 c=a+b;//复数加法运算 cout<<"a="< cout<<"b="< cout<<"c="< return0;//返回值0,返回操作系统 } 四、程序分析题(本大题共4小题,每小题5分,共20分)给出下面各程序的输出结果。 1.阅读下面程序,写出输出结果。 #include usingnamespacestd;//使用标准命名空间std classA { public: virtualvoidShow()const {cout<<"ClassA"< }; classB: publicA { public: voidShow()const {cout<<"ClassB"< }; voidShow(constA&obj) {obj.Show();} intmain(void) { Aa;Bb; Show(a);Show(b); A*p; p=&a;p->Show(); p=&b;p->Show(); B*q; q=&b;q->Show(); return0;//返回值0,返回操作系统 } 上面程序的输出结果为: 2.阅读下面程序,写出输出结果。 #include usingnamespacestd;//使用标准命名空间std template voidShow(ElemTypea[],intn) {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 面向 对象 程序设计 模拟 试题