C++面向对象程序设计模拟试题5

上传人:bei****lei 文档编号:171596746 上传时间:2022-11-28 格式:DOC 页数:12 大小:92KB
收藏 版权申诉 举报 下载
C++面向对象程序设计模拟试题5_第1页
第1页 / 共12页
C++面向对象程序设计模拟试题5_第2页
第2页 / 共12页
C++面向对象程序设计模拟试题5_第3页
第3页 / 共12页
资源描述:

《C++面向对象程序设计模拟试题5》由会员分享,可在线阅读,更多相关《C++面向对象程序设计模拟试题5(12页珍藏版)》请在装配图网上搜索。

1、C+面向对象程序设计模拟试题五一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中,只有一个是苻合题目要求的。请将其代码填写在题后的括号内。错选,多选或未选均无分。1下列对类的构造函数和析构函数描述正确的是( )。A)构造函数可以重载,析构函数不能重载B)构造函数不能重载,析构函数可以重载C)构造函数可以重载,析构函数可以重载D)构造函数不能重载,析构函数不能重载2在函数定义前加上关键字“inline”,表示该函数被定义为( )。A)重载函数 B)内联函数C)成员函数 D)普通函数3下面有关重载函数的说明中, ( )是正确的。A)重载函数必须具有不同的返回值类型B

2、) 重载函数形参个数必须不同C) 重载函数一般具有不同的形参列表D) 重载函数名可以不同4下列有关类与对象的说法中,( ) 是不正确的。A)对象是类的一个实列B) 任何一个对象只能属于一个具体的类C) 一个类只能有一个对象D) 类和对象的关糸和数椐类型与变量的关糸类似5已知: Print( )函数是一个类的常成员函数,它无返回值,下列表示中,正确的是 ( )。A)void Print( ) const; B) const void Print( ); C) void const Print( ); D) void Print(const)6假定Myclass为一个类,那么下列的函数说明中( )

3、为该类的析构函数。A) void Myclass( ); B) Myclass( int n);C) Myclass( ); D) Myclass( )7下面类的定义中有( ) 处错误。 class myclassint i=0; public: void myclass( );myclass(value); A) 1 B)2 C)3 D)48说明虚函数的关键字是( )。A. inlineB. virtualC. defineD. static9cout是某个类的标准对象的引用,该类是( )。A. ostreamB. istreamC. stdoutD. stdin10如果class类中的所有

4、成员在定义时都没有使用关键字public、private或protected,则所有成员缺省定义为( )。 A. public B. protected C. private Dstatic 11定义类模板时要使用关键字( )。A. constB. newC. deleteD. template12一个类的所有对象共享的是( )。 A. 私有数据成员B. 公有数据成员C. 保护数据成员D. 静态数据成员13静态成员函数没有( )。 A. 返回值 B. this指针 C. 指针参数 D. 返回类型14解决多重继承中二义性问题的方法有( )。 A. 只能使用作用域分辨操作符B. 使用作用域分辨操作

5、符或赋值兼容规则C. 使用作用域分辨操作符或虚基类D. 使用虚基类或赋值兼容规则15如果在类CTest的外面的非成员函数中采用CTest:f()形式函数调用;则函数f( )是类CTest的( )。A. 静态成员函数B. 非静态成员函数C. 友元函数D. 前面都不正确二、判断正误题(本大题共5小题,每小题2分,共10分)判断正误,在题后的括号内,正确的划上“”错误的划上”。1构造函数可以设置默认参数 2类的析构函数的作用是对象的初始化 3cout的默认输出对象是键盘, cin的默认输入对象是屏幕4抽象类可以用来直接创建对象。5常对象可以调用任意成员函数。三、 填空题(本大题共5小题,每小题2分,

6、共10分)不写解题过程, 将正确的答案写在每小题的空格内,错填或不填均无分。1重载运算苻“-” 的函数名为( )。 2C+中类的用途有两种, 一种是类的实例化, 即生成类的对象, 另一种是通过( ),派生出新的类。3在下面程序的横线处填上正确的语句, 以实现动态多态。#include class Base public: virtual void Fun() cout Base:Fun endl; ;class Derived: public Base public: void Fun() cout Derived:Fun Fun( );/调派生类的成员函数Fun( ),以实现动态多态 ret

