主页 > 南开大学 > 南开在线 >

南开21春学期(1709、1803、1809、1903、1909、2003、2009、2103)《面向对象程序设计》在线作业【标准答案】

作者:pyfdzj

21春学期(1709、1803、1809、1903、1909、2003、2009、2103)《面向对象程序设计》在线作业 试卷总分:100 得分:100 一、单选题 (共 35 道试题,共 70 分) 1.面向对象程序设计思想的主要特征中不包
21春学期(1709、1803、1809、1903、1909、2003、2009、2103)《面向对象程序设计》在线作业
试卷总分:100  得分:100
一、单选题 (共 35 道试题,共 70 分)
1.面向对象程序设计思想的主要特征中不包括( )。
A.封装性
B.多态性
C.继承性
D.功能分解,逐步求精
 
2.下面关于私有继承方式的论述中错误的是()。
A.基类中的私有成员对其对象不可见
B.基类中的私有成员对其派生类不可见
C.基类中的公有成员对其派生类可见
D.基类中的保护成员对其派生类不可见
 
3.对于任意一个类,构造函数的个数最少为( )。
A.0
B.1
C.2
D.3
 
4.有如下类声明: class Sample { int x; }; 则Sample类成员x是Sample类的()。
A.公有数据成员
B.保护数据成员
C.私有数据成员
D.以上选项都不正确
 
5.下列( )不是构造函数的特征。
A.构造函数的函数名与类名相同
B.构造函数可以重载
C.构造函数可以设置默认参数
D.构造函数必须指定类型说明
 
6.已知X类.则当程序执行到语句X *array[3];时,调用了( )次构造函数。
A.0
B.1
C.2
D.3
 
7.假定MyClass为一类,执行MyClass a,b(2),*p[2];语句时会自动调用该类构造函数()次。
A.2
B.3
C.4
D.5
 
8.下面对模板的声明,正确的是( )。
A.template
B.template
C.template
D.template
 
9.下列程序中说明的公有成员是( ) 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都是
 
10.有关重载函数的描述正确的是()。
A.函数名相同的函数就是重载函数
B.函数名相同但返回值类型不同的函数就是重载函数
C.函数名相同但参数个数或类型不同的函数就是重载函数
D.函数功能相同的函数就是重载函数
 
11.基类的()在私有继承时在派生类中为私有成员函数,在公有和保护继承时在派生类中为保护成员函数。
A.私有成员函数
B.保护成员函数
C.公有成员
D.保护数据成员
 
12.( )的功能是对对象进行初始化。
A.析构函数
B.数据成员
C.构造函数
D.静态数据成员
 
13.已知X类中的一个成员函数说明如下: void Set(X*a); 其中,X*a的含义是( )。
A.a是指向X类对象的指针,用来作为Set()的形参
B.将X*a的计算结果传递给Set()函数
C.a是X类对象的引用,用来做为Set()的形参
D.以上都不对
 
14.对A、B两个类进行多重继承得到派生类C,则创建派生类C的对象时,从基类B中继承过来的成员变量由()类的构造函数进行初始化。
A.A
B.B
C.C
D.都可以
 
15.已知函数原型:void f(int a, int b=3,char c='*'); 则下面的函数调用中,不合法的调用是()。
A.f(5)
B.f(5,8)
C.f(6, , '#')
D.f(0,0, '#')
 
16.变量的引用,其含义是指该变量的()。
A.值
B.类型
C.别名
D.地址
 
17.在下列关键字中,用以说明类中公有成员的是( )。
A.public
B.private
C.protected
D.friend
 
18.类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);
 
19.缺省析构函数的函数体是( )。
A.不存在
B.随机产生的
C.空的
D.无法确定的
 
20.设置虚基类的目的是()。
A.简化程序
B.消除二义性
C.提高运行效率
D.减少目标代码
 
21.在一个类中,可以对一个操作符进行()重载。
A.1种
B.2种
C.3种
D.多种
 
22.结构化程序设计方法以()为中心进行分析和设计。
A.结构
B.模块
C.对象
D.类
 
