深圳大学期末考试试卷选择题

  • 格式:doc
  • 大小:53.00 KB
  • 文档页数:11

一、单项选择题[2.0分/题]??( 得分率: 65.6%??平均得分: 27.55 )1、以下有关类的说法,不正确的是选项A:类是一种用户自定义的数据类型选项B:只有类中的成员函数或类的友元函数才能存取类的私有数据选项C:在类中,如果不做特殊说明,所有数据均为私有数据选项D:在类中,如果不做特殊说明,所有成员函数均为公有成员函数试题答案:D2、以下不是构造函数特征的是选项A:构造函数的函数名与类名相同选项B:构造函数可以重载选项C:构造函数可以设置默认参数选项D:构造函数必须指定类型说明试题答案:D?3、以下有关类和对象的叙述,不正确的是选项A:任何一个对象都属于一个具体的类选项B:类与对象的关系和数据类型与变量的关系相同选项C:类的数据成员不允许是另一个类的对象选项D:一个类可以被实例化多个对象试题答案:B4、设有以下类的定义:class Ex{ int x;public :void setx(int t=0);};若在类外定义成员函数setx(),以下定义形式正确的是选项A:void setx(int t){…}选项B:void Ex:: setx(int t){…}选项C:Ex::void setx(int t){…}选项D:void setx(){…}试题答案:B5、以下对派生类的描述中不正确的是选项A:一个派生类可以作为另一个派生类的基类选项B:一个派生类可以有多个基类选项C:具有继承关系时,基类成员在派生类中的访问权限不变选项D:派生类的构造函数与基类的构造函数有成员初始化参数传递关系试题答案:C6、设有基类定义:class cbase{ private: int a;protected: int b;public: int c;};派生类采用何种继承方式可以使成员变量b成为自己的私有成员选项A:私有继承选项B:保护继承选项C:公有继承选项D:私有,保护,公有均行试题答案:A7、设有cbase为基类,cderived是cbase的派生类,且有以下定义:cbase a1,*b1;cderived aa1,*bb1;则以下语句不合语法的是选项A:b1=bb1选项B:a1=aa1选项C:b1=&aa1选项D:bb1=(cbase*)b1试题答案:D8、下面的哪个保留字不能作为函数的返回类型?选项A:void选项B:int选项C:new选项D:long试题答案:C9、假定AB为一个类,则执行“AB a(4) , b[3] , * p[2] ;”语句时,自动调用该类构造函数的次数为选项A:3选项B:4选项C:6选项D:9试题答案:B10、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为选项A:AB operator+(AB& a , AB& b)选项B:AB operator+(AB& a)选项C:operator+(AB a)选项D:AB& operator+( )试题答案:B11、假定AB为一个类,则该类的拷贝构造函数的声明语句为选项A:AB&(AB x)选项B:AB(AB x)选项C:AB(AB&)选项D:AB(AB* x)试题答案:C12、对于结构中定义的成员,其隐含访问权限为选项A:public选项B:protected选项C:private选项D:static试题答案:A13、关于类和对象不正确的说法是选项A:类是一种类型,它封装了数据和操作选项B:对象是类的实例选项C:一个类的对象只有一个选项D:一个对象必属于某个类试题答案:C14、在类定义的外部,可以被访问的成员有选项A:所有类成员选项B:private或protected的类成员选项C:public的类成员选项D:public或private的类成员试题答案:C*15、关于this指针的说法错误的是选项A:this指针必须显示说明选项B:当创建一个对象后,this指针就指向该对象选项C:成员函数拥有this指针选项D:静态成员函数不拥有this指针试题答案:A16、声明一个类的对象时,系统自动调用构造函数,撤消对象时,系统自动调用(?)函数选项C:析构函数17、下面对构造函数的不正确描述是选项A:系统可以提供默认的构造函数选项B:构造函数可以有参数,所以可以有返回值选项C:构造函数可以重载选项D:构造函数可以设置默认参数试题答案:B18、下面对析构函数的正确描述是选项A:系统不能提供默认的析构函数选项B:析构函数必须由用户定义选项C:析构函数没有参数选项D:析构函数可以设置默认参数试题答案:C*19、对静态成员的不正确描述是选项A:静态成员不属于对象,是类的共享成员选项B:静态数据成员要在类外定义和初始化选项C:调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针选项D:非静态成员函数也可以操作静态数据成员试题答案:C20、下面选项中,不是类的成员函数为选项C:友元函数二、完型填空[10.0分/题]??( 得分率: 34.04%??平均得分: 6.81 )1、 #include <iostream.h>class BASE1 {public:BASE1(int x){ cout<<x<<"->Constructing base1 object.\n"; }~BASE1() {cout<<"Destructing base1 object.\n"; }};class BASE2 {public:BASE2(int x) {cout<<x<<"->Constructing base2 object.\n"; }~BASE2() {cout<<"Destructing base2 object.\n"; }};class DERIVED:public BASE2,public BASE1 {public:DERIVED(int x,int y):BASE1(x),BASE2(y){ cout<<"Constructing derived object. \n"; }~DERIVED() {cout<<"Destructing derived object.\n"; }};int main(){ DERIVED obj(10,20);return 0; }程序输出:—————1———————10->Constructing base1 object.——————2———————————3—————————————4——————Destructing base2 object.共四个选项,1,2,3,4,各备选项均相同A:Destructing base1 object.B:20->Constructing base2 object.C:Destructing derived object.D:Constructing derived object.试题答案:1B,2D,3C,4A??一、单项选择题[2.0分/题]??( 得分率: 58.5%??平均得分: 24.57 )(2010期中考B卷)1、下面选项中,不是类的成员函数为选项A:构造函数选项B:析构函数选项C:友元函数选项D:缺省参数的构造函数试题答案:C2、下面对友元的错误描述是选项A:关键字friend用于声明友元选项B:一个类的成员函数可以是另一个类的友元选项C:友元函数访问对象的成员不受访问特性影响选项D:友元函数通过this指针访问对象成员试题答案:D3、在C++中,类与类之间的继承关系具有选项A:自反性选项B:对称性选项C:传递性选项D:反对称性试题答案:C4、下列关于类的继承描述中,错误的是选项A:派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数选项B:派生类也是基类,但基类不一定具有派生类的全部属性和方法选项C:继承描述类的层次关系,派生类可以具有与基类相同的属性和方法选项D:一个基类可以有多个派生类,一个派生类可以有多个基类试题答案:A5、下面描述中,正确的是选项A:在基类定义的public成员在公有继承的派生类中可见,但不能在类外被访问选项B:在基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问选项C:在基类定义的public和protected成员在保护继承的派生类中不可见选项D:在派生类中不可见的成员要变成可访问的,需要进行访问声明试题答案:D6、当不同的类具有相同的间接基类时,有如下特点选项A:各派生类对象将按继承路线产生自己的基类版本选项B:派生类对象无法产生自己的基类版本选项C:为了建立惟一的间接基类版本,在基类定义前加virtual即可选项D:为了建立惟一的间接基类版本,不必声明虚继承试题答案:A7、在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值选项A:不同选项B:相同选项C:相容选项D:部分相同试题答案:B8、若一个类中含有纯虚函数,则该类称为选项D:抽象类试题答案:D9、下面有关new和delete操作符的说法。

