C++语言程序设计(下) 中国农业大学 单元测验8-1

1.计算机程序由哪2个基本要素组成?(    )

编号 选项
A 程序和程序员
B 软件和硬件
C 数据和算法
D 类和对象

2.面向对象程序设计中的代码重用,重用的是什么?(    )

编号 选项
A 数据
B 算法
C 程序员
D 数据+算法

3.类定义中不包括下列哪种要素?(    )

编号 选项
A 函数成员
B 访问权限
C 类图
D 数据成员

4.下列关于组合类对象成员的描述中,错误的是(    )。

编号 选项
A 所谓对象成员,就是用类定义的对象
B 组合类中的函数成员访问对象成员的下级成员不受权限控制
C 组合类设定对象成员的访问权限是对其进行二次封装
D 对象成员还包含下级成员

5.下列关于组合类对象的描述中,错误的是(    )。

编号 选项
A 访问组合类对象的下级成员是多级访问
B 不能用对象指针访问组合类对象及其下级成员
C 访问组合类对象的下级成员需受多级权限的控制
D 组合类所定义的对象中包含对象成员

6. 定义类A和组合类B:

class A
{
private:  int x;
public:  int y;
};
class B
{
public:  A t;
    int s;
}

使用组合类B定义对象:B obj; 下列语句中正确的是(    )。

编号 选项
A B *p = &obj;  p->t.y = 5;  p->s = 5;
B obj.x = 5;  obj.y = 5;  obj.s = 5;
C B *p = &obj;  p.t.x = 5;  p.t.y = 5;  p.s = 5;
D obj.t.x = 5;  obj.t.y = 5;  obj.s = 5;

7.下列关于组合类构造函数和析构函数的描述中,错误的是(    )。

编号 选项
A 组合类析构函数自动调用对象成员的析构函数,实现对象成员销毁之前的清理
B 组合类构造函数通过成员初始化列表的形式来调用对象成员的构造函数,实现对象成员的初始化
C 创建组合类对象时,先调用对象成员的构造函数,再执行组合类构造函数的函数体
D 销毁组合类对象时,先调用对象成员的析构函数,再执行组合类析构函数的函数体

8.已定义类A:

class A
{
ptivate:  int x;
protected:  int y;
public:  int z;
    void ShowA( )  {  cout << x << y << z << endl;  }
};

通过继承定义派生类B:

class B : public A
{
private:  int a;
public:
    void ShowB( )  {  cout << x;  cout << y;  cout << z;  cout << a;  }
};

函数ShowB( )中错误的语句是( A )。

编号 选项
A cout << x;
B cout << z;
C cout << a;
D cout << y;

9.通过派生类对象obj访问其从基类继承的成员m,则m必须是(    )。

编号 选项
A 私有继承下的私有成员
B 公有继承下的公有成员
C 公有继承下的保护成员
D 公有继承下的私有成员

10.已定义基类A和派生类B:

class A
{
ptivate:  int x;
protected:  int y;
public:  int z;
    void ShowA( )  {  cout << x << y << z << endl;  }
};
class B : protected A  // 保护继承
{
private :  int a;
protected:  int b;
public:  int c;
    void ShowB( )  {  ShowA( );  cout << a << b << c << endl;  }
};

再定义B的派生类C:

class C : public B
{
public:  int m;
    void fun( )  {  x = 5;  y = 5;  z = 5;  ShowA( );  }  // 访问基类A的成员
};

函数fun( )中错误的语句是(    )。

编号 选项
A y = 5;
B x = 5;
C z = 5;
D ShowA( );
原创文章 63 获赞 23 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_33384402/article/details/105878089