来源:奥鹏远程教育 日期: 作者:奥鹏作业辅导
可做全部院校网课作业、课程代看、网考、论文辅导!答案请加微信:xx99ttt 或QQ:1514133056
南开19春学期(1709、1803、1809、1903)《面向对象程序设计》在线作业[答案]满分答案
19春学期(1709、1803、1809、1903)《面向对象程序设计》在线作业-0001试卷总分:100 得分:0
一、 单选题 (共 35 道试题,共 70 分)
1.下列关于赋值运算符重载的说法中正确的是()。
A.返回值一般是以引用方式返回的对象,而函数体中总是用语句“return *this;”返回this指针所指向的对象
B.赋值运算符只能以非成员函数的方式重载
C.赋值运算符既可以以成员函数的方式重载,又可以以非成员函数的方式重载
D.以上均不正确
2.若类中有指针成员变量,则应编写(),使得在对象销毁时能够自动调用该函数释放指针成员变量所指向的内存空间。
A.友元函数
B.虚函数
C.构造函数
D.析构函数
3.下列关于构造函数调用顺序的描述中,正确的是()。
A.创建派生类对象时,先调用基类的构造函数,后调用派生类的构造函数
B.创建基类对象时,先调用基类的构造函数,后调用派生类的构造函数
C.创建派生类对象时,先调用派生类的构造函数,后调用基类的构造函数
D.创建基类对象时,先调用派生类的构造函数,后调用基类的构造函数
4.有关析构函数的说法正确的是( )。
A.析构函数可以有多个
B.析构函数和构造函数一样可以有形参
C.析构函数的功能是用来释放一个对象
D.析构函数的函数类型为void
5.缺省析构函数的函数体是( )。
A.不存在
B.随机产生的
C.空的
D.无法确定的
6.this指针是C++实现( )的一种机制。
A.抽象
B.封装
C.继承
D.重载
7.实现运行时的多态性要使用()。
A.构造函数
B.析构函数
C.重载函数
D.虚函数
8.单目运算符作为类成员函数重载时()。
A.有形参
B.没有形参
C.有实参
D.以上都不正确
9.下列关于运算符重载的描述中,()是正确的。
A.运算符重载可以改变操作数的个数
B.运算符重载可以改变优先级
C.运算符重载可以改变结合性
D.运算符重载不可以改变语法结构
10.对于下面定义的类A在函数f()中将对象成员n的值修改为60的语句应该是( ) class A { public: A(int x){n=x;} void SetNum(int n1){n=n1;} private: int n; } int f() { A*ptr=new A(6); }
A.A(60)
B.SetNum(60)
C.ptr->SetNum(60)
D.ptr->n=60
11.已知“int a=10;int &r=a; r=r+20;cout<<a;”,则输出为()。
A.10
B.20
C.30
D.不确定值
12.进行文件操作时需要包含_ ()头文件。
A.iostream
B.fstream
C.stdio
D.stdlib
13.下列引用的定义中,( )是错误的。
A.int i; int &j=i;
B.int i; int &j; j=i;
C.float i; float &j=i;
D.char d; char &k=d;
14.下面叙述不正确的是( )。
A.基类的保护成员在派生类中仍然是保护的
B.基类的保护成员在公有派生类中仍然是保护的
C.基类的保护成员在私有派生类中是私有的
D.对基类成员的访问必须是无二义性
15.下列类中( )是输入/输出流类iostream的派生类。
A.fstream
B.ofstream
C.ifstream
D.ostream
16.变量的引用,其含义是指该变量的()。
A.值
B.类型
C.别名
D.地址
17.空类的声明( )是正确的。
A.class类名;
B.class类名{};
C.class类名{}
D.class类名
18.要在类对象上使用运算符,以下不用必须被重载的运算符是()。
A.[ ]
B.=
C.++
D.--
19.类模板的使用实际上是类模板实例化成一个具体的( )。
A.类
B.对象
C.函数
D.变量
20.静态数据成员初始化在()进行,而且前面不加static,以免与一般静态变量或对象相混淆。
A.类体内
B.类体外
C.构造函数内
D.内联函数内
21.若派生类中没有对基类的虚函数进行重定义,则它继承基类中的( )。
A.访问权限
B.保护成员
C.虚函数
D.成员函数
22.下列关于继承的描述中,错误的是()。
A.基类中的析构函数不能被派生类继承
B.基类中的保护成员在派生类中无法直接访问
C.派生类的成员除了包括派生类中自己定义的成员外,还包括它从基类继承的成员
D.在公有继承方式下基类中公有成员和保护成员的访问权限到派生类保持不变
23.在表达式x+y*z中,+ 是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是()。
A.operator+有两个参数,operator*有两个参数
B.operator+有两个参数,operator*有一个参数
C.operator+有一个参数,operator*有两个参数
D.operator+有一个参数,operator*有一个参数
24.类模板的模板参数( )。
A.只可作为数据成员的类型
B.只可作为成员函数的返回类型
C.只可作为成员函数的参数类型
D.以上三者皆可
25.下列关于构造函数说法不正确的是()。
A.构造函数必须与类同名
B.构造函数可以省略不写
C.构造函数必须有返回值
D.在构造函数中可以对类中的成员进行初始化
26.下列表示引用的方法中,( )是正确的。 已知:int k=1000;
A.int &x=k;
B.char &y;
C.int &z=1000;
D.float &t=&k;
27.在下列关键字中,用以说明类中公有成员的是( )。
A.public
B.private
C.protected
D.friend
28.如果一个类至少有一个纯虚函数,那么就称该类是()。
A.抽象类
B.虚基类
C.派生类
D.以上都不对
29.下面关于构造函数和析构函数的描述,错误的是()。
A.析构函数中调用虚函数采用静态联编
B.对虚析构函数的调用可以采用动态联编
C.当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数
D.构造函数可以声明为虚函数
30.下面( )的叙述不符合赋值兼容规则。
A.派生类的对象可以赋值给基类的对象
B.基类的对象可以赋值给派生类的对象
C.派生类的对象可以初始化基类的对象
D.派生类的对象的地址可以赋值给指向基类的指针
31.read函数的功能是从输入流中读取( )。
A.一个字符
B.当前字符
C.一行字符
D.指定若干个字符
32.在一个string类对象表示的字符串中查找子串,应该使用string类的()函数。
A.assign
B.insert
C.swap
D.find
33.派生类的构造函数的成员初始化列表中,不能包含()。
A.基类的构造函数
B.派生类中子对象的初始化
C.基类的子对象初始化
D.派生类中一般数据成员的初始化
34.对于拷贝构造函数,正确的描述是()。
A.在C++语言中,如果不自定义类的拷贝构造函数,则每个类都有默认的拷贝构造函数
B.必须为每个类定义拷贝构造函数
C.如果要使用拷贝构造函数,则必须在类中先定义
D.当定义了类的构造函数时,如果要使用拷贝构造函数,则必须定义拷贝构造函数
35.若类A和类B的定义如下: class A { int i,j; public: void get(); }; class B:A//默认为私有派生 { int k; public; void make(); }; void B:: make() { k=i*j; } 则上述定义中,()是非法的表达式。
A.void get();
B.int k;
C.void make();
D.k=i*j;
二、 判断题 (共 15 道试题,共 30 分)
1.在派生类对象销毁时,系统除了会自动调用派生类的析构函数,还会自动调用基类的析构函数。
A.错误
B.正确
2.在保护派生中,基类权限为private的成员在派生类中权限也为private。
A.对
B.错
3.使用关键字class定义的类中默认的访问权限是私有(private)的。
A.对
B.错
4.要使语句“MyClass a;”能够编译通过,必须在定义MyClass类时编写无参构造函数。
A.错误
B.正确
5.一个类的构造函数中可以不包含对其子对象的初始化。
A.对
B.错
6.在派生类构造函数的成员初始化列表中,可以包含基类构造函数的调用。
A.错误
B.正确
7.定义模板的关键字是template。
A.对
B.错
8.假定用户没有给一个名为AB的类定义析构函数,则系统自动给出的缺省析构函数定义为~AB(){ }。
A.对
B.错
9.继承性是指同样的消息被不同对象接收时可产生不同的行为。
A.对
B.错
10.基类类型的指针可以指向其派生类对象。
A.错误
B.正确
11.类非成员函数形式的运算符重载函数通常采用友元函数,是为了在运算符重载中方便访问类中的非公有成员。
A.对
B.错
12.以友元方式重载运算符时,形参列表中至少有一个参数必须是自定义数据类型。
A.错误
B.正确
13.C++语言中,既允许单继承,又允许多继承。
A.对
B.错
14.构造函数和析构函数均不能被说明为虚函数。
A.对
B.错
15.在C++中,允许从一个类派生出任意多个类,但不允许某个类同时从多个类派生。
A.错误
B.正确
南开19春学期(1709、1803、1809、1903)《面向对象程序设计》在线作业[答案]历年参考题目如下: