#z69. 类和对象复习

类和对象复习

第1题 以下哪个是面向对象的高级语言( )。

{{ select(1) }}

  • [A. 汇编语言]
  • [B. C++]
  • [C. Fortran]
  • [D. Basic]

第2题 关于C++类和对象的说法,错误的是( )。

{{ select(2) }}

  • [A. 在 C++\mathrm{C++} 中,一切皆对象,即便是字面量如整数5等也是对象]
  • [B. 在 C++C++ 中,可以自定义新的类,并实例化为新的对象]
  • [C. 在 C++\cdot\mathrm{C++} 中,内置函数和自定义函数,都是类或者对象]
  • [D. 在 C++\cdot\mathrm{C++} 中,可以在自定义函数中嵌套定义新的函数]

第3题 有关下面 C++\cdot_{\mathrm{C++}} 代码的说法,错误的是( )。

class Rectangle {
private:
    class Point {
    public:
        double l0;
        double ds;
    };
    double length;
    double width;
public:
    Point ds;
};

{{ select(3) }}

  • [A. C++\mathrm{C++} 中类内部可以嵌套定义类]
  • [B. 在类中定义的类被称为内部类,定义类的类被称为外部类]
  • [C. 内部类可以随便访问,不需要通过外部类来访问]
  • [D. 代码中Point 被称为内部类,可以通过外部类Rectangle 来访问,Rectangle::Point]

第4题 有关下面C++代码的说法,正确的是( )。

1  using namespace std;
2  class newClass 
3  {
4  public:
5      static int objcounter;
6      
7  };
8  int newClass::objCounter = 2;
9  int main() 
10 {
11     newClass classA;
12     newClass classB;
13     cout << newClass::objCounter << endl;
14     cout << classB.objCounter << endl;
15 }

{{ select(4) }}

  • [A. 第13行代码错误,第14行正确]
  • [B. 第14行代码错误,第13行代码正确]
  • [C. 第13、14两行代码都正确]
  • [D. 第5行代码可修改为objCounter += 1]

第5题 有关下面C++代码的说法,错误的是( )。

struct BiNode {
    char data;
    BiNode* lchid;
    BiNode* rchid;
};
class BiTree {
private:
    BiNode* Creat();
    void Release(BiNode* bt);
    BiNode* root;
public:
    BiTree() { root = Creat(); }
    ~BiTree() { Release(root); }
};

{{ select(5) }}

  • [A. 上列C++代码适用于构造各种二叉树]
  • [B. 代码struct BiNode 用于构造二叉树的节点]
  • [C. 代码BiTree(){root=Creat();} 用于构造二叉树]
  • [D. 析构函数不可以省略]

第6题 基于第4题的定义,有关下面 C++\mathrm{C++} 代码的说法正确的是( )。

void Order(BiNode* bt) {
    if (bt == nullptr) return;
    cout << bt->data;
    Order(bt->lchid);
    Order(bt->rchid);
}

{{ select(6) }}

  • [A. 代码中Order( ) 函数是中序遍历二叉树的方法]
  • [B. 代码中Order( ) 先访问根节点,然后对左子树进行前序遍历,再对右子树前序遍历]
  • [C. 代码中Order( ) 先访问中序遍历左子树,然后访问根节点,最后则是中序遍历右子树]
  • [D. 代码中 Order( ) 先后序遍历左⼦树,然后后序遍历右⼦树,最后访问根节点]