C++面向对象程序设计模拟试题一说课材料_第1页
C++面向对象程序设计模拟试题一说课材料_第2页
C++面向对象程序设计模拟试题一说课材料_第3页
C++面向对象程序设计模拟试题一说课材料_第4页
C++面向对象程序设计模拟试题一说课材料_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、义类模板时要使用关键字()。A. constB. newD. template.对虚基类的定义()。A.不需要使用虚函数C.必须使用private.类型转换函数()。A.不能带有参数D.运行时多态性C. deleteB.必须使用虚函数D.必须使用publicB.只能带一个参数D.只能带3个参数二、判断正误题(本大题共 6小题,每小题 正确的划上错误的划上“X”。2分,共12分)判断正误,在题后的括号内,C.只能带2个参数.虚函数在基类和派生类之间定义,且要求函数原型完全一致().抽象类可以用来直接创建对象。().内联函数中可以出现递归语句。().模板类与类模板的意义完全相同。().常对象只能调

4、用常成员函数。().重载函数要求函数有相同的函数名,但具有不同的参数序列()三、填空题(本大题共6小题,每小题2分,共12分)不写解答过程,将正确的答案写在每小题的空格内。错填或不填均无分。.在用C+进行程序设计时,最好用()代替malloc。.函数模板中紧随template之后尖括号内的类型参数都要寇以保留字( )。.编译时多态性可以用()函数实现。.拷贝构造函数用它所在类的()作为参数。.用关键字static修饰的类的成员称为()成员。.重载运算符+”的函数名为()。四、程序分析题(本大题共4小题,每小题5分,共20分)给出下面各程序的输出结果。1 .阅读下面程序,写出输出结果。#incl

5、ude using namespace std;class CArraypublic:CArray(int iArray口,int iSize):m_pArray(iArray), m_iSize(iSize)int GetSize()return m_iSize;.int &operator(int 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;fo

6、r (int i = 1; i = 5; i+)cout oArrayi cout endl;return 0;上面程序的输出结果为:.阅读下面程序,写出输出结果#include using namespace std;template 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;上面程序的输出结果为:.

7、阅读下面程序,写出输出结果。#include using namespace std;class CTestpublic:CTest(int iVar):m_iVar(iVar)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() constcout m_iVar m_iCount int main()CTest oTest1(6);

8、oTest1.Print();CTest oTest2(8); oTest2.Print();cout CTest二GetCount(); cout endl;return 0;上面程序的输出结果为:4.阅读下面程序,写出输出结果 #include using namespace std;class CTestpublic: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() constcout

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

10、lude using namespace std;class CTestpublic:/6CTest(int iVar = 0):m_iArr(iVar)/7/8cout 构造函数: m_iArr endl;/9/10/11void CTest()/12/13cout 析造函数: m_iArr endl;/14/15/16 private:/17int m_iArr;/18;/19/20/21 int main()/22/23CTest oTest1, oTest2(8);/24cout endl;return 0;/27/28.下面程序中类的定义中有一处错误,请指出出错的行,说明错误原因,并

11、加以改正。#include /1using namespace std;/2/3class CTest/4/5public:/6CTest(int iA = 0, int iB):m_iA(iA), m_iB(iB)/7/8/9/10void Show()/11/12cout m_iA , m_iB endl;/13/14/15private:int m_iA, m_iB;/17;/18/19/20 int main()/21 /22 CTest oTest(12, 16);/23 oTest.Show();/24 cout endl;/25/26 return 0;/27 /283.卜面程序

12、中类的定义中有一处错误,请指出出错的行,说明错误原因,并加 以改正#include /1 using namespace std;/2/3class CTest/4/5 public:CTest(int iVar = 0)/7/8m_iVar = iVar/9/10/11void Print() const/12/13 cout m_iVar endl;/14/15/16 private:/17 const int m_iVar;/18;/19/20/21 int main()/22 /23const CTest oTest(16);/24oTest.Print();/25cout endl;

13、/26/27return 0;/294.下面程序中有一处错误,请指出出错的行,说明错误原因,并加以改正#include /1using namespace std;/2/3class CBase/4/5public:/6CBase(int iBase = 0):m_iBase(iBase)/7/8/10/11virtual void Show() = 0;/12/13int Get() const/14/15return m_iBase;/16/17/18private:int m_iBase;/20;/21/22class CDerive:public CBase/23/24public:/

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

15、序进行测试。函数模板声明如下:template Type Abs(Type tVar).定义一个复数类CComplex,定义带有2个参数(其中一个为缺省参数)的 构造函数,显示复数值的函数 Show(),重载+”运算符(用成员函数实现), 并编写测试程序进行测试。C+面向对象程序设计模拟试题一参考答案一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均 无分。1. B2. A3. A4. C5. C6. D7. D8. D9. AA二、判断正误题(本大题共 6小题,每小题2分,共12分)判

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

17、18五、程序改错题(本大题共4小题,每小题5分,共20分)指出下面程序中的错误,说明错误原因,并加以改正。.参考答案:出错行:第12行原因:析造函数不能有返回值类型改正:去掉void.参考答案:出错行:第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):m_iA(iA), m_iB(iB) /7.参考答案:出错行:第9行原因

18、:常数据成员只能通过初始化表方式进行初始化。改正:去掉第9行,在第7行后加初始化表,即第9行改为:CTest(int iVar = 0):m_iVar(iVar) /7.参考答案:出错行:第42行原因:抽象类不能用来直接创建对象。改正:将第42行改为:CDerive obj(10);/42六、编程题(本大题共 2个小题,每小题8分,共16分).参考程序:#include using namespace std;template Type Abs(Type tVar)if (tVar = 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;.参考程序:#include using namespace std;class CComplexpublic:CComplex(double dReal, double dImage = 0)m_dReal = dReal;m_dImage = dImage;.void Show()cout 0) .cout + m_dImage i endl;.else if(m_dImage 0) .cout -

温馨提示

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

最新文档

评论

0/150

提交评论