南开21春学期2103《面向对象程序设计》在线作业 396doc.docx
《南开21春学期2103《面向对象程序设计》在线作业 396doc.docx》由会员分享,可在线阅读,更多相关《南开21春学期2103《面向对象程序设计》在线作业 396doc.docx(9页珍藏版)》请在冰豆网上搜索。
南开21春学期2103《面向对象程序设计》在线作业396doc
1.下列关于构造函数说法不正确的是()。
A.构造函数必须与类同名 B.构造函数可以省略不写 C.构造函数必须有返回值 D.在构造函数中可以对类中的成员进行初始化
【参考答案】:
C
2.若派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的(?
?
)。
A.私有成员 B.公有成员 C.保护成员 D.保护成员或私有成员
【参考答案】:
A
3.类A是类B的友元,类B是类C的友元,则()是正确的。
A.类B是类A的友元 B.类C是类A的友元 C.类A是类C的友元 D.以上都不对
【参考答案】:
D
4.下列关于构造函数调用顺序的描述中,正确的是()。
A.创建派生类对象时,先调用基类的构造函数,后调用派生类的构造函数 B.创建基类对象时,先调用基类的构造函数,后调用派生类的构造函数 C.创建派生类对象时,先调用派生类的构造函数,后调用基类的构造函数 D.创建基类对象时,先调用派生类的构造函数,后调用基类的构造函数
【参考答案】:
A
5.派生类的构造函数的成员初始化列表中,不能包含()。
A.基类的构造函数 B.派生类中子对象的初始化 C.基类的子对象初始化 D.派生类中一般数据成员的初始化
【参考答案】:
C
6.对于任意一个类,析构函数的个数最多为()。
A.0 B.1 C.2 D.3
【参考答案】:
B
7.对于任意一个类,构造函数的个数最少为()。
A.0 B.1 C.2 D.3
【参考答案】:
B
8.类MyClass的定义如下:
classMyClass{public:
MyClass(){value=0;}SetVariable(inti){value=i;}private:
intvalue;}则对下列语句序列正确的描述是()。
MyClass*p,my;p=&my;
A.语句p=&my;是把对象my赋值给指针变量p B.语句MyClass*p,my;会调用两次类MyClass的构造函数 C.对语句*p.SetVariable(5)的调用是正确的 D.语句p-SetVariable(5)与语句my.SetVariable(5)等价
【参考答案】:
D
9.下列类中()是输入/输出流类iostream的派生类。
A.fstream B.ofstream C.ifstream D.ostream
【参考答案】:
A
10.有下面类的说明,有错误的语句是()。
classX{A.inta=2;B.X();public:
C.X(intval);D.~X();};
A.A B.B C.C D.D
【参考答案】:
A
11.如果一个类至少有一个纯虚函数,那么就称该类为()。
A.抽象类 B.派生类 C.纯基类 D.以上都不对
【参考答案】:
A
12.下面说法中正确的是()。
A.一个类只能定义一个构造函数,但可以定义多个析构函数 B.一个类只能定义一个析构函数,但可以定义多个构造函数 C.构造函数与析构函数同名,只要名字前加了一个求反符号(~) D.构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以
【参考答案】:
B
13.下面函数原型声明中,()声明了fun为纯虚函数。
A.voidfun()=0; B.virtualvoidfun()=0; C.virtualvoidfun(); D.virtualvoidfun(){};
【参考答案】:
B
14.类的默认的无参构造函数()。
A.在任何情况下都存在 B.仅当未定义无参构造函数时存在 C.仅当未定义有参构造函数时存在 D.仅当未定义任何构造函数时存在
【参考答案】:
D
15.撤消对象时,系统自动调用()函数。
A.成员函数 B.构造函数 C.析构函数 D.普通函数
【参考答案】:
C
16.对静态成员的不正确描述是()。
A.静态成员不属于对象,是类的共享成员 B.静态数据成员要在类外定义和初始化 C.调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针 D.非静态成员函数也可以操作静态数据成员
【参考答案】:
C
17.关于对象成员的构造函数的调用顺序,说法正确的是()。
A.与它们在成员初始化列表中给出的顺序相同 B.与析构函数的调用顺序相同 C.与它们在类中说明顺序相同 D.以上说法都不对
【参考答案】:
C
18.下面()的叙述不符合赋值兼容规则。
A.派生类的对象可以赋值给基类的对象 B.基类的对象可以赋值给派生类的对象 C.派生类的对象可以初始化基类的对象 D.派生类的对象的地址可以赋值给指向基类的指针
【参考答案】:
B
19.关于多继承二义性的描述中,错误的是()。
A.一个派生类的基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性 B.解决二义性的最常用的方法是对成员名的限定法 C.基类和派生类同时出现的同名函数,也存在二义性问题 D.一个派生类是从两个基类派生出来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,可能出现二义性
【参考答案】:
C
20.有关析构函数的说法不正确的是()。
A.析构函数有且仅有一个 B.析构函数和构造函数一样可以有形参 C.析构函数的功能是用来释放一个对象 D.析构函数无任何函数类型
【参考答案】:
B
21.下面说法中正确的是()。
A.当声明的内容不同时,声明同一个名字的两个类是允许的 B.不完全声明的类也可以实例化 C.声明同一个名字的两个类时,要求声明的内容也相同 D.声明同一个名字的两个类是错误的
【参考答案】:
D
22.下列虚基类的声明中,正确的是()。
A.classvirtualB:
publicA B.virtualclassB:
publicA C.classB:
publicAvirtual D.classB:
virtualpublicA
【参考答案】:
D
23.友元访问类对象的成员时使用()。
A.类的成员名 B.“this->成员名”的形式 C.“类名:
:
成员名”的形式 D.“对象名.成员名”的形式
【参考答案】:
D
24.类对象占用内存的大小与()有关。
A.数据成员 B.成员函数 C.数据成员和成员函数 D.私有成员
【参考答案】:
A
25.若一个类中含有纯虚函数,则该类称为()。
A.基类 B.纯基类 C.派生类 D.抽象类
【参考答案】:
D
26.C++对C语言做了很多改进,下列描述中()使得C语言发生了质变,即从面向过程变成面向对象。
A.增加了一些新的运算符 B.允许函数重载,并允许设置默认参数 C.规定函数说明必须用原型 D.引进类和对象的概念
【参考答案】:
D
27.下面关于类的成员函数描述不正确的是()。
A.静态成员函数内可以直接访问类的非静态成员数据 B.静态成员函数内可以直接访问类的静态成员数据 C.非静态成员函数可以直接访问类的非静态成员数据 D.非静态成员函数可以直接访问类的静态成员数据
【参考答案】:
A
28.关于动态关联的下列叙述中,()是错误的。
A.动态关联是以虚函数为基础的 B.动态关联调用虚函数操作是指向对象的指针或引用 C.动态关联是在运行时确定所调用的函数代码的 D.动态关联是在编译时确定操作函数的
【参考答案】:
D
29.假定MyClass为一个类,则该类的拷贝构造函数的声明语句为()。
A.MyClass(MyClassx) B.MyClass&(MyClassx) C.MyClass(MyClass&x) D.MyClass(MyClass*x)
【参考答案】:
C
30.交换两个string类对象所表示的字符串的内容,应该使用string类的()函数。
A.assign B.insert C.swap D.find
【参考答案】:
C
31.关于虚函数,下列表述正确的是()。
A.如果在重定义虚函数时使用virtual,则该重定义函数仍然是虚函数 B.虚函数不得声明为静态函数 C.虚函数不得声明为另一个类的友元函数 D.派生类必须重新定义基类的虚函数
【参考答案】:
B
32.在类定义的外部,可以被访问的成员有()。
A.所有类成员 B.private或protected的类成员 C.public的类成员 D.public或private的类成员
【参考答案】:
C
33.已知“inta=10;int&r=a;r=r+20;cout<A.10 B.20 C.30 D.不确定值
【参考答案】:
C
34.关于类和对象不正确的说法是()。
A.类是一种类型,它封装了数据和操作 B.对象是类的实例 C.一个类的对象只有一个 D.一个对象必属于某个类
【参考答案】:
C
35.友元关系不能()。
A.继承 B.是类与类之间是关系 C.是一个类的成员函数与另一个类的关系 D.提高程序的运行效率
【参考答案】:
A
36.在C++程序中,有且仅能有一个主函数,且其函数名必须是main。
A.错误 B.正确
【参考答案】:
B
37.对象成员的访问与结构变量成员的访问相同,使用运算符.或->。
T.对 F.错
【参考答案】:
T
38.一个类的构造函数中可以不包含对其子对象的初始化。
T.对 F.错
【参考答案】:
F
39.在类体中可以在声明成员变量的同时为其赋初值。
T.对 F.错
【参考答案】:
F
40.类的常量数据成员的值只能在创建对象时初始化,初始化后不得再修改。
T.对 F.错
【参考答案】:
T
41.在成员函数的函数类型前加上const关键字,则该成员函数就是常量成员函数。
T.对 F.错
【参考答案】:
F
42.类的成员函数中可以直接访问对象成员中的私有成员。
T.对 F.错
【参考答案】:
F
43.派生类的继承方式中有两种:
公有继承和私有继承。
T.对 F.错
【参考答案】:
F
44.引用是某个变量的别名。
对引用的操作,实质上就是对被引用的变量的操作。
T.对 F.错
【参考答案】:
T
45.私有继承中,对于基类中的所有成员,派生类的成员函数都不可直接访问。
A.错误 B.正确
【参考答案】:
A
46.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:
ABoperator+(AB&,AB&);
A.错误 B.正确
【参考答案】:
A
47.运算符重载的形式有两种:
成员函数形式和友元形式。
T.对 F.错
【参考答案】:
T
48.类的静态成员变量只能在静态成员函数中使用。
T.对 F.错
【参考答案】:
F
49.在私有继承中,基类中只有公有成员对派生类是可见的。
T.对 F.错
【参考答案】:
F
50.运算符重载是一种特殊的函数重载,其函数名为operator<重载运算符>。
T.对 F.错
【参考答案】:
T