南开19春学期(1503、1509、1603、1609、1703)《面向对象程序设计》在线作业【标准答案】

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2019-03-30 10:18

19春学期(1503、1509、1603、1609、1703)《面向对象程序设计》在线作业-0002 试卷总分:100 得分:0 一、 单选题 (共 35 道试题,共 70 分) 1.下列关于拷贝构造函数的描述中,错误的是()。 A.一个
19春学期(1503、1509、1603、1609、1703)《面向对象程序设计》在线作业-0002
试卷总分:100    得分:0
一、 单选题 (共 35 道试题,共 70 分)
1.下列关于拷贝构造函数的描述中,错误的是()。
A.一个类可以定义多个拷贝构造函数
B.若未定义拷贝构造函数,则系统会提供一个默认拷贝构造函数
C.当类中有指针成员变量时,通常要为这个类定义一个拷贝构造函数来实现深拷贝
D.拷贝构造函数中的参数按引用方式传递
 
 
2.通常拷贝构造函数的参数表是( )。
A.某个对象名
B.某个对象的成员名
C.某个对象的引用名
D.某个对象的指针名
 
 
3.下列虚基类的声明中,正确的是()。
A.class virtual B:public A
B.virtual class B:public A
C.class B: public A virtual
D.class B: virtual public A
 
 
4.下列的模板说明中,正确的是( )。
A.template
B.template
C.template
D.template
 
 
5.将一个string类对象赋予新值,应该使用string类的()函数。
A.assign
B.insert
C.swap
D.find
 
 
6.对于类定义 class A{ public: virtual void funcl(){} void func2(){} }; class B:public A{ public: void func1(){cout<<"class B func1"<<endl;} virtual void func2(){cout<<"class B func2"<<endl;} };下面正确的叙述是( )。
A.A::func2()和B::func1()都是虚函数
B.A::func2()和B::func1()都不是虚函数
C.B::func1()是虚函数,A::func2()不是虚函数
D.B::func1()不是虚函数,A::func2()是虚函数
 
 
7.下面关于对象概念的描述中,( )是错误的。
A.对象就是C语言中的结构变量
B.对象代表着正在创建的系统中的一个实体
C.对象是一个状态和操作(或方法)的封装体
D.对象之间的信息传递是通过消息进行的
 
 
8.下面( )的叙述不符合赋值兼容规则。
A.派生类的对象可以赋值给基类的对象
B.基类的对象可以赋值给派生类的对象
C.派生类的对象可以初始化基类的对象
D.派生类的对象的地址可以赋值给指向基类的指针
 
 
9.已知函数原型:void f(int a, int b=3,char c='*'); 则下面的函数调用中,不合法的调用是()。
A.f(5)
B.f(5,8)
C.f(6, , '#')
D.f(0,0, '#')
 
 
10.当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的( )。
A.public成员
B.private成员
C.protected成员
D.友元
 
 
11.下列关于继承的描述中,错误的是()。
A.基类中的析构函数不能被派生类继承
B.基类中的保护成员在派生类中无法直接访问
C.派生类的成员除了包括派生类中自己定义的成员外,还包括它从基类继承的成员
D.在公有继承方式下基类中公有成员和保护成员的访问权限到派生类保持不变
 
 
12.下面选项中,不是类的成员函数为( )。
A.构造函数
B.析构函数
C.友元函数
D.缺省参数的构造函数
 
 
13.假定已定义浮点型变量data,以二进制方式把data的值写入输出文件流对象outfile中去,正确的语句是( )。
A.outfile.write((float *) &data, sizeof(float));
B.outfile.write((float *) &data, data);
C.outfile.write((char *) &data, sizeof(float));
D.outfile.write((char *) &data, data);
 
 
14.运算符delete删除一个动态对象时( )。
A.首先为该动态对象调用构造函数,再释放其占用的内存
B.首先释放该动态对象占用的内存,再为其调用构造函数
C.首先为该动态对象调用析构函数,再释放其占用的内存
D.首先释放动态对象占用的内存,再为其调用析构函数
 
 
15.类模板的模板参数( )。
A.只可作为数据成员的类型
B.只可作为成员函数的返回类型
C.只可作为成员函数的参数类型
D.以上三者皆可
 
 
16.对于拷贝构造函数,正确的描述是()。
A.在C++语言中,如果不自定义类的拷贝构造函数,则每个类都有默认的拷贝构造函数
B.必须为每个类定义拷贝构造函数
C.如果要使用拷贝构造函数,则必须在类中先定义
D.当定义了类的构造函数时,如果要使用拷贝构造函数,则必须定义拷贝构造函数
 
 
17.关于类和对象不正确的说法是( )。
A.类是一种类型,它封装了数据和操作
B.对象是类的实例
C.一个类的对象只有一个
D.一个对象必属于某个类
 
 
18.假定X为一个类,执行X a[3],*p[2];语句时会自动调用该类的构造函数( )次。
A.2
B.3
C.4
D.5
 
 
19.若派生类中没有对基类的虚函数进行重定义,则它继承基类中的( )。
A.访问权限
B.保护成员
C.虚函数
D.成员函数
 
 
20.下列( )是构造函数的特征。
A.构造函数在创建对象时自动调用
B.构造函数不可以重载
C.构造函数不可以设置默认参数
D.构造函数必须指定函数类型
 
 
21.包含类fstream定义的头文件是( )。
A.fstream
B.ofstream
C.ifstream
D.iostream
 
 
22.已知类X中的一个成员函数说明如下: Void Set(X &a); 其中,X &a的含义是( )。
A.a是指向X类对象的指针,用来作为Set()的形参
B.将a的地址传递给Set()函数
C.a是X类对象的引用,用来做为Set()的形参
D.以上都不对
 
 
23.下列对派生类的描述中,()是错误的。
A.一个派生类可以作另一个派生类的基类
B.派生类至少有一个基类
C.派生类的成员除了它自己的成员外,包含了它的基类的成员
D.派生类中继承的基类成员的访问权限到派生类保持不变
 
 
24.下面关于构造函数和析构函数的描述,错误的是()。
A.析构函数中调用虚函数采用静态联编
B.对虚析构函数的调用可以采用动态联编
C.当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数
D.构造函数可以声明为虚函数
 
 
25.有关析构函数的说法不正确的是( )。
A.析构函数有且仅有一个
B.析构函数和构造函数一样可以有形参
C.析构函数的功能是用来释放一个对象
D.析构函数无任何函数类型
 
 
26.交换两个string类对象所表示的字符串的内容,应该使用string类的()函数。
A.assign
B.insert
C.swap
D.find
 
 
27.下面对模板的声明,正确的是( )。
A.A.template
B.template
C.template
D.template
 
 
28.要在类对象上使用运算符,以下不用必须被重载的运算符是()。
A.[ ]
B.=
C.++
D.--
 
 
29.下列静态数据成员的特性中,( )是错误的。
A.说明静态数据成员时前边要加关键字static来修饰
B.静态数据成员在类体外进行初始化
C.引用静态数据成员时,要在静态数据成员名前加和作用域运算符
D.静态数据成员不是所有对象所共有的
 
 
30.对于任意一个类,构造函数的个数最少为( )。
A.0
B.1
C.2
D.3
 
 
31.在C++中,要实现动态联编,可以使用( )调用虚函数。
A.类名
B.派生类指针
C.对象名
D.基类指针
 
 
32.用于类中虚成员函数说明的关键字( )。
A.virtual
B.public
C.protected
D.private
 
 
33.假定MyClass为一类,执行MyClass a,b(2),*p[2];语句时会自动调用该类构造函数()次。
A.2
B.3
C.4
D.5
 
 
34.下列关于虚函数的说明中,正确的是()。
A.从虚基类继承的函数都是虚函数
B.虚函数不得是静态成员函数
C.只能通过指针或引用调用虚函数
D.抽象类中的成员函数都是虚函数
 
 
35.下面对静态数据成员的描述中,正确的是()。
A.静态数据成员可以在类体内进行初始化
B.静态数据成员不可以被该类的对象调用
C.静态数据成员不能受private控制符的作用
D.静态数据成员可以直接用类名访问
 
 
二、 判断题 (共 15 道试题,共 30 分)
1.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。
A.对
B.错
 
 
2.在派生类对象销毁时,系统除了会自动调用派生类的析构函数,还会自动调用基类的析构函数。
A.错误
B.正确
 
 
3.C语言中scanf命令在c++中改用cin。
A.对
B.错
 
 
4.定义一个虚基类后,则该虚基类后继类层次中的类都需要调用虚基类的构造函数对虚基类中定义的成员变量进行初始化。
A.错误
B.正确
 
 
5.在一个类中声明了某个静态数据成员,并在类外给出其定义和初始化后,若未定义该类的对象,该静态数据成员则不存在。
A.错误
B.正确
 
 
6.定义模板的关键字是template。
A.对
B.错
 
 
7.类中所提供的成员函数可以直接访问该类的私有成员。
A.错误
B.正确
 
 
8.继承性是指同样的消息被不同对象接收时可产生不同的行为。
A.对
B.错
 
 
9.要使语句“MyClass a;”能够编译通过,必须在定义MyClass类时编写无参构造函数。
A.错误
B.正确
 
 
10.调试主要是为了解决程序运行时产生的错误。
A.对
B.错
 
 
11.多数运算符可以重载,个别运算符不能,运算符重载是通过函数定义实现的。
A.对
B.错
 
 
12.类成员的三种访问控制属性是public、private和friend。
A.对
B.错
 
 
13.返回引用的函数可以返回局部变量。
A.对
B.错
 
 
14.运算符重载实际上是对已有的运算符重新定义其功能。
A.对
B.错
 
 
15.假定AB为一个类,则执行AB a[10];语句时,系统自动调用该类的构造函数的次数为10。
A.对
B.错
 
Tag:  

作业咨询:
点击这里给我发消息

论文咨询:
点击这里给我发消息

合作加盟:
点击这里给我发消息

服务时间:
8:30-24:00(工作日)