《2022年C面向对象程序设计模拟试题四.docx》由会员分享,可在线阅读,更多相关《2022年C面向对象程序设计模拟试题四.docx(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源C+ 面对对象程序设计模拟试卷四一、单项选择题(本大题共10 小题,每道题 2 分,共 20 分)在每道题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内;错选、多项或未选均无分;1. 以下关于 C+ 函数的说明中,正确选项();A )内联函数就是定义在另一个函数体内部的函数B)函数体的最终一条语句必需是return 语句C)调用一个函数之前,假如仍没有定义这个函数,必需先声明其原型D)编译器会依据函数的返回值类型和参数表来区分函数的不同重载形式2. 假定 MyCIass 为一个类,那么以下的函数说明中,()为该类的无参构造函数;A ) void MyCl
2、ass ;B) MyClassint n ;C) MyClass ;D)MyClass ;3以下表达中,错误选项();A )派生类可以使用private 派生B)对基类成员的拜望必需是无二义性的 C)基类成员的拜望才能在派生类中保护不变D)赋值兼容规章也适用于多继承的组合4. 当一个类的某个函数被说明为virtual 时,该函数在该类及其全部派生类中() ;A. 都是虚函数B. 只有被重新说明为vittual 时才是虚函数C. 都不是虚函数D. 上面都不正确5. 派生类的构造函数的成员初始化表中,不能包含();A )基类的构造函数B)派生类中子对象的初始化C)基类中子对象的初始化D)派生类中一
3、般数据成员的初始化6以下是重载加法运算符的函数原型声明,其中错误选项();A ) MyClass operator+double,double ; B) MyClass operator+double,MyClass ;C) MyClass operator+MyClass,double ;D) MyClass operator+MyClass,MyClass ;7. 派生类中的成员不能直接拜望基类中的()成员;A ) publicB) privateC) virtual D) protected8. 实现运行时的多态性要使用();A )重载函数B)析构函数C)构造函数D)虚函数9假如在类 M
4、yClass 的外面使用函数调用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: ;Testint x = 0:1/ 构
6、造函数void Show cout a: a endl; / 显示数据成员之值欢迎下载精品学习资源int mainvoid/ 主函数 mainvoidTest obj168;/ 定义对象obj.Show ;/ 显示数据成员之值return 0;/ 返回值 0, 返回操作系统2. 请完成下面的程序#include / 预处理命令using namespace std;/ 使用标准命名空间 std/ 整数类欢迎下载精品学习资源class Integerprivate:int a;/ 数据成员public:Integerint x = 0 a = x ; / 构造函数欢迎下载精品学习资源为整型 ma
7、invoid象示整数2 return a ; / 类型转换函数 将类类型转换 ;int mainvoid/主 函 数Integer a = 6;/ 定义整数对cout a endl ;/ 显欢迎下载精品学习资源return 0;/ 返回值 0, 返回操作系统3. 请完成下面的程序#include / 预处理命令using namespace std;/ 使用标准命名空间 std/ 复数类class Complexprivate:double realPart;/ 实部double imagePart;/ 虚部欢迎下载精品学习资源造函数public:Complexdouble real = 0,
8、 double image = 0: realPartreal, imagePartimage / 构double GetRealPart const return realPart ; / 返回实部double GetImagePart const return imagePart ; / 返回虚部Complex operator+const Complex &a const/ 重载加法运算符 +欢迎下载精品学习资源return Complex3 ;/ 返回和欢迎下载精品学习资源 ;欢迎下载精品学习资源mainvoid数加法运算int mainvoid/主 函 数Complex a1, 2,
9、 b2, 6, c ;/ 定义复数对象c = a + 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
10、 / 预处理命令using namespace std;/ 使用标准命名空间 std欢迎下载精品学习资源class 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
11、 std;/ 使用标准命名空间 stdtemplate void ShowElemType a, int nfor int i = 0 ; i n ; i+ cout ai ; int mainvoidint a = 1, 6, 9 ;Showa, sizeofa / sizeofint ;Showa, 2;cout endl ;return 0;/ 返回值 0, 返回操作系统上面程序的输出结果为:3. 阅读下面程序,写出输出结果;#include / 预处理命令欢迎下载精品学习资源using namespace std;/ 使用标准命名空间 stdclass MyClasspublic:My
12、Class count+ ; MyClasscount-; static int GetCount return count ; 欢迎下载精品学习资源private: ;static int count ;欢迎下载精品学习资源int MyClass:count = 0 ;/ 初始化静态数据成员int mainvoidMyClass obj1 ;cout MyClass:GetCount endl ;MyClass obj2 ;cout MyClass:GetCount endl ;MyClass obj3 ;cout obj1.GetCount endl ;MyClass *p = new M
13、yClass ;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: public Apublic:B cout B endl; B
14、 cout B endl; void f cout B:f f ;return 0;/ 返回值 0, 返回操作系统上面程序的输出结果为: 六、编程题(本大题26 分)编写程序,定义抽象基类Shape形状 ,由它派生出 3 个派生类 : Circle 圆形 、Rectangle 矩形 和 Square 正方形 ,用函数函数ShowArea 分别显示各种图形的面积,最终仍要显示全部图形的总面积;C+ 面对对象程序设计模拟试卷四参考答巡查一、单项选择题(本大题共10 小题,每道题 2 分,共 20 分)在每道题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内;错选、多项或未
15、选均无分;1 C2 C3 C4A5. C6 A7 B8 D9A10 A二、填空题(本大题共5 小题,每道题 2 分,共 10 分)不写解答过程,将正确的答案写在每道题的空格内;错填或不填均无分;1参考答案:基类 2参考答案: template 3参考答案: bool 或布尔型4. 参考答案:对象欢迎下载精品学习资源5. 参考答案:析构函数三、完成程序填题(本大题共3 个小题,每道题3 分,共 9 分)下面程序都留有空白,请将程序补充完整,1参考答案: 1ax 2参考答案: 2operator int3参考答案: 3 realPart + a.realPart, imagePart + a.im
16、agePart 或 this-realPart +a.realPart, this-imagePart + a.imagePart四、程序分析题(本大题共4 小题,每道题 5 分,共 20 分)给出下面各程序的输出结果;1. 参考答案: Class AClass B Class A Class B Class B2. 参考答案:1 6 9 1 63. 参考答案:123434. 参考答案: AB B:fBA六、编程题(本大题26 分) 参考程序:#include / 预处理命令using namespace std;/ 使用标准命名空间stdconst double PI = 3.1415926
17、;/ 定义常量 PIclass Shapepublic:Shape / 构造函数virtual Shape / 析构函数virtual ShowArea = 0 ;/ 显示面积欢迎下载精品学习资源static double totalArea ;/ 总面积static void ShowTotalArea cout 总面积 : totalArea endl ; ;class Circle: public Shapeprivate:double radius;/ 半径欢迎下载精品学习资源造函数public: ;Circledouble r: radiusr totalArea += PI * r
18、 * r; / 构Circle / 析构函数virtual ShowArea cout 圆面积 : PI * radius * radius endl ; ; / 显示面积欢迎下载精品学习资源class Rectangle: public Shapeprivate:double length ;/ 长double width ;/ 宽欢迎下载精品学习资源public: ;Rectangledouble l, double w: lengthl, widthw totalArea += l * w; / 构造函数Rectangle / 析构函数virtual ShowArea cout 矩形面积
19、 : length * width endl; ;/ 显示面积欢迎下载精品学习资源class Square: public Shapeprivate:double length ;/ 边长欢迎下载精品学习资源public: ;Squaredouble l: lengthl totalArea += l * l; / 构造函数Square / 析构函数virtual ShowArea cout 正方形面积 : length * length endl ; ;/ 显示面积欢迎下载精品学习资源double Shape:totalArea = 0 ;/ 初始化 totalAreaint mainvoid欢迎下载精品学习资源Circle c1 ;/ 定义圆对象c.ShowArea ;/ 显示面积Rectangle r1, 2 ;/ 定义矩形对象r.ShowArea;/ 显示面积Square z3;/ 定义正方形对象z.ShowArea ;/ 显示面积Shape:ShowTotalArea;/ 显示总面积return 0;/ 返回值 0, 返回操作系统欢迎下载