面向对象程序设计试题(二)

面向对象程序设计试题(二)

ID:18789321

大小:210.50 KB

页数:5页

时间:2018-09-23

面向对象程序设计试题(二)_第1页
面向对象程序设计试题(二)_第2页
面向对象程序设计试题(二)_第3页
面向对象程序设计试题(二)_第4页
面向对象程序设计试题(二)_第5页
资源描述:

《面向对象程序设计试题(二)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、姓名²本试卷满分100分;²请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰;²请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和草纸一并交上来。一、单选题(共10分,每题1分)1.C++中解决命名冲突的机制是:(A)虚基类(B)虚函数(C)函数重载(D)名字空间(namespace)2.若类A的一个对象所占的内存空间中包含虚函数表的入口地址,则:(A)类A不能有静态数据成员       (B)类A中公有的成员函数一定是虚的(C)类A中至少有一个成员函数是虚的   (D)类A的析构函数一定是虚的3.任意一个类,析构函数的个数最多

2、是:(A)不限个数(B)1(C)2(D)34.下列关于this指针的说法,哪个是正确的:(A)this指针一定指向常量型数据(B)this指向的数据不可更改(C)静态成员函数中也可以访问this指针(D)this指针本身可直接作为成员函数的返回值5.在类定义中,为说明成员的访问权限,private,protected,public可以出现次数为:(A)次数没有具体限定(B)每种至多一次(C)public至少一次(D)每种至少一次6.下面哪种定义方式是正确的,并且使得p可以作为函数voidf(A*constpp);的实参:(A) A*p=newA;(B) Aa;

3、A*p=a;(C) constA*p=newA;(D) Aa;constA*p=a;7.obj是类A的一个对象,执行语句constA&aA=obj;,则下列说法正确的是:(A) 类A的拷贝构造函数会被调用(B) 类A的赋值函数会被调用(C) &aA的值就是&obj(D)语句obj.f();等价于语句aA.f();8.下面关于访问类A的私有数据成员的说法,错误的是:(A) 类A的友元函数可以访问类A的私有成员。(B) 类A的友元类中的非静态成员函数可以访问类A的私有成员。(C) 类A的嵌套类中的非静态成员函数可以访问类A的私有成员。(D) 类A中的非静态成员函数

4、可以访问类A的私有成员。9.类A中有唯一的一个成员函数f,且f是公有的静态或非静态成员函数,对于类A的一个对象a,执行语句a.f(100);成功,那么f的函数原型不可以是:(A)A&f(int,int=50);(B)voidf(int&);(C)constA*f(constint);(D)Af(constint&);10.下面关于类的成员函数描述不正确的是:(A)静态成员函数内可以直接访问类的非静态成员数据第5页共4页(B)静态成员函数内可以直接访问类的静态成员数据(C)非静态成员函数可以直接访问类的非静态成员数据(D)非静态成员函数可以直接访问类的静态成员数

5、据二、判断正误,对于你认为错误的论述,说明原因或举出反例。(每题2分,共20分)1.重载流操作符<<和>>时,如果第一个参数的类型为ostream和istream,那么这个重载函数既可以用于标准输入输出流,也可以用于文件流上。2.在同一个类中,可以定义重载的成员函数voidf(int);和virtualvoidf(int);。3.抽象类不会产生实例,所以不需要有构造函数。4.类A有一个非静态的成员函数f,其函数原型是:voidA::f()const,则该函数被调用时,一定是通过类A或类A的某后裔类的一个用const修饰符说明的常量对象调用的。5.异常必须在其产

6、生的当前函数中捕获,而不能在外层函数中捕获该异常。6.只要程序中没有Aa1=a2;和Aa1(a2);形式的代码,类A的拷贝构造函数就不会被调用。7.在protected继承方式下,派生类对象的指针不能直接转换成指向基类对象的指针。8.若静态成员函数中调用了一个函数f,那么f一定不是虚函数。9.若要实例化一个含有引用型数据成员的类,那么只能使用构造函数初始化列表来初始化该数据成员。10.构造函数的函数体中,不能使用return语句;但在实现该类的自动类型转化函数时,必须有return语句。三、回答下列各题(每题4分,共20分)1.举例说明static关键字的用法

7、和相应目的(至少3种)。2.举例说明类的数据成员在哪些情况下必须在初始化列表中进行初始化(至少3种)。3.举例说明虚拟继承的作用和目的。4.举例说明成员函数A&f()const;和成员函数A&f();的区别。5.有类A的对象a,任意给出一种解决方案,使得程序支持下面的表达式:a=10+a;四、指出下列程序代码中存在的错误或不足,说明原因。(每题5分,共10分)1.#includeclassA{public:virtual~A(){}virtualvoidf(){cout<<"A::f()"<

8、out<<"A::g()"<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。