7、urn 0; 4编译时多态性可以用( )函数实现。5使用new建立的动态对象在不用时应该用( )删除,以便释放所占用空间。 四、程序分析题(本大题共8小题,每小题3分,共24分)给出下面各程序的输出结果。1若有以下程序:#include class A int a; public:A(int aa = 0 ) a = aa; A( ) cout Destructor A! a endl; ;class B: public A int b;public:B(int aa = 0, int bb = 0): A(aa) b = bb; B() cout Destructor B! b endl;

8、;int main() B x(5), y(6,7); return 0; 上面程序的输出结果为:2若有以下程序:#include class Point int x, y; public: Point() x = 0; y = 0; void SetPoint(int x1, int y1) x = x1; y = y1; void DisPoint() cout x= x , y= y SetPoint(5, 12);p-DisPoint(); delete p;return 0; 上面程序的输出结果为:3若有以下程序:#include class Sample int n; public

9、: Sample (int i) n =i; void Add() s += n; static int s; void Dis() cout s endl; ;int Sample:s = 0;int main()Sample a(2), b(5), c(8);a.Add( );b.Add( );c.Dis( );return 0; 上面程序的输出结果为:4若有以下程序: #include class Base public: void Fun() cout 1 endl; ;class Derived:public Base public:void Fun() cout 2 Fun();

10、a.Fun();return 0;上面程序的输出结果为:5若有以下程序:#includetemplatevoid Fun(T1 &x, T2 &y)if (sizeof(T1) sizeof(T2) ) x = (T1)y;else y = (T2)x;int main() double d;int i ;d = 99.99;i = 88;Fun(d,i);cout d= d i= i endl;return 0; 上面程序的输出结果为:6阅读下面程序,写出输出结果。#include using namespace std;class Point public: Point (int x =

11、0, int y = 0): m_x(x), m_y(y) int GetX() const return m_x; int GetY() const return m_y; void SetX(int x) m_x = x; void SetY(int y) m_y = y; private:int m_x;/ X坐标int m_y;/ X坐标;int main(void) Point oPoint1;const Point oPoint2(3, 4);cout oPoint1.GetX() endl;oPoint1.SetX(1);cout oPoint1.GetX() endl;oPoi

12、nt1.SetY(2);cout oPoint1.GetY() endl;cout oPoint2.GetX() endl;cout oPoint2.GetY() endl;return 0;上面程序的输出结果为:7. 阅读下面程序,写出输出结果。#include class Sample int i;public:Sample();void Display( );Sample();Sample:Sample() cout constructor ,; i=0;void Sample:Display() cout i= i ,; Sample:Sample() cout destructor

13、endl; int main() Sample a; a.Display();return 0;上面程序的输出结果为:8阅读下面程序,写出输出结果。#includeusing namespace std;class Aint a,b;public:A() a = b = 0; A(int aa, int bb) a = aa; b = bb; cout a b endl;int main()A x, y(2,3);return 0;上面程序的输出结果为:五、 程序改错题(本大题共3小题,共3处错, 每改一错2分,共6分)指出下面程序中错误, 说明错误原因, 并加以改正。1下面程序中类的定义中有

14、一处错误,请指出出错的行,说明错误原因,并加以改正。#include /1using namespace std;/2/3class A/4/5public:/6A(int i = 0, int j): mi(i), mj(j) /7void Show() cout mi mj endl; /8private:/9int mi, mj;/10;/11/12int main()/13/14A obj(12,16);/15obj.Show();/16return 0;/17/182下面程序中类的定义中有一处错误,请指出出错的行,说明错误原因,并加以改正。#include /1using names

