《2022年C面向对象程序设计模拟试题四8.docx》由会员分享,可在线阅读,更多相关《2022年C面向对象程序设计模拟试题四8.docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品学习资源封面欢迎下载精品学习资源作者: PanHongliang仅供个人学习欢迎下载精品学习资源C+ 面对对象程序设计模拟试卷四一、单项选择题(本大题共10 小题 ,每道题 2 分,共 20 分)在每道题列出地四个备选项中,只有一个是符合题目要求地,请将其代码填写在题后地括号内.错选、多项或未选均无分.1. 以下关于 C+ 函数地说明中 ,正确地是(). A )内联函数就是定义在另一个函数体内部地函数B)函数体地最终一条语句必需是return 语句C)调用一个函数之前 ,假如仍没有定义这个函数,必需先声明其原型D)编译器会依据函数地返回值类型和参数表来区分函数地不同重载形式2. 假定 My
2、CIass 为一个类 ,那么以下地函数说明中,()为该类地无参构造函数.A ) void MyClass ;B) MyClassint n ;C) MyClass ;D)MyClass ;3. 以下表达中 ,错误地是() .A )派生类可以使用private 派生B)对基类成员地拜望必需是无二义性地 C)基类成员地拜望才能在派生类中保护不变D)赋值兼容规章也适用于多继承地组合4. 当一个类地某个函数被说明为virtual 时,该函数在该类及其全部派生类中() .A. 都是虚函数B. 只有被重新说明为vittual 时才是虚函数C. 都不是虚函数D. 上面都不正确5. 派生类地构造函数地成员初始
3、化表中,不能包含() .A )基类地构造函数B)派生类中子对象地初始化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 ) publicB) privateC) virtual D) p
4、rotected8. 实现运行时地多态性要使用() .A )重载函数B)析构函数C)构造函数D)虚函数9假如在类 MyClass 地外面使用函数调用MyClass:f ;就函数 f 是类 MyClass 地() .A. 静态成员函数B. 非静态成员函数C. 友元函数D. 前面都不正确10由于常对象不能被更新,因此() . A )通过常对象只能调用它地常成员函数B)通过常对象只能调用静态成员函数C)常对象地成员都是常成员D) 通过常对象可以调用任何不转变对象值地成员函数欢迎下载精品学习资源二、填空题(本大题共5 小题 ,每道题 2 分,共 10 分)不写解答过程 ,将正确地答案写在每道题地空格内
5、 .错填或不填均无分 .1. 对于派生类地构造函数,在定义对象时构造函数地执行次序为:先执行调用 地构造函数 ,再执行调用子对象类地构造函数,最终执行派生类地构造函数体中地内容 .2. 声明类模板应使用关键字() .3. 重载地关系运算符和规律运算符地返回类型应当是() .4. 在面对对象方法中 ,类地实例称为().5在类地对象被释放时三、完成程序填题(本大题共序补充完整 ,1请完成下面地程序,(3 个小题)函数会被自动调用 .,每道题 3 分,共 9 分)下面程序都留有空白,请将程#include / 预处理命令using namespace std;/ 使用标准命名空间 std/ 测试静态
6、成员类class Testprivate:int a;/ 数据成员public:Testint x = 0:1/ 构造函数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
7、 x = 0 a = x; / 构造函数2 return a ; 为整型 / 类型转换函数 将类类型转换欢迎下载精品学习资源mainvoid象示整数 ;int mainvoid/主 函 数Integer a = 6;/ 定义整数对cout a endl ;/ 显return 0;/ 返回值 0, 返回操作系统欢迎下载精品学习资源3请完成下面地程序#include / 预处理命令using namespace std;/ 使用标准命欢迎下载精品学习资源名空间 std/ 复数类class Complexprivate:欢迎下载精品学习资源欢迎下载精品学习资源造函数public:double rea
8、lPart;/ 实部double imagePart;/ 虚部Complexdouble real = 0, double image = 0: realPartreal, imagePartimage / 构double GetRealPart const return realPart ; / 返回实部double GetImagePart const return imagePart ; / 返回虚部Complex operator+const Complex &a const/ 重载加法运算符 +欢迎下载精品学习资源return Complex3 ;/ 返回和 ;欢迎下载精品学习资源m
9、ainvoid数加法运算int mainvoid/主 函 数Complex a1, 2, 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 分
10、 ,共 20 分)给出下面各程序地输出结果.1. 阅读下面程序 ,写出输出结果 .#include / 预处理命令欢迎下载精品学习资源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. 阅读下面程序
11、 ,写出输出结果 .#include / 预处理命令using namespace std;/ 使用标准命名空间 std template 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 namesp
12、ace std;/ 使用标准命名空间 std class MyClasspublic:欢迎下载精品学习资源private: ;MyClass count+ ; MyClasscount-; static int GetCount return count ; static int count ;欢迎下载精品学习资源int MyClass:count = 0 ;/ 初始化静态数据成员int mainvoidMyClass obj1 ;cout MyClass:GetCount endl ;MyClass obj2 ;cout MyClass:GetCount endl ;MyClass obj3
13、 ;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;/ 使用标准命名空间 std class Apublic:A cout A endl; A cout A endl; virtual void f cout A:f endl; ;cl
14、ass B: public A欢迎下载精品学习资源public: ;B cout B endl; B cout B endl; void f cout B:f f ;return 0;/ 返回值 0, 返回操作系统上面程序地输出结果为: 六、编程题(本大题26 分)编写程序 ,定义抽象基类Shape形状 ,由它派生出 3 个派生类 : Circle 圆形、Rectangle 矩形 和 Square 正方形 ,用函数函数 ShowArea 分别显示各种图形地面积,最终仍要显示全部图形地总面积.C+ 面对对象程序设计模拟试卷四参考答巡查一、单项选择题(本大题共只有一个是符合题目要求地10 小题 ,
15、每道题 2 分,共 20 分)在每道题列出地四个备选项中,请将其代码填写在题后地括号内.错选、多项或未选均无分.,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 in
16、t3参考答案: 3 realPart + a.realPart, imagePart + a.imagePart 或 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 / 预处理命
17、令using namespace std;/ 使用标准命名空间欢迎下载精品学习资源stdconst double PI = 3.1415926;/ 定义常量 PI class Shapepublic:欢迎下载精品学习资源Shape / 构造函数virtual Shape / 析构函数virtual ShowArea = 0 ;/ 显示面积static double totalArea ;/ 总面积static void ShowTotalArea cout 总面积 : totalArea endl ; ;class Circle: public Shapeprivate:欢迎下载精品学习资源造
18、函数public:double radius;/ 半径Circledouble r: radiusr totalArea += PI * r * r; / 构欢迎下载精品学习资源Circle / 析构函数virtual ShowArea cout 圆面积 : PI * radius * radius endl ; ; / 显示面积 ;class Rectangle: public Shapeprivate:欢迎下载精品学习资源public: ;double length ;/ 长double width ;/ 宽Rectangledouble l, double w: lengthl, wid
19、thw totalArea += l * w; / 构造函数Rectangle / 析构函数virtual ShowArea cout 矩形面积 : length * width endl; ;/ 显示面积欢迎下载精品学习资源class Square: public Shapeprivate:欢迎下载精品学习资源public: ;double length ;/ 边长Squaredouble l: lengthl totalArea += l * l; / 构造函数Square / 析构函数virtual ShowArea cout 正方形面积 : length * length endl ;
20、 ;/ 显示面积欢迎下载精品学习资源double Shape:totalArea = 0 ;/ 初始化 totalArea int mainvoidCircle c1 ;/ 定义圆对象c.ShowArea ;/ 显示面积Rectangle r1, 2 ;/ 定义矩形对象r.ShowArea;/ 显示面积Square z3;/ 定义正方形对象z.ShowArea ;/ 显示面积Shape:ShowTotalArea;/ 显示总面积return 0;/ 返回值 0, 返回操作系统版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理;版权为潘宏亮个人全部This article inclu
21、des some parts, including text,pictures, and design. Copyright is Pan Hongliangs personal欢迎下载精品学习资源ownership.用户可将本文的内容或服务用于个人学习、争论或观看,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵害本网站及相关权益人的合法权益;除此以 外,将本文任何内容或服务用于其他用途时,须征得本人及相关权益人的书面许可,并支付酬劳;Users may use the contents or services of this article for pers
22、onal study, research or appreciation, and other non-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any
23、 content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.转载或引用本文内容必需是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修 改,并自负版权等法律责任;Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the欢迎下载精品学习资源use of news or informative public free information. Itshall not misinterpret or modify the original intention ofthe content of this article, and shall bear legal liabilitysuch as copyright.欢迎下载
限制150内