南开大学22秋学期《面向对象程序设计》在线作业二

奥鹏教育南开大学平时作业

南开大学22秋学期《面向对象程序设计》在线作业二插图

22秋学期(高起本1709-1803、全层次1809-2103)《面向对象程序设计》在线作业-00002

空类的声明( )是正确的。
A:class类名;
B:class类名{};
C:class类名{}
D:class类名
正确答案获取微信:424329

关于抽象类, 下列表述正确的是( )。
A:抽象类的成员函数中至少有一个没有实现的函数(即无函数体定义的函数)
B:派生类必须实现作为基类的抽象类中的纯虚函数
C:派生类不可能成为抽象类
D:抽象类不能用于定义对象
正确答案获取微信:424329

下列( )是构造函数的特征。
A:构造函数在创建对象时自动调用
B:构造函数不可以重载
C:构造函数不可以设置默认参数
D:构造函数必须指定函数类型
正确答案获取微信:424329

C++对C语言做了很多改进,下列描述中( )使得C语言发生了质变,即从面向过程变成面向对象。
A:增加了一些新的运算符
B:允许函数重载,并允许设置默认参数
C:规定函数说明必须用原型
D:引进类和对象的概念
正确答案获取微信:424329

在一个类中,可以对一个操作符进行()重载。
A:1种
B:2种
C:3种
D:多种
正确答案获取微信:424329

在C++中,关于下列设置参数默认值的描述中,正确的是( )。
A:不允许设置参数的默认值
B:设置参数默认值只能在定义函数时设置
C:设置参数默认值时,应该是先设置右边的再设置左边的
D:设置参数默认值时,应该全部参数都设置
正确答案获取微信:424329

类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

下面对析构函数的正确描述是( )。
A:系统不能提供默认的析构函数
B:析构函数必须由用户定义
C:析构函数没有参数
D:析构函数可以设置默认参数
正确答案获取微信:424329

类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

若类中有指针成员变量,则应编写(),使得在对象销毁时能够自动调用该函数释放指针成员变量所指向的内存空间。
A:友元函数
B:虚函数
C:构造函数
D:析构函数
正确答案获取微信:424329

下面对构造函数的不正确描述是( )。
A:系统可以提供默认的构造函数
B:构造函数可以有参数,所以可以有返回值
C:构造函数可以重载
D:构造函数可以设置默认参数
正确答案获取微信:424329

在C++中,通过()的机制可以对原有的类进行扩充和完善以适应新的需要。
A:继承
B:封装
C:多态
D:重载
正确答案获取微信:424329

设置虚基类的目的是()。
A:简化程序
B:消除二义性
C:提高运行效率
D:减少目标代码
正确答案获取微信:424329

下列( )不是构造函数的特征。
A:构造函数的函数名与类名相同
B:构造函数可以重载
C:构造函数可以设置默认参数
D:构造函数必须指定类型说明
正确答案获取微信:424329

将一个函数声明为某类的友元函数后,则在函数中不可以直接访问该类的()。
A:公有成员
B:私有成员
C:保护成员
D:都可访问
正确答案获取微信:424329

用于类中虚成员函数说明的关键字( )。
A:virtual
B:public
C:protected
D:private
正确答案获取微信:424329

要在类对象上使用运算符,以下不用必须被重载的运算符是()。
A:[ ]
B:=
C:++
D:–
正确答案获取微信:424329

下面叙述不正确的是( )。
A:基类的保护成员在派生类中仍然是保护的
B:基类的保护成员在公有派生类中仍然是保护的
C:基类的保护成员在私有派生类中是私有的
D:对基类成员的访问必须是无二义性
正确答案获取微信:424329

类A是类B的友元,类B是类C的友元,则( )是正确的。
A:类B是类A的友元
B:类C是类A的友元
C:类A是类C的友元
D:以上都不对
正确答案获取微信:424329

有关析构函数的说法不正确的是( )。
A:析构函数有且仅有一个
B:析构函数和构造函数一样可以有形参
C:析构函数的功能是用来释放一个对象
D:析构函数无任何函数类型
正确答案获取微信:424329

下列关于构造函数说法不正确的是()。
A:构造函数必须与类同名
B:构造函数可以省略不写
C:构造函数必须有返回值
D:在构造函数中可以对类中的成员进行初始化
正确答案获取微信:424329

