ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:20.40KB ,
资源ID:23951429      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23951429.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++面向对象程序设计模拟试题二.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++面向对象程序设计模拟试题二.docx

1、C+面向对象程序设计模拟试题二C+面向对象程序设计模拟试题二一、单项选择题1说明内联函数的关键字是( A )。A. inline B. virtual C. define D. static2假定CAb为一个类,则执行CAb oX;语句时将自动调用该类的(B ) A. 有参构造函数 B. 无参构造函数 C. 拷贝构造函数 D. 赋值重载函数 3cin是某个类的标准对象的引用,该类是(B)。A. ostream B. istream C. stdout D. stdin4下面的哪个保留字不能作为函数的返回类型?( C )A. void B. int C.new D. lon5不能参与重载的运算符

2、是( A )A. 类 B. 函数 C. 函数模板 D. 运算符6由于数据隐藏的需要,静态数据成员通常被说明为( A )。A. 私有的 B. 公有的 C. 保护的 D. 不可访问的7编译时多态性使用什么获得?( A )A. 重载函数 B. 继承 C. 虚函数 D. B和C 8拷贝构造函数的参数通常是(C)。A. 无特殊要求 B. 指向对象的指针 C. 自已类对象的常引用 D. 对象9C+有几种联编?( B )A. 1种 B. 2种 C. 3种 D. 4种10基类和派生类可以分别称为( B )。A.“大类”和“小类”B.“父类”和“子类”C. “小类”和“大类”D. “子类”和“父类”二、判断1不

3、可以定义抽象类的对象。 Y ( )2内联函数的定义必须出现在第一次调用内联函数之前。 Y ( )3模板函数与函数模板的意义完全相同。 N ( )4只有常成员函数才可以操作常对象。 Y ( )5引用可以不初始化。 N ( )6使用new运算符创建数组时,可以为该数组指定初始值。 N ( )三、填空题(本大题共6小题,每小题2分,共12分)不写解答过程,将正确的答案写在每小题的空格内。错填或不填均无分。1设函数max是由函数模板实现的,并且max(3.5, 5)和max(3, 5)都是正确的函数调用,则此函数模板具有( 2 )个类型参数。2在C+中,函数重载与虚函数帮助实现了类的( 多态 )性。3

4、由static修饰的数据成员为该类的所有对象( 共享 )。4重载函数在参数类型或参数个数上不同,但( 函数名 )相同。5使用new建立的动态对象在不用时必须用( delete )释放所占用的空间。6重载运算符“”的函数名为( operator )。四、程序分析题(本大题共4小题,每小题5分,共20分)给出下面各程序的输出结果。1阅读下面程序,写出输出结果。#include using namespace std;class CPositionpublic: CPosition(int iPositionX = 0, int iPositionY = 0):m_iPositionX(iPosit

5、ionX) m_iPositionY = iPositionY; int GetPositionX() const return m_iPositionX; int GetPositionY() const return m_iPositionY; void SetPositionX(int iPositionX) m_iPositionX = iPositionX; void SetPositionY(int iPositionY) m_iPositionY = iPositionY; private: int m_iPositionX; / X坐标 int m_iPositionY; /

6、X坐标;int main(void) CPosition oPostion1; const CPosition oPostion2(6, 8); cout oPostion1.GetPositionX() endl; oPostion1.SetPositionX(16); cout oPostion1.GetPositionX() endl; oPostion1.SetPositionY(18); cout oPostion1.GetPositionY() endl; cout oPostion2.GetPositionX() endl; cout oPostion2.GetPositionY

7、() endl; return 0;上面程序的输出结果为:1参考答案:01618682阅读下面程序,写出输出结果。#include using namespace std;template class CTestpublic: CTest(Type m_tArray, int iSize):m_pArray(m_tArray) m_iSize = iSize; void Print() const for (int i = 0; i m_iSize; i+) cout m_pArrayi ; private: Type *m_pArray; int m_iSize;int main(void)

