




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+面向对象程序设计复习题1一、单项选择题,在每小题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1说明虚函数的关键字是( )。A. inlineB. virtualC. defineD. static2在每个C+程序中都必须包含有这样一个函数,该函数的函数名为( )。A. main B. MAIN C. name D. function3如果在类外有函数调用CPoint:func();则函数func()是类CPoint的( )。A. 私有静态成员函数B. 公有非静态成员函数C. 公有静态成员函数D. 友元函数4一个类的所有对象共享的是( )。A. 私有数据成员B. 公有数据成员C. 保护数据成员D. 静态数据成员5动态联编所支持的多态性称为( )。A. 虚函数B. 继承C. 编译时多态性D. 运行时多态性6对虚基类的定义( )。A. 不需要使用虚函数B. 必须使用虚函数C. 必须使用privateD. 必须使用public7类型转换函数( )。A. 不能带有参数B. 只能带一个参数C. 只能带2个参数D. 只能带3个参数8说明内联函数的关键字是( )。A. inlineB. virtualC. defineD. static9假定CAb为一个类,则执行CAb oX;语句时将自动调用该类的( ) A. 有参构造函数 B. 无参构造函数 C. 拷贝构造函数 D. 赋值重载函数 10下面的哪个保留字不能作为函数的返回类型?( )A. void B. int C. new D. long11不能参与重载的运算符是( )。A. 类 B. 函数 C. 函数模板 D. 运算符12由于数据隐藏的需要,静态数据成员通常被说明为( )。A. 私有的 B. 公有的 C. 保护的 D. 不可访问的13编译时多态性使用什么获得?( )A. 重载函数 B. 继承 C. 虚函数 D. B和C 14拷贝构造函数的参数通常是( )。A. 无特殊要求B. 指向对象的指针C. 自已类对象的常引用D. 对象15C+有几种联编?( )A. 1种B. 2种C. 3种D. 4种16基类和派生类可以分别称为( )。A. “大类”和“小类”B. “父类”和“子类”C. “小类”和“大类”D. “子类”和“父类”17下面有关重载函数的描述中,正确的是( )。A)重载函数必须具有不同的返回值类型 B)重载函数形参个数必须不同C)重载函数必须具有不同的形参表D)重载函数名可以不同18假定MyCIass为一个类,那么下列的函数说明中,( )为该类的析构函数。A)voidMyClass();B)MyClass(int n);C)MyClass( );D)MyClass( );19( )是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型。 A)模板B)类C)对象D)函数20下面关于静态成员函数的叙述中错语的是( )。A. 静态成员函数可以有返回值 B. this指针可以指向静态成员函数C. 静态成员函数可以具有指针参数 D. 静态成员函数可有具有返回值类型21定义类模板时要使用关键字( )。A. private B. public C. delete D. template22下列是重载乘法运算符的函数原型声明,其中错误的是( )。A)MyClass operator*(double,double);B)MyClass operator*(double,MyClass);C)MyClass operator*(MyClass,double);D)MyClass operator*(MyClass,MyClass);23以下( )成员函数表示纯虚函数。A)virtual int fun(int)B)void fun(int)=0C)virtual void fun()=0D)virtual void fun(int)24关于纯虚函数,下列表述中正确的是( )。A)纯虚函数的声明总是以=0结束B)含有纯虚函数的类可以定义对象C)含有纯虚函数的类是抽象类 D)上面都是错误的 25( )解决二义性问题。A. 只能使用作用域分辨操作符B. 只能使用虚基类C. 使用作用域分辨操作符或虚基类D. 上面都不能26实现编译时的多态性要使用( )。A)重载函数B)析构函数C)构造函数D)虚函数二、判断正误题,判断正误,在题后的括号内,正确的划上“”错误的划上“”。1虚函数在基类和派生类之间定义,且要求函数原型完全一致。( )2抽象类可以用来直接创建对象。( )3内联函数中可以出现递归语句。( )4模板类与类模板的意义完全相同。( )5常对象只能调用常成员函数。( )6重载函数要求函数有相同的函数名,但具有不同的参数序列。( )7不可以定义抽象类的对象。( )8内联函数的定义必须出现在第一次调用内联函数之前。( )9模板函数与函数模板的意义完全相同。( )10只有常成员函数才可以操作常对象。( )11引用可以不初始化。( )12使用new运算符创建数组时,可以为该数组指定初始值。( )13构造函数可以设置默认参数。 ( )14类的析构函数的作用是对象的初始化。 ( )15cout的默认输出对象是键盘, cin的默认输入对象是屏幕。 ( )16抽象类可以用来直接创建对象。 ( )17常对象可以调用任意成员函数。 ( )18在用class定义一个类时, 数椐成员和成员函数默认的访问权限是public。 ( )19若类Y是类X的私有派生类, 类Z是类Y的公有派生类, 则类Z不能访向类X的公有成员和保护成员。 ( )20C+中设置虚基类的目的是实现运行时的多态。 ( )21模板类与类模板的意义完全相同。 ( )22只有常成员函数才可以操作常对象。 ( ) 三、程序分析题,给出下面各程序的输出结果。1阅读下面程序,写出输出结果。#include 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;for (int i = 1; i = 5; i+)cout oArrayi ;cout endl;return 0;上面程序的输出结果为:2阅读下面程序,写出输出结果。#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;上面程序的输出结果为:3阅读下面程序,写出输出结果。#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);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 m_iZ endl;private:int m_iX, m_iY;const int m_iZ;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;上面程序的输出结果为:5阅读下面程序,写出输出结果。#include using namespace std;class CPositionpublic:CPosition(int iPositionX = 0, int iPositionY = 0):m_iPositionX(iPositionX)m_iPositionY = iPositionY;int GetPositionX() constreturn m_iPositionX;int GetPositionY() constreturn m_iPositionY;void SetPositionX(int iPositionX)m_iPositionX = iPositionX;void SetPositionY(int iPositionY)m_iPositionY = iPositionY;private:int m_iPositionX;/ X坐标int m_iPositionY;/ 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() endl;return 0;上面程序的输出结果为:6阅读下面程序,写出输出结果。#include using namespace std;template class CTestpublic:CTest(Type m_tArray, int iSize):m_pArray(m_tArray)m_iSize = iSize;void Print() constfor (int i = 0; i m_iSize; i+)cout m_pArrayi ;private:Type *m_pArray;int m_iSize;int main(void)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;上面程序的输出结果为:7阅读下面程序,写出输出结果。#include using namespace std;class CGoodspublic:CGoods(int iWeight)m_iWeight = iWeight;m_iTotalWeight = 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_iTotalWeight;int CGoods:m_iTotalWeight = 8;/ 初始化静态数据成员void CGoods:Print() constcout m_iWeight m_iTotalWeight ;int main(void)CGoods oGood1(6);oGood1.Print();CGoods oGood2(oGood1);oGood2.Print();cout CGoods:GetTotalWeight();cout endl;return 0;上面程序的输出结果为:8阅读下面程序,写出输出结果。#include 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() constcout m_tC endl;private:Type m_tA, m_tB;const Type m_tC;int main(void)CTest oTest1;oTest1.Print();CTest oTest2(1, 9, 6);oTest2.Print();const CTest oTest3(0, 6, 1.8);oTest3.Print();cout endl;return 0;上面程序的输出结果为:9阅读下面程序,写出输出结果。#include / 预处理命令using namespace std;/ 使用标准命名空间stdclass Pointprivate:int x;/ x坐标int y;/ y坐标public:Point(int a = 0, int b = 0):x(a), y(b)int GetX() const return x; int GetY() const return y; void SetX(int a) x = a; void SetY(int b) y = b; ;int main(void)Point obj1;const Point obj2(9, 98);cout obj1.GetX() endl;obj1.SetX(5);cout obj1.GetX() endl;obj1.SetY(18);cout obj1.GetY() endl;cout obj2.GetX() endl;cout obj2.GetY() endl;return 0; / 返回值0,返回操作系统上面程序的输出结果为:10阅读下面程序,写出输出结果。#include / 预处理命令using namespace std;/ 使用标准命名空间stdclass Arrayprivate:int *elem;/ 数组元素存储空间int size;/ 数组元素个数public:Array(int a, int sz): elem(a), size(sz) / 构造函数int GetSize() return size; int &operator(int pos) return elempos - 1; / 重载下标运算符;int main(void)int a = 1, 2, 3, 4, 5;Array obj(a, 5);obj1 = 8;for (int i = 1; i = obj.GetSize(); i+)/ 依次输出数组各元素之值cout obji ;cout endl;return 0; / 返回值0, 返回操作系统上面程序的输出结果为:11阅读下面程序,写出输出结果。#include / 预处理命令using namespace std;/ 使用标准命名空间stdclass Apublic:A() cout 构造A endl; / 构造函数A() cout 析构A endl; / 析构函数;class B: public Apublic:B() cout 构造B endl; / 构造函数B() cout 析构B endl; / 析构函数;int main(void)B obj;A *p = new A;return 0; / 返回值0, 返回操作系统上面程序的输出结果为:12阅读下面程序,写出输出结果。#include / 预处理命令using namespace std;/ 使用标准命名空间stdtemplate ElemType f(ElemType x) return x * (ElemType)5.1; template void f(ElemType x, ElemType y) x = x * 1.1;y = y * 1.1;cout x endl;cout y endl;int main(void)cout f(3.0) endl;f(1, 2);f(1.0, 2.0);system(PAUSE); / 调用库函数system( ), 输出系统提示信息return 0; / 返回值0, 返回操作系统上面程序的输出结果为:四、程序改错题,指出下面程序中的错误,说明错误原因,并加以改正。1下面程序中类的定义中有一处错误,请指出出错的行,说明错误原因,并加以改正。#include /1using namespace std;/2/3class CTest/4/5public:/6CTest(int iVar = 0):m_iArr(iVar)/7/8cout 构造函数: m_iArr endl;/9/10/11void CTest()/12/13cout 析造函数: m_iArr endl;/14/15/16private:/17int m_iArr;/18;/19/20/21int main()/22/23CTest oTest1, oTest2(8);/24cout endl;/25/26return 0;/27/282下面程序中类的定义中有一处错误,请指出出错的行,说明错误原因,并加以改正。#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:/16int m_iA, m_iB;/17;/18/19/20int main()/21/22CTest oTest(12, 16);/23oTest.Show();/24cout endl;/25/26return 0;/27/283下面程序中类的定义中有一处错误,请指出出错的行,说明错误原因,并加以改正。#include /1using namespace std;/2/3class CTest/4/5public:/6CTest(int iVar = 0)/7/8m_iVar = iVar/9/10/11void Print() const/12/13cout m_iVar endl;/14/15/16private:/17const int m_iVar;/18;/19/20/21int main()/22/23const CTest oTest(16);/24oTest.Print();/25cout endl;/26/27return 0;/28/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:/19int m_iBase;/20;/21/22class CDerive:public CBase/23/24public:/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()/40/41CBase obj(10);/42obj.Show();/43return 0;/44/455下面程序中类的定义中有一处错误,请指出出错的行,说明错误原因,并加以改正。#include /1using namespace std;/2/3class CArray/4/5public:/6void CArray(int iArray, int iSize):m_pArray(iArray), m_iSize(iSize)/7/8/9/10int GetSize()/11/12return m_iSize;/13/14/16int &operator(int iIndex)/17/18return m_pArrayiIndex - 1;/19/20/21private:/22int *m_pArray;/ 指向一个数组空间/23int m_iSize;/ 数组元素个数/24;/25/26/27int main(void)/28/29int s=3, 7, 2, 1, 5;/30CArray oArray(s, 5);/31oArray1 = 9;/32for (int i = 1; i = 5; i+)/33/34cout oArrayi ;/35/36cout endl;/37/38return 0;/39/406下面程序中有错误,请指出出错的行,说明错误原因,并加以改正。#include /1using namespace std;/2/3class CTest/4/5public:/6CTest(int iA = 0, int iB = 0):m_iA(iA), m_iB(iB)/7/8/9/1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年现代仓储管理高级考试题库及答案解析
- 德惠市招聘社区工作者考试真题2024
- 2025年中级物业管理综合知识模拟题及解析
- 2025年建筑工程师高级职位面试题库及答案详解
- 13猫随文识字教学课件
- 2025年国际贸易实务高级专家考试模拟题集及解析
- 2025年电子商务运营专员中级面试模拟题及参考答案
- 2025年营养师面试题及答案
- 2025年初中政治特岗教师招聘面试必-备知识点总结与预测题
- 电信行业知识培训课件
- 小区物业服务投标方案(技术标)
- 单位资产清查工作实施方案
- 电网工程劳务分包 投标方案(技术方案)
- 【S烟草公司物流配送线路优化设计8500字(论文)】
- 《神经内科学课件:脑电图的基本应用》
- 2024银行数据资产价值评估
- 《生产部月报模板》课件
- 2024近场电商行业白皮书-凯度x淘宝买菜-202401
- 医院感染控制标准执行案例分析及改进
- 班主任微创意:59招让班级管理脑洞大开
- 晚期胃癌患者护理查房
评论
0/150
提交评论