在表达式x+y*z中,+ 是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是()。
A:operator+有两个参数,operator*有两个参数
B:operator+有两个参数,operator*有一个参数
C:operator+有一个参数,operator*有两个参数
D:operator+有一个参数,operator*有一个参数
正确答案获取微信:424329

假设A为抽象类,下列语句( )是正确的。
A:A fun(int);
B:A *p;
C:int fun(A);
D:A Obj;
正确答案获取微信:424329

在类定义的外部,可以被访问的成员有( )。
A:所有类成员
B:private或protected的类成员
C:public的类成员
D:public或private的类成员
正确答案获取微信:424329

在一个string类对象表示的字符串中查找子串,应该使用string类的()函数。
A:assign
B:insert
C:swap
D:find
正确答案获取微信:424329

下面叙述错误的是( )。
A:派生类可以使用private派生
B:对基类成员的访问必须是无二义性的
C:基类成员的访问能力在派生类中维持不变
D:赋值兼容规则也适用于多继承的组合
正确答案获取微信:424329

下列关于C++类的描述中错误的是( )。
A:类与类之间可以通过一些手段进行通信和联络
B:类用于描述事物的属性和对事物的操作
C:类与类之间必须是平等的关系,而不能组成层次关系
D:类与类之间可以通过封装而具有明确的独立性
正确答案获取微信:424329

下列程序中说明的公有成员是( )
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

程序在调用重载函数时,根据()区分到底要调用哪个函数。
A:函数名
B:返回值类型
C:参数个数和类型
D:以上都可以
正确答案获取微信:424329

类的默认的无参构造函数()。
A:在任何情况下都存在
B:仅当未定义无参构造函数时存在
C:仅当未定义有参构造函数时存在
D:仅当未定义任何构造函数时存在
正确答案获取微信:424329

通常拷贝构造函数的参数表是( )。
A:某个对象名
B:某个对象的成员名
C:某个对象的引用名
D:某个对象的指针名
正确答案获取微信:424329

在类的定义形式中,数据成员、成员函数和( )组成了类定义体。
A:成员的访问控制信息
B:公有消息
C:私有消息
D:保护消息
正确答案获取微信:424329

下列表示引用的方法中,( )是正确的。 已知:int k=1000;
A:int
B:char
C:int
D:float
正确答案获取微信:424329

下列描述中,()是抽象类的特性。
A:可以说明虚函数
B:可以定义友元函数
C:可以进行构造函数重载
D:不能说明其对象
正确答案获取微信:424329

下列关于虚函数的说明中,正确的是()。
A:从虚基类继承的函数都是虚函数
B:虚函数不得是静态成员函数
C:只能通过指针或引用调用虚函数
D:抽象类中的成员函数都是虚函数
正确答案获取微信:424329

编程是将所设计的算法转换成计算机能够运行的代码的过程。
A:对
B:错
正确答案获取微信:424329

在一个类中最多只能定义1个构造函数和1个析构函数。
A:对
B:错
正确答案获取微信:424329

面向对象程序设计方法中也会使用结构化程序设计方法。
A:对
B:错
正确答案获取微信:424329

假定用户没有给一个名为AB的类定义析构函数,则系统自动给出的缺省析构函数定义为~AB(){ }。
A:对
B:错
正确答案获取微信:424329

派生类至少有一个基类。
A:错误
B:正确
正确答案获取微信:424329

要使语句“MyClass a;”能够编译通过,必须在定义MyClass类时编写无参构造函数。
A:错误
B:正确
正确答案获取微信:424329

定义重载函数时,应保证函数类型有所不同。
A:对
B:错
正确答案获取微信:424329

预定义的提取符和插入符是可以重载的。
A:对
B:错
正确答案获取微信:424329

对一个类中的数据成员的初始化,可以通过构造函数来实现。
A:对
B:错
正确答案获取微信:424329

函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。
A:对
B:错
正确答案获取微信:424329

在派生类对象销毁奥鹏教育南开大学平时作业时,系统除了会自动调用派生类的析构函数,还会自动调用基类的析构函数。
A:错误
B:正确
正确答案获取微信:424329

构造函数和析构函数均不能被说明为虚函数。
A:对
B:错
正确答案获取微信:424329

一个类的构造函数中可以不包含对其子对象的初始化。
A:对
B:错
正确答案获取微信:424329

类的静态成员函数中不能访问非静态成员。
A:对
B:错
正确答案获取微信:424329

类中所提供的成员函数可以直接访问该类的私有成员。
A:错误
B:正确
正确答案获取微信:424329

提供优质的教育资源

公众号: 超前自学网