面向对象程序设计2022-2023秋冬习题集1
开始时间2022/12/09 24:42:00
结束时间2023/01/31 23:59:00
答题时长77717分钟
答卷类型标准答案
总分45

判断题得分:暂无总分:5
1-1

对单目运算符重载为友元函数时,可以说明一个形参。而重载为成员函数时,不能显式说明形参。

(1分)

1-2

虚函数是用virtual 关键字说明的成员函数。

(1分)

1-3

使用提取符(<<)可以输出各种基本数据类型的变量的值,也可以输出指针值。

(1分)

1-4

因为静态成员函数不能是虚函数,所以它们不能实现多态。

(1分)

1-5

重载operator+时,返回值的类型应当与形参类型一致。
比如以下程序中,operator+的返回值类型有错:

class A {

int x;

public:

 A(int t=0):x(t){     }

    int operator+(const A& a1){ return x+a1.x;  }

};

(1分)

单选题得分:暂无总分:20
2-1

对象之间的相互作用和通信是通过消息。( )不是消息的组成部分。

(2分)

2-2

( )不是面向对象程序设计的主要特征。

(2分)

2-3

对定义重载函数的下列要求中,( )是错误的。

(2分)

2-4

关于动态绑定的下列描述中,( )是错误的。

(2分)

2-5

关于虚函数的描述中,( )是正确的。

(2分)

2-6

下列叙述中,不正确的是( )。

(2分)

2-7

在下面类声明中,关于生成对象不正确的是( )。
class point
{ public:
int x;
int y;
point(int a,int b) {x=a;y=b;}
};

(2分)

2-8

下列运算符中,( )运算符不能重载。

(2分)

2-9

关于纯虚函数和抽象类的描述中,( )是错误的。

(2分)

2-10

在下列关键字中,用以说明类中公有成员的是( )。

(2分)

程序填空题得分:暂无总分:20
5-1

打印“Hello World!”,占一行。

#include <iostream>
using namespace std;
int main()
{
    cout<<"(10分)"<<endl;
    return 0;
}

5-2

阅读下面的程序,完成其中复制构造函数的代码。

#include <iostream>
using namespace std;
class CAT
{     public:
           CAT();
           CAT(const CAT&);
          ~CAT();
          int GetAge() const { return *itsAge; }
          void SetAge(int age){ *itsAge=age; }
      protected:
          int* itsAge;
};
CAT::CAT()
{    itsAge=new int;
     *itsAge =5;
}
CAT::CAT(const CAT& c)
{
(5分); 
(5分); 
}
CAT::~CAT()
{     delete itsAge;   }