23.下面程序段中,说法正确的是( ) class location{ public : int GetX(); }; class rectangle:private location { public: int GetW(); };
A.类rectangle的私有派生类是location
B.类rectangle中的public成员在类 location中是私有的
C.类location中的public成员在类 rectangle中是不可访问的
D.viod f( ) { Rectangle r; int X=r .GetX( ); } 其中int X = r .GetX( );是非法语句
 
24.在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是()。
A.派生类的对象可以赋给基类对象
B.派生类的对象可以初始化基类的引用
C.派生类的对象可以直接访问基类的成员
D.派生类的对象的地址可以赋给指向基类的指针
 
25.关于抽象类, 下列表述正确的是( )。
A.抽象类的成员函数中至少有一个没有实现的函数(即无函数体定义的函数)
B.派生类必须实现作为基类的抽象类中的纯虚函数
C.派生类不可能成为抽象类
D.抽象类不能用于定义对象
 
26.在下列选项中( )不是ostream类的对象。
A.cin
B.cerr
C.clog
D.cout
 
27.继承具有(),即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。
A.规律性
B.传递性
C.重复性
D.多样性
 
28.下面关于对象概念的描述中,( )是错误的。
A.对象就是C语言中的结构变量
B.对象代表着正在创建的系统中的一个实体
C.对象是一个状态和操作(或方法)的封装体
D.对象之间的信息传递是通过消息进行的
 
29.用于类中虚成员函数说明的关键字( )。
A.virtual
B.public
C.protected
D.private
 
30.下列对派生类的描述中错误的是()。
A.派生类至少有一个基类
B.派生类可作为另一个派生类的基类
C.派生类除了包含它直接定义的成员外,还包含其基类的成员
D.派生类对其继承的基类的成员访问权限保持不变
 
31.建立类模板对象的实例化过程为( )。
A.基类->派生类
B.构造函数->对象
C.模板类->对象
D.模板类->模板函数
 
32.下列对派生类的描述中,()是错误的。
A.一个派生类可以作另一个派生类的基类
B.派生类至少有一个基类
C.派生类的成员除了它自己的成员外,包含了它的基类的成员
D.派生类中继承的基类成员的访问权限到派生类保持不变
 
33.下面关于类的成员函数描述不正确的是()。
A.静态成员函数内可以直接访问类的非静态成员数据
B.静态成员函数内可以直接访问类的静态成员数据
C.非静态成员函数可以直接访问类的非静态成员数据
D.非静态成员函数可以直接访问类的静态成员数据
 
34.关于类和对象不正确的说法是( )。
A.类是一种类型,它封装了数据和操作
B.对象是类的实例
C.一个类的对象只有一个
D.一个对象必属于某个类
 
35.下面叙述中错误的是()。
A.派生类可以使用private派生
B.对基类成员的访问必须是无二义性的
C.基类成员的访问能力在派生类中维持不变
D.赋值兼容规则也适用于多继承的组合
 
二、判断题 (共 15 道试题,共 30 分)
36.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为: AB operator+(AB &,AB &);
 
37.面向对象程序设计方法中也会使用结构化程序设计方法。
 
38.在成员函数的函数类型前加上const关键字,则该成员函数就是常量成员函数。
 
39.返回引用的函数可以返回局部变量。
 
40.一个类的静态数据成员被该类的所有对象共享。
 
41.源程序编译后会生成可执行程序。
 
42.C++的I/O系统通过流的机制实现文件和控制台的输入输出操作。
 
43.在类体外定义成员函数时需要通过域运算符指定该成员函数所属的类。
 
44.面向对象的英文缩写是OOP。
 
45.定义一个虚基类后,则该虚基类后继类层次中的类都需要调用虚基类的构造函数对虚基类中定义的成员变量进行初始化。
 
46.拷贝构造函数通常使用已有对象的引用来初始化创建中的对象。
 
47.在公有继承中,基类中只有公有成员对派生类对象是可见的。
 
48.多数运算符可以重载,个别运算符不能,运算符重载是通过函数定义实现的。
 
49.模板定义中标识类型的参数必须用关键字Type修饰。
 
50.一般将C++中的类声明和类实现分别放到两个文件中。
 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关文章