《面向对象程序设计》复习题1
发布时间:2023-12-04 20:12:15浏览次数:60[试题分类]:面向对象程序设计1. 下列选项中,不是面向对象系统包含的要素的是A. 类B. 对象C. 继承D. 函数答案:D2. 下列选项中不能作为 C++标识符的是A. rst_timeB. 2bC. ClassD. hello答案:B3. 在 C++中,可以取代 C 中带参数的宏的是A. 重载函数B. 内联函数C. 递归函数D. 友元函数答案:B4. 下列函数参数默认值设置错误的是A. Fun(int x=0,int y=0)B. Fun(int x=0,int y)C. Fun(int x,int y=0)1
D. Fun(int x,int y)答案:B5. 下列关于类定义的描述叙述中,正确的是A. 类定义中包括数据成员和成员函数的声明B. 类成员的默认访问权限是保护的C. 数据成员必须声明为私有的D. 成员函数只能在类体外定义答案:A6. 下列选项中,可以作为类 A 构造函数声明的是A. void A(int);B. int A();C. A(int) const;D. A(int);答案:D7. {下列划线处应填入的内容是class MyClass \{public:MyClass() \{ count++; \}private:static int count;\}; count=10;}A. intB. static intC. static MyClass::intD. int MyClass::答案:D2
8. 下列关于常类型的叙述中,正确的是A. 通过常对象可以调用一般成员函数B. 常对象中的成员函数都是常成员函数C. 可以通过成员函数修改常对象的状态D. 必须使用成员初始化列表显式初始化常数据成员答案:D9. 下列关于继承和派生的叙述中,正确的是A. 派生类不能访问基类的保护成员B. 不能定义虚基类对象C. 派生类要向基类的构造函数传递参数D. 多继承时不会产生二义性答案:C10. 如果'-'作为类成员函数重载,在使用显式函数调用时,表达式 x-y 可表示为A. x.operator-(y)B. operator-(x,y)C. y.operator-(x)D. operator-(y,x)答案:A11. C++中重载的运算符>>是A. 用于输入操作的成员函数B. 用于输入操作的非成员函数C. 用于输出操作的成员函数3
D. 用于输出操作的非成员函数答案:B12. 已知一个函数的原型是“int fun(int x);”,若要以 5 为实参调用该函数,应使用表达式 。答案:fun(5)13. 非成员函数应声明为类的 函数才能访问这个类的私有成员。答案:友元14. {请在划线处填写正确内容,使类 MyClass 的复制构造函数的声明完整。class MyClass \{public: MyClass(const obj);\};}答案:MyClass&15. {下列程序运行后输出 12,请将划线处的语句补充完整。#include <iostream>using namespace std;class MyClass \{ public: void Print() const \{ cout<<12; \}\};int main() \{MyClass* p = new MyClass(); Print();delete p;return 0;\}4
}答案:p->或(*p).16. 如果类的子对象不提供成员初始化值,则调用该对象的 。答案:默认构造函数17. 用来派生新类的类称为 ,而派生出的新类称为 。答案:基类或父类 | 派生类或子类18. 为了解决由____________产生的二义性问题,在 C++中引入了虚基类。答案:多继承19. {请写出下列程序的输出结果。#include <iostream>using namespace std;class Base1 \{public:Base1() \{ cout<<"Base1"<<endl; \}~Base1() \{ cout<<"~Base1"<<endl; \}\};class Base2 \{public:Base2() \{ cout<<"Base2"<<endl; \}~Base2() \{ cout<<"~Base2"<<endl; \}\};class Derived : public Base2, public Base1 \{public:Derived() \{ cout<<"Derived "<<endl; \}~Derived() \{ cout<<"~Derived"<<endl; \}private:Base1 b1;Base2 b2;\};int main() \{Derived d;5
return 0;\}}答案:Base2Base1Base1Base2Derived~Derived~Base2~Base1~Base1~Base26