历年考试题-2003级C++面向对象程序设计试题A-计算机学院2004年冬天.pdf
上传人:文库****品店 上传时间:2024-09-15 格式:PDF 页数:6 大小:254KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

历年考试题-2003级C++面向对象程序设计试题A-计算机学院2004年冬天.pdf

历年考试题-2003级C++面向对象程序设计试题A-计算机学院2004年冬天.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《C++面向对象程序设计》试题(A卷)(满分:100分时间:150分钟日期:2005.1.10)一、(共20分,每题2分)单项选择1.已定义了一个类A并有语句A*pa=newA(5);那么以下说法正确的是:A.该语句会创建A类的一个对象,并将此对象的地址赋给指针pa;B.该语句会创建A类的5个对象,且它们的地址是连续的;C.当指针变量pa超出其作用域时,pa和为对象分配的空间都将被自动释放;D.类A中一定有一个显式定义的构造函数和一个显式定义的虚析构函数;2.定义类A的非静态成员函数A&f(A&one)时,需有语句returnexp;则exp不能是:A.类A中类型为A的静态数据成员B.f中用语句Aa=one;定义的量aC.oneD.*this3.在一个类中,下列哪些成员可以是多个?A.无参构造函数B.析构函数C.原型相同的非静态成员函数D.静态成员函数4.对类T中的下列成员,若不考虑代码优化,一般来说它们中的哪个执行起来最慢?A.缺省的无参构造函数B.缺省的拷贝构造函数C.Tf(){t;Treturnt;}D.不能判定A、B、C哪个最慢5.对函数原型为int&min(int&a,int&的b);全局函数,下列语句块哪个是错误的:A.intx=10,y=5;min(x,y)=100;B.intx=10,y=5,z;z=min(x,y+=x);C.intx=10,y=5;min(x,10)=y;D.intx=10,y=5;x=min(x,y);6.关于拷贝构造函数错误的说法有:A.拷贝构造函数是一种特殊的构造函数,且不能在类中进行函数重载。B.若自定义派生类的拷贝构造函数,那么也必须自定义基类的拷贝构造函数。C.拷贝构造函数只能有一个参数,且为常量引用或非常量引用。D.拷贝构造函数不允许在函数体中使用return语句。7.下列对虚基类声明正确的是:A.classvirtualB:publicAB.classB:virtualpublicAC.classB:publicAvirtualD.virtualclassB:publicA8.若有语句A*constp=newB;,其中类B是从类A直接派生得到的,那么下列说法错误的是:A.若要执行语句p->f();,那么类A中一定有一个与f(函数)匹配的函数声明。B.类B一定是通过public继承方式从类A派生的。C.类B的构造函数中,至少有一个无参的或提供全部缺省参数的构造函数。D.通过指针p,只能访问类中的常量成员函数或静态成员函数。9.下面说明的哪个数据不能作为类T的数据成员定义。A.T*pTB.classQ{}q1,q2;C.staticTt;D.constTt;10.下列哪种运算符可以被重载:A.sizeofB.::C.?:D.[]二、(共15分,每题3分)回答下列各题,可以举例说明。1.说明基类中的public、protected和private成员分别在public、protected和private继承方式下在派生类中的可访问性。2.若类A有私有数据成员int,n哪些情况下,在一个函数的函数体中能够直接访问A类的数据成员n。(至少三种)3.哪些情况下,定义构造函数时必须使用初始化列表。(至少三种)4.将一个基类的析构函数定义为虚函数的作用和目的是什么?5.为什么在类中不能用成员函数voidf(int&)重载(overload)本类的成员函数intf(int)?三、(共10分,每题1分)判断正误,只需回答“正确”或“错误”。1.this指针既可以是指向常量对象的非常量指针,也可以是指向非常量对象的常量指针。2.即使不创建类的实例对象,也可以在main函数中访问该类的公有静态成员函数。3.在一个函数体内不允许定义其它函数,同样在一个类中也不允许定义其它类。4.若想在一个cpp文件中使用一个模板类,那么在预编译后,此文件必须含有该模板类的全部声明和定义。5.在捕获异常时,异常会进行自动类型转换并按照异常类型的同一性进行匹配。6.一个抽象类的后裔类,既可以是抽象类,也可以是具体类。7.类A中的转换函数可定义为:intoperatorA()const{return0;}.8.类的多个实例对象可共享本类的虚拟表。9.用const修饰的成员函数只能通过常量对象调用。10.类B是类A的派生类,类C是类A的友员类,那么类C也是类B的友员类。四、(25分,每小题5分)指明下列各程序中存在的不符合C++语言规范之处(每题一处),说明你的理由或依据。解答方式可参考下面例子。例子程序:对左边例子程序可以解答如下:#include<iostream.h>classA{成员