2023年C++面向对象程序设计模拟试题四.doc
《2023年C++面向对象程序设计模拟试题四.doc》由会员分享,可在线阅读,更多相关《2023年C++面向对象程序设计模拟试题四.doc(15页珍藏版)》请在咨信网上搜索。
C++面向对象程序设计模拟试题四 一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目规定的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.下列关于C++函数的说明中,对的的是( )。 A)内联函数就是定义在另一个函数体内部的函数 B)函数体的最后一条语句必须是return语句 C)调用一个函数之前,假如还没有定义这个函数,必须先声明其原型 D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式 2.假定MyCIass为一个类,那么下列的函数说明中,( )为该类的无参构造函数。 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)派生类中子对象的初始化 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)protected 8.实现运营时的多态性要使用( )。 A)重载函数 B)析构函数 C)构造函数 D)虚函数 9.假如在类MyClass的外面使用函数调用MyClass::f();则函数f()是类MyClass的( )。 A. 静态成员函数 B. 非静态成员函数 C. 友元函数 D. 前面都不对的 10.由于常对象不能被更新,因此( )。 A)通过常对象只能调用它的常成员函数 B)通过常对象只能调用静态成员函数 C)常对象的成员都是常成员 D)通过常对象可以调用任何不改变对象值的成员函数 二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将对的的答案写在每小题的空格内。错填或不填均无分。 1.对于派生类的构造函数,在定义对象时构造函数的执行顺序为:先执行调用___________的构造函数,再执行调用子对象类的构造函数,最后执行派生类的构造函数体中的内容。 2.声明类模板应使用关键字( )。 3.重载的关系运算符和逻辑运算符的返回类型应当是( )。 4.在面向对象方法中,类的实例称为( )。 5.在类的对象被释放时,( )函数会被自动调用。 三、完毕程序填题(本大题共3个小题,每小题3分,共9分)下面程序都留有空白,请将程序补充完整, 1.请完毕下面的程序 #include <iostream> // 预解决命令 using namespace std; // 使用标准命名空间std // 测试静态成员类 class Test { private: int a; // 数据成员 public: Test(int x = 0): [1] {} // 构造函数 void Show(){ cout << "a:" << a << endl; } // 显示数据成员之值 }; int main(void) // 主函数main(void) { Test obj(168); // 定义对象 obj.Show(); // 显示数据成员之值 return 0; // 返回值0,返回操作系统 } 2.请完毕下面的程序 #include <iostream> // 预解决命令 using namespace std; // 使用标准命名空间std // 整数类 class Integer { private: int a; // 数据成员 public: Integer(int x = 0){ a = x; } // 构造函数 [2] () { return a; } // 类型转换函数(将类类型转换为整型) }; int main(void) // 主函数main(void) { Integer a = 6; // 定义整数对象 cout << a << endl; // 显示整数 return 0; // 返回值0, 返回操作系统 } 3.请完毕下面的程序 #include <iostream> // 预解决命令 using namespace std; // 使用标准命名空间std // 复数类 class Complex { private: double realPart; // 实部 double imagePart; // 虚部 public: Complex(double real = 0, double image = 0): realPart(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 + 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 <iostream> // 预解决命令 using namespace std; // 使用标准命名空间std class A { public: virtual void Show() const { cout << "Class A" << endl; } }; class B: public A { public: void Show() const { cout << "Class B" << endl; } }; void Show(const A & obj) { obj.Show(); } int main(void) { A a; B b; Show(a); Show(b); A *p; p = &a; p->Show(); p = &b; p->Show(); B *q; q = &b; q->Show(); return 0; // 返回值0,返回操作系统 } 上面程序的输出结果为: 2.阅读下面程序,写出输出结果。 #include <iostream> // 预解决命令 using namespace std; // 使用标准命名空间std template <class ElemType> void Show(ElemType a[], int n) { for (int i = 0; i < n; i++) { cout << a[i] << " "; } } int main(void) { int a[] = {1, 6, 9}; Show(a, sizeof(a) / sizeof(int)); Show(a, 2); cout << endl; return 0; // 返回值0, 返回操作系统 } 上面程序的输出结果为: 3.阅读下面程序,写出输出结果。 #include <iostream> // 预解决命令 using namespace std; // 使用标准命名空间std class MyClass { public: MyClass(){ count++; } ~MyClass(){ count--; } static 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 <iostream> // 预解决命令 using namespace std; // 使用标准命名空间std class A { public: A() { cout << "A()" << endl; } ~A() { cout << "~A()" << endl; } virtual void f() { cout << "A::f()" << endl; } }; class B: public A { public: B() { cout << "B()" << endl; } ~B() { cout << "~B()" << endl; } void f() { cout << "B::f()" << endl; } }; int main(void) { B obj; A *p = &obj; p->f(); return 0; // 返回值0, 返回操作系统 } 上面程序的输出结果为: 六、编程题(本大题26分) 编写程序,定义抽象基类Shape(形状),由它派生出3个派生类: Circle(圆形)、Rectangle(矩形)和Square (正方形),用函数函数ShowArea()分别显示各种图形的面积,最后还要显示所有图形的总面积。 C++面向对象程序设计模拟试题四参考答巡查 一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目规定的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.C 2.C 3.C 4.A 5.C 6.A 7.B 8.D 9.A 10.A 二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将对的的答案写在每小题的空格内。错填或不填均无分。 1.参考答案:基类 2.参考答案:template 3.参考答案:bool或布尔型 4.参考答案:对象 5.参考答案:析构函数 三、完毕程序填题(本大题共3个小题,每小题3分,共9分)下面程序都留有空白,请将程序补充完整, 1.参考答案:[1]a(x) 2.参考答案:[2]operator int 3.参考答案:[3] realPart + a.realPart, imagePart + a.imagePart或this->realPart + a.realPart, this->imagePart + a.imagePart 四、程序分析题(本大题共4小题,每小题5分,共20分)给出下面各程序的输出结果。 1.参考答案: Class A Class B Class A Class B Class B 2.参考答案: 1 6 9 1 6 3.参考答案: 1 2 3 4 3 4.参考答案: A() B() B::f() ~B() ~A() 六、编程题(本大题26分) 参考程序: #include <iostream> // 预解决命令 using namespace std; // 使用标准命名空间std const double PI = 3.1415926; // 定义常量PI class Shape { public: Shape() { } // 构造函数 virtual ~Shape() { } // 析构函数 virtual ShowArea() = 0; // 显示面积 static double totalArea; // 总面积 static void ShowTotalArea() { cout << "总面积:" << totalArea << endl; } }; class Circle: public Shape { private: double radius; // 半径 public: Circle(double r): radius(r) { totalArea += PI * r * r; } // 构造函数 ~Circle() { } // 析构函数 virtual ShowArea() { cout << "圆面积:" << PI * radius * radius << endl; }; // 显示面积 }; class Rectangle: public Shape { private: double length; // 长 double width; // 宽 public: Rectangle(double l, double w): length(l), width(w){ totalArea += l * w; } // 构造函数 ~Rectangle() { } // 析构函数 virtual ShowArea() { cout << "矩形面积:" << length * width << endl; }; // 显示面积 }; class Square: public Shape { private: double length; // 边长 public: Square(double l): length(l){ totalArea += l * l; } // 构造函数 ~Square() { } // 析构函数 virtual ShowArea() { cout << "正方形面积:" << length * length << endl; }; // 显示面积 }; double Shape::totalArea = 0; // 初始化totalArea int main(void) { Circle c(1); // 定义圆对象 c.ShowArea(); // 显示面积 Rectangle r(1, 2); // 定义矩形对象 r.ShowArea(); // 显示面积 Square z(3); // 定义正方形对象 z.ShowArea(); // 显示面积 Shape::ShowTotalArea(); // 显示总面积 return 0; // 返回值0, 返回操作系统 }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 C+ 面向 对象 程序设计 模拟 试题
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文