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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、C+面向对象程序设计模拟试题一C+面向对象程序设计模拟试题一一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1(说明虚函数的关键字是( )。 A. inline B. virtual C. define D. static 2(在每个C+程序中都必须包含有这样一个函数,该函数的函数名为( )。 A. main B. MAIN C. name D. function 3(cout是某个类的标准对象的引用,该类是( )。 A. ostream B. istream C. stdou

2、t D. stdin 4(如果在类外有函数调用CPoint:func();则函数func()是类CPoint的( )。 A. 私有静态成员函数 B. 公有非静态成员函数 C. 公有静态成员函数 B. 友元函数 5. 如果class类中的所有成员在定义时都没有使用关键字public、private或protected,则所有成员缺省定义为( )。 A. public B. protected C. private D(static 6(一个类的所有对象共享的是( )。 A. 私有数据成员 B. 公有数据成员 C. 保护数据成员 D. 静态数据成员 7(动态联编所支持的多态性称为( )。 A. 虚

3、函数 B. 继承 C. 编译时多态性 D. 运行时多态性 8(定义类模板时要使用关键字( )。 A. const B. new C. delete D. template 9(对虚基类的定义( )。 A. 不需要使用虚函数 B. 必须使用虚函数 C. 必须使用private D. 必须使用public 10(类型转换函数( )。 A. 不能带有参数 B. 只能带一个参数 C. 只能带2个参数 D. 只能带3个参数 二、判断正误题(本大题共6小题,每小题2分,共12分)判断正误,在题后的括号内,正确的划上“?”错误的划上“”。 1(虚函数在基类和派生类之间定义,且要求函数原型完全一致。 ( ?

4、) 2(抽象类可以用来直接创建对象。 ( ) 3(内联函数中可以出现递归语句。 ( ) 4(模板类与类模板的意义完全相同。 ( ) 5(常对象只能调用常成员函数。 ( ? ) 6(重载函数要求函数有相同的函数名,但具有不同的参数序列。 ( ? ) 三、填空题(本大题共6小题,每小题2分,共12分)不写解答过程,将正确的答案写在每小题的空格内。错填或不填均无分。 1(在用C+进行程序设计时,最好用( new )代替malloc。 2(函数模板中紧随template之后尖括号内的类型参数都要寇以保留字( class或typename )。 3(编译时多态性可以用( 重载 )函数实现。 4(拷贝构造

5、函数用它所在类的( 对象 )作为参数。 5(用关键字static修饰的类的成员称为( 静态 )成员。 6(重载运算符“+”的函数名为( operator+ )。 四、程序分析题(本大题共4小题,每小题5分,共20分)给出下面各程序的输出结果。 1(阅读下面程序,写出输出结果。 #include using namespace std; class CArray public: CArray(int iArray, int iSize):m_pArray(iArray), m_iSize(iSize) int GetSize() return m_iSize; int &operator(int

6、 iIndex) return m_pArrayiIndex - 1; private: int *m_pArray; / 指向一个数组空间 int m_iSize; / 数组元素个数 ; int main() int s=3, 7, 2, 1, 5; CArray oArray(s, 5); oArray1 = 9; for (int i = 1; i = 5; i+) cout oArrayi ; cout endl; return 0; 上面程序的输出结果为: 9 7 2 1 5 2(阅读下面程序,写出输出结果。 #include using namespace std; templat

7、e void Print(Type a, int n) for (int i = 0; i n; i+) cout ai ; int main() int a = 5, 6, 8; double b = 6.8, 9.6; Print(a, sizeof(a)/sizeof(int); Print(b, 2); cout endl; return 0; 上面程序的输出结果为: 5 6 8 6.8 9.6 3(阅读下面程序,写出输出结果。 #include using namespace std; class CTest public: CTest(int iVar):m_iVar(iVar)

8、m_iCount+; CTest() void Print() const; static int GetCount() return m_iCount; private: int m_iVar; static int m_iCount; ; int CTest:m_iCount = 0; void CTest:Print() const cout m_iVar m_iCount ; int main() CTest oTest1(6); oTest1.Print(); CTest oTest2(8); oTest2.Print(); cout CTest:GetCount(); cout e

9、ndl; return 0; 上面程序的输出结果为: 6 1 8 2 2 4(阅读下面程序,写出输出结果。 #include using namespace std; class CTest public: CTest(int iX = 0, int iY = 0, int iZ = 0):m_iZ(iZ) m_iX = iX; m_iY = iY; void Print() cout m_iX endl; cout m_iY endl; void Print() const cout m_iZ endl; private: int m_iX, m_iY; const int m_iZ; ;

10、int main() CTest oTest1; oTest1.Print(); CTest oTest2(1, 6, 8); oTest2.Print(); const CTest oTest3(6, 0, 18); oTest3.Print(); cout endl; return 0; 上面程序的输出结果为: 0 0 1 6 18 五、程序改错题(本大题共4小题,每小题5分,共20分)指出下面程序中的错误,说明错误原因,并加以改正。 1(下面程序中类的定义中有一处错误,请指出出错的行,说明错误原因,并加以改正。 #include /1 using namespace std; /2 /3

11、 class CTest /4 /5 public: /6 CTest(int iVar = 0):m_iArr(iVar) /7 /8 cout 构造函数: m_iArr endl; /9 /10 /11 void CTest() 【析构函数不能有返回值类型】 /12 /13 cout 析造函数: m_iArr endl; /14 /15 /16 private: /17 int m_iArr; /18 ; /19 /2 /21 int main() /22 /23 CTest oTest1, oTest2(8); /24 cout endl; /25 /26 return 0; /27 /

12、28 2(下面程序中类的定义中有一处错误,请指出出错的行,说明错误原因,并加以改正。 #include /1 using namespace std; /2 /3 class CTest /4 /5 public: /6 CTest(int iA = 0, int iB):m_iA(iA), m_iB(iB) /7 【带缺省的参数应放在参数表的尾部,气候不允许又不带缺省的参数】 /8 /9 /10 void Show() /11 /12 cout m_iA , m_iB endl; /13 /14 /15 private: /16 int m_iA, m_iB; /17 ; /18 /19/2

13、0 int main() /21 /22 CTest oTest(12, 16); /23 oTest.Show(); /24 cout endl; /25 /26 return 0; /27 /28 3(下面程序中类的定义中有一处错误,请指出出错的行,说明错误原因,并加以改正。 #include /1 using namespace std; /2 /3 class CTest /4 /5 public: /6 CTest(int iVar = 0) /【CTest(int iVar = 0): m_iVar(iVar)】/7 /8 m_iVar = iVar (删掉) /9 /10 /11

14、 void Print() const /12 /13 cout m_iVar endl; /14 /15 /16 private: /17 const int m_iVar; /18 ; /19 /20/21 int main() /22 /23 const CTest oTest(16); /24 oTest.Print(); /25 cout endl; /26 /27 return 0; /28 /29 4(下面程序中有一处错误,请指出出错的行,说明错误原因,并加以改正。 #include /1 using namespace std; /2 /3 class CBase /4 /5

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

16、erive = iDerive; /28 /29 /30 void Show() /31 /32 cout CBase:Get() , m_iDerive endl; /33 /34 /35 private: /36 int m_iDerive; /37 ; /38 /39 int main() /40 /41 CBase obj(10); / CDerive obj(10) /42 obj.Show(); /43 return 0; /44 /45 六、编程题(本大题共2个小题,每小题8分,共16分) 1(编写一个函数模板,用于求参数的绝对值,并编写测试程序进行测试。 函数模板声明如下: t

17、emplate Type Abs(Type tVar) 2(定义一个复数类CComplex,定义带有2个参数(其中一个为缺省参数)的构造函数,显示复数值的函数Show(), 重载“+”运算符(用成员函数实现),并编写测试程序进行测试。 C+面向对象程序设计模拟试题一参考答案 一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 A 3(A 4(C 5(C 1(B 2(6(D 7(D 8(D 9(A 10(A 二、判断正误题(本大题共6小题,每小题2分,共12分)判断正误,在题后的括号

18、内,正确的划上“?”错误的划上“”。 1(参考答案:? 2(参考答案: 3(参考答案: 4(参考答案: 5(参考答案:? 6(参考答案:? 三、填空题(本大题共6小题,每小题2分,共12分)不写解答过程,将正确的答案写在每小题的空格内。错填或不填均无分。 1(参考答案:new 2(参考答案:class或typename 3(参考答案:重载 4(参考答案:对象 5(参考答案:静态 6(参考答案:operator+ 四、程序分析题(本大题共4小题,每小题5分,共20分)给出下面各程序的输出结果。 1(参考答案:9 7 2 1 5 2(参考答案:5 6 8 6.8 9.6 3(参考答案:6 1 8

19、2 2 4(参考答案: 0 0 1 6 18 五、程序改错题(本大题共4小题,每小题5分,共20分)指出下面程序中的错误,说明错误原因,并加以改正。 1(参考答案: 出错行:第12行 原因:析造函数不能有返回值类型 改正:去掉void 2(参考答案: 出错行:第7行 原因:带缺省值的参数应放在参数表的尾部,其后不允许出现不带缺省值的参数 改正: CTest(int iA = 0, int iB = 0):m_iA(iA), m_iB(iB) /7 或 CTest(int iA , int iB = 0):m_iA(iA), m_iB(iB) /7 或 CTest(int iA , int iB

20、):m_iA(iA), m_iB(iB) /7 3(参考答案: 出错行:第9行 原因:常数据成员只能通过初始化表方式进行初始化。 改正:去掉第9行,在第7行后加初始化表,即第9行改为: CTest(int iVar = 0):m_iVar(iVar) /7 4(参考答案: 出错行:第42行 原因:抽象类不能用来直接创建对象。 改正:将第42行改为: CDerive obj(10); /42 六、编程题(本大题共2个小题,每小题8分,共16分) 1(参考程序: #include using namespace std; template Type Abs(Type tVar) if (tVar

21、= 0) return tVar; else return -tVar; int main() cout Abs(5) endl; cout Abs(-5) endl; cout Abs(2.5) endl; cout Abs(-2.5) endl; return 0; 2(参考程序: #include using namespace std; class CComplex public: CComplex(double dReal, double dImage = 0) m_dReal = dReal; m_dImage = dImage; void Show() cout 0) cout

22、+ m_dImage i endl; else if(m_dImage 0) cout - -m_dImage i endl; CComplex operator+(const CComplex &obj) CComplex objTemp(m_dReal + obj.m_dReal, m_dImage + obj.m_dImage); return objTemp; private: double m_dReal, m_dImage; ; int main() CComplex obj1(2, 6), obj2(3, 8), obj3(0); obj1.Show(); obj2.Show(); obj3.Show(); obj3 = obj1 + obj2; obj3.Show(); return 0;

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

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