15、pace std;/2/3class A/4/5public: /6A(int a):m_a = a/7void Show()/8 cout m_a endl; /9private:/10 int m_a;/11;/12/13int main()/14/15A obj(8);/16obj.Show();/17return 0;/18/193下面程序中类的定义中有一处错误,请指出出错的行,说明错误原因,并加以改正。#include /1using namespace std;/2/3class Test /4/5public:/6 Test(int iVar = 0):m_iArr(iVar)/

16、7 cout 构造函数: m_iArr endl; /8void Test()/9 cout 析造函数: m_iArr endl; /10/11private:/12int m_iArr;/13;/14/15int main()/16/17Test obj1, obj2(8);/18cout endl;/19return 0;/20/21六、 编程题(本大题共2小题,每小题10分,共20分)1设计一个类DateInfo,要求其满足下述要求: (1)要求有一个无参的构造函数,其初始的年、月、日分别为:2010,6,8。 (2)要求有一个带参数的构造函数,其参数分别对应年、月、日。 (3)要求用一

17、个成员函数实现日期的设置。 (4)要求用一个成员函数实现输出日期。 要求用一个成员函数实现日期的获取。 2定义一个复数类Complex, 二个数据成员为double型r, i 为private属性。定义代二个参数的构造函数和一个Show( ) 函数用以输出r, i的值, 另外作为成员函数重载的运算苻”+”的功能是将此类二个对象的数据成员r和i对应相加。这些成员函数的属性均为public. 请用C+编写此程序, 并编写测试程序进行测试。C+面向对象程序设计模拟试题五参考答案一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中,只有一个是苻合题目要求的。请将其代码填写

18、在题后的括号内。错选,多选或未选均无分。1A)2B)3C) 4C)5A)6D)7C)8B)9A)10C) 11D)12D)13B) 14C) 15A)二、判断正误题(本大题共5小题,每小题2分,共10分)判断正误,在题后的括号内,正确的划上“”错误的划上”。1参考答案:“”2参考答案:“”3参考答案:“”4参考答案:“”5参考答案:“”三、 填空题(本大题共5小题,每小题2分,共10分)不写解题过程, 将正确的答案写在每小题的空格内,错填或不填均无分1参考答案:oprator-2参考答案:继承3参考答案:pb=&b 4参考答案:重载5参考答案:delete四、程序分析题(本大题共8小题,每小题

19、3分,共24分)给出下面各程序的输出结果。1输出结果为:Destructor B! 7Destructor A! 6Destructor B! 0Destructor A! 52输出结果为: x=5, y=123输出结果为: 74输出结果为:1 25输出结果为:d=88i=886程序的输出结果为:012347程序的输出结果为:constructor,i=0,destructor8程序的输出结果为:2 3五、 程序改错题(本大题共3小题,共3处错, 每改一错2分,共6分)指出下面程序中错误, 说明错误原因, 并加以改正。1参考答案: 第7行应从右自左默认,应改为A(int i,int j=0 )

20、: mi( i ), mj( j ) 或改为A(int i = 0,int j = 0): mi(i), mj(j) 2参考答案: 第7行,改为A(int a): m_a(a) 3参考答案: 第9行,析构函数无返回值类型(void类型也不行),应改为CTest()六、 编程题(本大题共2小题,每小题10分,共20分)1参考程序:#include using namespace std;class DateInfo private:int year, month, day; public: DateInfo(): year(2010), month(6), day(8) DateInfo(int

21、 y, int m, int d): year(y), month(m), day(d) void Set(int y, int m, int d) year = y;month = m;day = d;void Show() cout year 年 month 月 day 日 endl; ;int main() DateInfo d1, d2(1988, 8, 18);d1.Show();d2.Show();d2.Set(1999, 9, 19);d2.Show();return 0;2参考程序:#include using namespace std;class Complex private:double r, i; public: Complex(double a, double b): r(a), i(b) void Show() cout r i endl; Complex operator +(Complex obj) return Complex(r + obj.r, i + obj.i); ;int main() Complex c1(3.5, 4.5), c2(2.5, 5.5), c3(0.0, 0.0);c3 = c1 + c2; c3.Show(); return 0;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!