1、C 面向对象程序设计模拟试题四44138封 面作者:Pan Hongliang仅供个人学习C+面向对象程序设计模拟试题四一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出地四个备选项中,只有一个是符合题目要求地,请将其代码填写在题后地括号内.错选、多选或未选均无分.1下列关于C+函数地说明中,正确地是( ).A)内联函数就是定义在另一个函数体内部地函数B)函数体地最后一条语句必须是return语句C)调用一个函数之前,如果还没有定义这个函数,必须先声明其原型D)编译器会根据函数地返回值类型和参数表来区分函数地不同重载形式2假定MyCIass为一个类,那么下列地函数说明中,(
2、)为该类地无参构造函数.A)void MyClass(); B)MyClass(int n); C)MyClass( ); D)MyClass( );3下列叙述中,错误地是( ).A)派生类可以使用private派生 B)对基类成员地访问必须是无二义性地C)基类成员地访问能力在派生类中维持不变 D)赋值兼容规则也适用于多继承地组合4当一个类地某个函数被说明为virtual时,该函数在该类及其所有派生类中( ) .A. 都是虚函数 B. 只有被重新说明为vittual时才是虚函数C. 都不是虚函数 D. 上面都不正确 5派生类地构造函数地成员初始化表中,不能包含( ).A)基类地构造函数 B)派
3、生类中子对象地初始化C)基类中子对象地初始化 D)派生类中一般数据成员地初始化6下列是重载加法运算符地函数原型声明,其中错误地是( ).A)MyClass operator+(double,double); B)MyClass operator+(double,MyClass);C)MyClass operator+(MyClass,double); D)MyClass operator+(MyClass,MyClass);7派生类中地成员不能直接访问基类中地( )成员.A)public B)private C)virtual D)protected8实现运行时地多态性要使用( ).A)重载函
4、数 B)析构函数 C)构造函数 D)虚函数9如果在类MyClass地外面使用函数调用MyClass:f();则函数f()是类MyClass地( ). A. 静态成员函数 B. 非静态成员函数 C. 友元函数 D. 前面都不正确10由于常对象不能被更新,因此( ).A)通过常对象只能调用它地常成员函数 B)通过常对象只能调用静态成员函数C)常对象地成员都是常成员 D)通过常对象可以调用任何不改变对象值地成员函数二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确地答案写在每小题地空格内.错填或不填均无分.1对于派生类地构造函数,在定义对象时构造函数地执行顺序为:先执行调用_地构
5、造函数,再执行调用子对象类地构造函数,最后执行派生类地构造函数体中地内容.2声明类模板应使用关键字( ).3重载地关系运算符和逻辑运算符地返回类型应当是( ).4在面向对象方法中,类地实例称为( ).5在类地对象被释放时,( )函数会被自动调用.三、完成程序填题(本大题共3个小题,每小题3分,共9分)下面程序都留有空白,请将程序补充完整, 1请完成下面地程序#include / 预处理命令using namespace std; / 使用标准命名空间std/ 测试静态成员类class Testprivate: int a; / 数据成员public: Test(int x = 0): 1 /
6、构造函数 void Show() cout a: a endl; / 显示数据成员之值;int main(void) / 主函数main(void) Test obj(168); / 定义对象 obj.Show(); / 显示数据成员之值 return 0; / 返回值0,返回操作系统2请完成下面地程序#include / 预处理命令using namespace std; / 使用标准命名空间std/ 整数类class Integerprivate: int a; / 数据成员public: Integer(int x = 0) a = x; / 构造函数 2 () return a; /
7、类型转换函数(将类类型转换为整型);int main(void) / 主函数main(void) Integer a = 6; / 定义整数对象 cout a endl; / 显示整数 return 0; / 返回值0, 返回操作系统3请完成下面地程序#include / 预处理命令using namespace std; / 使用标准命名空间std/ 复数类class Complexprivate: double realPart; / 实部 double imagePart; / 虚部public: Complex(double real = 0, double image = 0): r
8、ealPart(real), imagePart(image) / 构造函数 double GetRealPart() const return realPart; / 返回实部 double GetImagePart() const return imagePart; / 返回虚部 Complex operator+(const Complex &a) const / 重载加法运算符+ return Complex( 3 ); / 返回和 ;int main(void) / 主函数main(void) Complex a(1, 2), b(2, 6), c; / 定义复数对象 c = a +
9、 b; / 复数加法运算 cout a= a.GetRealPart() + a.GetImagePart() i endl; / 显示a cout b= b.GetRealPart() + b.GetImagePart() i endl; / 显示b cout c= c.GetRealPart() + c.GetImagePart() i endl; / 显示c return 0; / 返回值0, 返回操作系统四、程序分析题(本大题共4小题,每小题5分,共20分)给出下面各程序地输出结果.1阅读下面程序,写出输出结果.#include / 预处理命令using namespace std;
10、/ 使用标准命名空间stdclass Apublic: virtual void Show() const cout Class A endl; ;class B: public Apublic: void Show() const cout Class B Show(); p = &b; p-Show(); B *q; q = &b; q-Show(); return 0; / 返回值0,返回操作系统上面程序地输出结果为:2阅读下面程序,写出输出结果.#include / 预处理命令using namespace std; / 使用标准命名空间stdtemplate void Show(El
11、emType a, int n) for (int i = 0; i n; i+) cout ai ; int main(void) int a = 1, 6, 9; Show(a, sizeof(a) / sizeof(int); Show(a, 2); cout endl; return 0; / 返回值0, 返回操作系统上面程序地输出结果为:3阅读下面程序,写出输出结果.#include / 预处理命令using namespace std; / 使用标准命名空间stdclass MyClasspublic: MyClass() count+; MyClass() count-; sta
12、tic int GetCount() return count; private: static int count;int MyClass:count = 0; / 初始化静态数据成员int main(void) MyClass obj1; cout MyClass:GetCount() endl; MyClass obj2; cout MyClass:GetCount() endl; MyClass obj3; cout obj1.GetCount() endl; MyClass *p = new MyClass; cout MyClass:GetCount() endl; delete p; cout MyClass:GetCount() endl; return 0; / 返回值0, 返回操作系统上面程序地输出结果为:4阅读下面程序,写出输出结果.#include / 预处理命令using namespace std; / 使用标准命名空间stdclass Apublic: A() cout A() endl; A() cout A() endl; virtual void f() cout A:f() endl; ;class B: pu
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1