第二周类和对象基础

第二周测验

1、单选题:
‏有类A如下定义:​‏class A {​‏ int v;​‏ public:​‏ A ( int n) { v = n; }​‏};​‏下面哪条语句是编译不会出错的?​‏​
选项:
A: A)  A a = new A();
B: B)  A a2;
C: C)  A * p = new A();
D: D)  A a1(3);
答案: 【 D)  A a1(3);

2、单选题:
‌假设 A 是一个类的名字,下面的语句生成了几个类A的对象?‎‌‎‌A * arr[4] = { new A(), NULL,new A() };‎‌‎‌‎
选项:
A: A) 1
B: B) 2
C: C) 3
D: D) 4
答案: 【 B) 2

3、单选题:
‍假设A 是一个类的名字,下面哪段程序不会用到A的复制构造函数?‍
选项:
A: A) A a1,a2; a1 = a2;
B: B) void func( A a) { cout << "good" << endl; }
C: C) A func( ) { A tmp; return tmp; }
D: D) A a1; A a2(a1);
答案: 【 A) A a1,a2; a1 = a2;

4、单选题:
‌‍‌类A定义如下:‍‌class A {‍‌ int v;‍‌ public:‍‌ A(int i) { v = i; }‍‌ A() { }‍‌};‍‌‍‌下面哪段程序不会引发类型转换构造函数被调用?‍‌‍
选项:
A: A) A a1(4)
B: B) A a2 = 4;    
C: C) A a3; a3 = 9;
D: D) A a1,a2; a1 = a2;
答案: 【 D) A a1,a2; a1 = a2;

5、单选题:
‏假设A是一个类的名字,下面的程序片段会调用类A的调用析构函数几次? ‎‏int main() {‎‏ A * p = new A[2];‎‏ A * p2 = new A;‎‏ A a;‎‏ delete [] p;‎‏}‎‏‎
选项:
A: A) 1
B: B) 2
C: C) 3
D: D) 4
答案: 【 C) 3

6、填空题:
‏学生信息处理程序 通过码‏
答案: 【 764bac47336c8a317d06f4bb0810e521dceda240038ace10a7bd0f620223f2b2

7、填空题:
​奇怪的类复制 通过码‍
答案: 【 5329e5a40d42660a196f82e7e85df0f5ed6934b07997ae31cfb3b5377c0c34c2

8、填空题:
‌超简单的复数类 通过码‎
答案: 【 aa9d54dc2c83fa8679947502aeef44a58bf2b436cab551547369ed0704d8e22e

9、填空题:
‎哪来的输出 通过码‏
答案: 【 e248fdecd84dbc7d59521d00c6ac649c4081a7d2dac39d1b8193bb3896faa17f

第三周类和对象提高

第三周测验

1、单选题:
‍1) 以下说法不正确的是:‌
选项:
A: A) 静态成员函数中不能使用this指针
B: B) this指针就是指向成员函数所作用的对象的指针
C: C) 每个对象的空间中都存放着一个this指针
D: D) 类的非静态成员函数,真实的参数比所写的参数多1
答案: 【 C) 每个对象的空间中都存放着一个this指针

2、单选题:
‏2) 下面说法哪个不正确?‏
选项:
A: A) 静态成员函数内部不能访问同类的非静态成员变量,也不能调用同类的非静态成员函数
B: B) 非静态成员函数不能访问静态成员变量
C: C) 静态成员变量被所有对象所共享
D: D) 在没有任何对象存在的情况下,也可以访问类的静态成员
答案: 【 B) 非静态成员函数不能访问静态成员变量

3、单选题:
‍3) 以下说法正确的是:‌
选项:
A: A) 成员对象都是用无参构造函数初始化的
B: B) 封闭类中成员对象的构造函数先于封闭类的构造函数被调用
C: C) 封闭类中成员对象的析构函数先于封闭类的析构函数被调用
D: D) 若封闭类有多个成员对象,则它们的初始化顺序取决于封闭类构造函数中的成员初始化列表
答案: 【 B) 封闭类中成员对象的构造函数先于封闭类的构造函数被调用

4、单选题:
‎4) 以下关

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注