南开大学22秋学期(高起本1709-1803、全层次1809-2103)《面向对象程序设计》在线作业二
奥鹏南开在线作业满分答案参考
22秋学期(高起本1709-1803、全层次1809-2103)《面向对象程序设计》在线作业-00002
1.空类的声明( )是正确的。
选项A:class类名;
选项B:class类名{};
选项C:class类名{}
选项D:class类名
满分答案问询微信:424329
2.关于抽象类, 下列表述正确的是( )。
选项A:抽象类的成员函数中至少有一个没有实现的函数(即无函数体定义的函数)
选项B:派生类必须实现作为基类的抽象类中的纯虚函数
选项C:派生类不可能成为抽象类
选项D:抽象类不能用于定义对象
满分答案问询微信:424329
3.下列( )是构造函数的特征。
选项A:构造函数在创建对象时自动调用
选项B:构造函数不可以重载
选项C:构造函数不可以设置默认参数
选项D:构造函数必须指定函数类型
满分答案问询微信:424329
4.C++对C语言做了很多改进,下列描述中( )使得C语言发生了质变,即从面向过程变成面向对象。
选项A:增加了一些新的运算符
选项B:允许函数重载,并允许设置默认参数
选项C:规定函数说明必须用原型
选项D:引进类和对象的概念
满分答案问询微信:424329
5.在一个类中,可以对一个操作符进行()重载。
选项A:1种
选项B:2种
选项C:3种
选项D:多种
满分答案问询微信:424329
6.在C++中,关于下列设置参数默认值的描述中,正确的是( )。
选项A:不允许设置参数的默认值
选项B:设置参数默认值只能在定义函数时设置
选项C:设置参数默认值时,应该是先设置右边的再设置左边的
选项D:设置参数默认值时,应该全部参数都设置
满分答案问询微信:424329
7.类aClass的定义如下:
class aClass
{public:
aClass(){}
aClass(int i){value=new int(i);}
int *value;
}
若要对类中的value赋值,则下面的语句中,正确的是()。
选项A:aClass my; my.value=10;
选项B:aClass my; *my.value=10;
选项C:aClass my; my.*value=10;
选项D:aClass my(10);
满分答案问询微信:424329
8.下面对析构函数的正确描述是( )。
选项A:系统不能提供默认的析构函数
选项B:析构函数必须由用户定义
选项C:析构函数没有参数
选项D:析构函数可以设置默认参数
满分答案问询微信:424329
9.类MyClass的定义如下:
class MyClass
{
public:
MyClass() { value = 0;}
SetVariable(int i) { value = i; }
private:
int value;
}
则对下列语句序列正确的描述是()。
MyClass *p,my; p=SetVariable(5)与语句my.SetVariable(5)等价
满分答案问询微信:424329
10.若类中有指针成员变量,则应编写(),使得在对象销毁时能够自动调用该函数释放指针成员变量所指向的内存空间。
选项A:友元函数
选项B:虚函数
选项C:构造函数
选项D:析构函数
满分答案问询微信:424329
11.下面对构造函数的不正确描述是( )。
选项A:系统可以提供默认的构造函数
选项B:构造函数可以有参数,所以可以有返回值
选项C:构造函数可以重载
选项D:构造函数可以设置默认参数
满分答案问询微信:424329
12.在C++中,通过()的机制可奥鹏南开在线作业满分答案参考以对原有的类进行扩充和完善以适应新的需要。
选项A:继承
选项B:封装
选项C:多态
选项D:重载
满分答案问询微信:424329
13.设置虚基类的目的是()。
选项A:简化程序
选项B:消除二义性
选项C:提高运行效率
选项D:减少目标代码
满分答案问询微信:424329
14.下列( )不是构造函数的特征。
选项A:构造函数的函数名与类名相同
选项B:构造函数可以重载
选项C:构造函数可以设置默认参数
选项D:构造函数必须指定类型说明
满分答案问询微信:424329
15.将一个函数声明为某类的友元函数后,则在函数中不可以直接访问该类的()。
选项A:公有成员
选项B:私有成员
选项C:保护成员
选项D:都可访问
满分答案问询微信:424329
16.用于类中虚成员函数说明的关键字( )。
选项A:virtual
选项B:public
选项C:protected
选项D:private
满分答案问询微信:424329
17.要在类对象上使用运算符,以下不用必须被重载的运算符是()。
选项A:[ ]
选项B:=
选项C:++
选项D:–
满分答案问询微信:424329
18.下面叙述不正确的是( )。
选项A:基类的保护成员在派生类中仍然是保护的
选项B:基类的保护成员在公有派生类中仍然是保护的
选项C:基类的保护成员在私有派生类中是私有的
选项D:对基类成员的访问必须是无二义性
满分答案问询微信:424329
19.类A是类B的友元,类B是类C的友元,则( )是正确的。
选项A:类B是类A的友元
选项B:类C是类A的友元
选项C:类A是类C的友元
选项D:以上都不对
满分答案问询微信:424329
20.有关析构函数的说法不正确的是( )。
选项A:析构函数有且仅有一个
选项B:析构函数和构造函数一样可以有形参
选项C:析构函数的功能是用来释放一个对象
选项D:析构函数无任何函数类型
满分答案问询微信:424329
21.下列关于构造函数说法不正确的是()。
选项A:构造函数必须与类同名
选项B:构造函数可以省略不写
选项C:构造函数必须有返回值
选项D:在构造函数中可以对类中的成员进行初始化
满分答案问询微信:424329
22.在表达式x+y*z中,+ 是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是()。
选项A:operator+有两个参数,operator*有两个参数
选项B:operator+有两个参数,operator*有一个参数
选项C:operator+有一个参数,operator*有两个参数
选项D:operator+有一个参数,operator*有一个参数
满分答案问询微信:424329
23.假设A为抽象类,下列语句( )是正确的。
选项A:A fun(int);
选项B:A *p;
选项C:int fun(A);
选项D:A Obj;
满分答案问询微信:424329
24.在类定义的外部,可以被访问的成员有( )。
选项A:所有类成员
选项B:private或protected的类成员
选项C:public的类成员
选项D:public或private的类成员
满分答案问询微信:424329
25.在一个string类对象表示的字符串中查找子串,应该使用string类的()函数。
选项A:assign
选项B:insert
选项C:swap
选项D:find
满分答案问询微信:424329
26.下面叙述错误的是( )。
选项A:派生类可以使用private派生
选项B:对基类成员的访问必须是无二义性的
选项C:基类成员的访问能力在派生类中维持不变
选项D:赋值兼容规则也适用于多继承的组合
满分答案问询微信:424329
27.下列关于C++类的描述中错误的是( )。
选项A:类与类之间可以通过一些手段进行通信和联络
选项B:类用于描述事物的属性和对事物的操作
选项C:类与类之间必须是平等的关系,而不能组成层次关系
选项D:类与类之间可以通过封装而具有明确的独立性
满分答案问询微信:424329
28.下列程序中说明的公有成员是( )
class Location
{
int X;
public:
void init(int initX,int initY);
private:
int Y;
public:
int GetX();
int GetY();
};
选项A:X
选项B:init(int initX,int initY)
选项C:GetX(),GetY()
选项D:B和C都是
满分答案问询微信:424329
29.程序在调用重载函数时,根据()区分到底要调用哪个函数。
选项A:函数名
选项B:返回值类型
选项C:参数个数和类型
选项D:以上都可以
满分答案问询微信:424329
30.类的默认的无参构造函数()。
选项A:在任何情况下都存在
选项B:仅当未定义无参构造函数时存在
选项C:仅当未定义有参构造函数时存在
选项D:仅当未定义任何构造函数时存在
满分答案问询微信:424329
31.通常拷贝构造函数的参数表是( )。
选项A:某个对象名
选项B:某个对象的成员名
选项C:某个对象的引用名
选项D:某个对象的指针名
满分答案问询微信:424329
32.在类的定义形式中,数据成员、成员函数和( )组成了类定义体。
选项A:成员的访问控制信息
选项B:公有消息
选项C:私有消息
选项D:保护消息
满分答案问询微信:424329
33.下列表示引用的方法中,( )是正确的。 已知:int k=1000;
选项A:int
选项B:char
选项C:int
选项D:float
满分答案问询微信:424329
34.下列描述中,()是抽象类的特性。
选项A:可以说明虚函数
选项B:可以定义友元函数
选项C:可以进行构造函数重载
选项D:不能说明其对象
满分答案问询微信:424329
35.下列关于虚函数的说明中,正确的是()。
选项A:从虚基类继承的函数都是虚函数
选项B:虚函数不得是静态成员函数
选项C:只能通过指针或引用调用虚函数
选项D:抽象类中的成员函数都是虚函数
满分答案问询微信:424329
36.编程是将所设计的算法转换成计算机能够运行的代码的过程。
选项A:对
选项B:错
满分答案问询微信:424329
37.在一个类中最多只能定义1个构造函数和1个析构函数。
选项A:对
选项B:错
满分答案问询微信:424329
38.面向对象程序设计方法中也会使用结构化程序设计方法。
选项A:对
选项B:错
满分答案问询微信:424329
39.假定用户没有给一个名为AB的类定义析构函数,则系统自动给出的缺省析构函数定义为~AB(){ }。
选项A:对
选项B:错
满分答案问询微信:424329
40.派生类至少有一个基类。
选项A:错误
选项B:正确
满分答案问询微信:424329
41.要使语句“MyClass a;”能够编译通过,必须在定义MyClass类时编写无参构造函数。
选项A:错误
选项B:正确
满分答案问询微信:424329
42.定义重载函数时,应保证函数类型有所不同。
选项A:对
选项B:错
满分答案问询微信:424329
43.预定义的提取符和插入符是可以重载的。
选项A:对
选项B:错
满分答案问询微信:424329
44.对一个类中的数据成员的初始化,可以通过构造函数来实现。
选项A:对
选项B:错
满分答案问询微信:424329
45.函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。
选项A:对
选项B:错
满分答案问询微信:424329
46.在派生类对象销毁时,系统除了会自动调用派生类的析构函数,还会自动调用基类的析构函数。
选项A:错误
选项B:正确
满分答案问询微信:424329
47.构造函数和析构函数均不能被说明为虚函数。
选项A:对
选项B:错
满分答案问询微信:424329
48.一个类的构造函数中可以不包含对其子对象的初始化。
选项A:对
选项B:错
满分答案问询微信:424329
49.类的静态成员函数中不能访问非静态成员。
选项A:对
选项B:错
满分答案问询微信:424329
50.类中所提供的成员函数可以直接访问该类的私有成员。
选项A:错误
选项B:正确
满分答案问询微信:424329