哪个是不正确的选项A:使用new操作符,可以动态分配全局堆中的内存资源选项B:若指针P的类型已由A强制转换为void*,那么执行语句delete P时,类A的析构函数不会被调用。

选项C:实现全局函数时,new和delete通常成对地出现在由一对匹配的花括号限定的语句块中。

选项D:执行语句A* P=new A[100]时,类A的构造函数只会被调用一次。

10、应在下列程序画线处填入的正确语句是#include<iostream>class Base{ public:void fun(){cout<<”Base.fun”<<endl;}};class perived: public Base{ void fun (){ ________ //显示调用基类的函数fun()cout<<”Perived::fun”<<endl;}}选项A:fun()选项B:Base.fun()选项C:Base::fun()选项D:Base→fun()试题答案:C11、下列描述中,表达错误的是选项A:公有继承的基类中的public成员在派生类中仍是public的选项B:私有继承的基类中private成员在派生类中仍是private的选项C:公有继承的基类中的protected成员在派生类中仍protected的选项D:私有继承的基类中public成员在派生类中是private的试题答案:B12、下列关于构造函数的描述中,错误的是选项A:构造函数可以设置默认的参数选项B:构造函数在定义类对象时自动执行选项C:构造函数可以是内联函数选项D:构造函数不可以重载试题答案:D13、下列有关重载函数的说法中正确的是选项A:重载函数必须具有不同的返回值类型选项B:重载函数参数个数必须相同选项C:重载函数必须有不同的形参列表选项D:重载函数名可以不同试题答案:C14、C++语言是从早期的C语言逐渐发展演变来的,与C语言相比,它在求解问题方法上进行最大改进的是选项B:面向对象试题答案:B15、对于下面的几个函数:1. void f(int x) (…)2. int f(int y) (…)3. int f(int i,int j)(…)4. floct k(int x) (…)选项A:4个全部选项B:1和4选项C:2和3选项D:3和4试题答案:C16、以下关于C++中类的概念理解正确的是选项A:类作为一种数据类型,在定义时不分配任何内存选项B:类的成员要么是private的要么是public的选项C:在类中,如果没有显示指定成员的访问权限,则缺省的访问权限是public选项D:类对象与一般变量不同的是,在使用时无需初始化即可直接使用试题答案:A17、关于new运算符,以下使用错误的是选项A:int *p;p = new int(9);选项B:int *p;p =new int[9];选项C:char *s;s = new char;选项D:char *s;s = new[10];试题答案:D18、当一个派生类私有继承一个基类时,基类中的所有保护成员成为派生类的选项A:public成员选项B:private成员选项C:protected成员选项D:友元试题答案:B?19、以下不是C++语言关键字的是选项A:catch选项B:char选项C:value选项D:virtual试题答案:C20、类C是以多重继承的方式从类A和类B继承而来的,类A和类B无公共的基类,那么选项A:类C的继承方式只能采用public继承选项B:可改用单继承的方式实现类C的功能。