8、 int a = 1, 0, 8; double b = 1.6, 1.8; CTest oTest1(a, 3); oTest1.Print(); CTest oTest2(b, sizeof(b) / sizeof(double); oTest2.Print(); cout endl; return 0;上面程序的输出结果为:2参考答案:1 0 8 1.6 1.83阅读下面程序,写出输出结果。#include using namespace std;class CGoodspublic: CGoods(int iWeight) m_iWeight = iWeight; m_iTotalWe

9、ight = m_iTotalWeight + iWeight; CGoods(const CGoods &oGood) m_iWeight = oGood.m_iWeight; m_iTotalWeight = m_iTotalWeight + m_iWeight; CGoods() m_iTotalWeight = m_iTotalWeight - m_iWeight; void Print() const; static int GetTotalWeight() return m_iTotalWeight; private: int m_iWeight; static int m_iTo

10、talWeight;int CGoods:m_iTotalWeight = 8; / 初始化静态数据成员void CGoods:Print() const cout m_iWeight m_iTotalWeight ;int main(void) CGoods oGood1(6); oGood1.Print(); CGoods oGood2(oGood1); oGood2.Print(); cout CGoods:GetTotalWeight(); cout endl; return 0;上面程序的输出结果为:3参考答案:6 14 6 20 204阅读下面程序,写出输出结果。#include

11、using namespace std;template class CTestpublic: CTest(Type tA = 0, Type tB = 0, Type tC = 0):m_tC(tC) m_tA = tA; m_tB = tB; void Print() cout m_tA endl; cout m_tB endl; void Print() const cout m_tC endl; private: Type m_tA, m_tB; const Type m_tC;int main(void) CTest oTest1; oTest1.Print(); CTest oTe

12、st2(1, 9, 6); oTest2.Print(); const CTest oTest3(0, 6, 1.8); oTest3.Print(); cout endl; return 0;上面程序的输出结果为:4参考答案:00191.8五、程序改错题1下面程序中类的定义中有一处错误,请指出出错的行,说明错误原因,并加以改正。#include /1using namespace std; /2 /3class CArray /4 /5public: /6 void CArray(int iArray, int iSize):m_pArray(iArray), m_iSize(iSize)

13、/7 /8 /9 /10 int GetSize() /11 /12 return m_iSize; /13 /14 /16 int &operator(int iIndex) /17 /18 return m_pArrayiIndex - 1; /19 /20 /21private: /22 int *m_pArray; / 指向一个数组空间 /23 int m_iSize; / 数组元素个数 /24; /25 /26 /27int main(void) /28 /29 int s=3, 7, 2, 1, 5; /30 CArray oArray(s, 5); /31 oArray1 = 9

14、; /32 for (int i = 1; i = 5; i+) /33 /34 cout oArrayi ; /35 /36 cout endl; /37 /38 return 0; /39 /401参考答案:出错行:第7行原因:构造函数不能有返回值类型改正:去掉void2下面程序中有错误,请指出出错的行,说明错误原因,并加以改正。#include /1using namespace std; /2 /3class CTest /4 /5public: /6 CTest(int iA = 0, int iB = 0):m_iA(iA), m_iB(iB) /7 /8 /9 /10 void

15、Print() /11 /12 cout m_iA , m_iB endl; /13 /14 /15private: /16 int m_iA, m_iB; /17; /18 /19 /20int main(void) /21 /22 const CTest oTest(12, 16); /23 oTest.Print(); /24 cout endl; /25 /26 return 0; /27 /282参考答案:出错行:第11、23行原因:常对象只能调用常成员函数改正:将第11行改为: void Print() const /11或将第23行改为: CTest oTest(12, 16);

16、 /233下面程序中类的定义中有一处错误,请指出出错的行,说明错误原因,并加以改正。#include /1using namespace std; /2 /3class CInteger /4 /5public: /6 CInteger(int iNum=0) /7 /8 m_iNum = iNum; /9 /10 /11 int operator int() /12 /13 return m_iNum; /14 /15 /16 void Print() const /17 /18 cout m_iNum endl; /19 /20 /21private: /22 int m_iNum; /2

17、3; /24 /25int main(void) /26 /27 CInteger oCInteger(168); /28 int iNum; /29 iNum = oCInteger; /30 cout iNum endl; /31 /32 return 0; /33 /343参考答案:出错行:第12行原因:类型转换函数没有返回值类型改正:去掉返回值类型int4下面程序中有一处错误,请指出出错的行,说明错误原因,并加以改正。#include /1using namespace std; /2 /3class CBase /4 /5public: /6 CBase(int iBase = 0)

18、:m_iBase(iBase) /7 /8 /10 /11 virtual void Show() const = 0; /12 /13 int Get() const /14 /15 return m_iBase; /16 /17 /18private: /19 int m_iBase; /20; /21 /22class CDerive:public CBase /23 /24public: /25 CDerive(int iBase = 0, int iDerive = 0):CBase(iBase) /26 /27 m_iDerive = iDerive; /28 /29 /30 vo

19、id Show() const /31 /32 cout CBase:Get() , m_iDerive endl; /33 /34 /35private: /36 int m_iDerive; /37; /38 /39void Print(const CBase obj) /40 /41 obj.Show(); /42 /43 /44int main(void) /45 /46 CDerive obj(10); /47 Print(obj); /48 return 0; /49 /504参考答案:出错行:第40行原因:抽象类不能用来直接作函数参数,但可使用抽象类的引用作参数。改正:将第40行

20、改为: void Print(const CBase &obj) /40六、编程题(本大题共2个小题,每小题8分,共16分)1编写一个函数模板,用于求数组中各元素之和,并编写测试程序进行测试。函数模板声明如下:template Type Sum(Type tArray, int iSize)参考程序: #include using namespace std;template Type Sum(Type tArray, int iSize) Type tSum = 0; for (int i = 0; i iSize; i+) tSum = tSum + tArrayi; return tSum;int main(void) int a = 1, 2, 3; double b = 1.5, 2.8, 8.9, 8; cout Sum(a, 3) endl; cout

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1