C++面向对象程序设计模拟试题二.docx
- 文档编号:9537710
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:21
- 大小:21.60KB
C++面向对象程序设计模拟试题二.docx
《C++面向对象程序设计模拟试题二.docx》由会员分享,可在线阅读,更多相关《C++面向对象程序设计模拟试题二.docx(21页珍藏版)》请在冰豆网上搜索。
C++面向对象程序设计模拟试题二
C++面向对象程序设计模拟试题二
一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.说明内联函数的关键字是()。
A.inlineB.virtualC.defineD.static
2.假定CAb为一个类,则执行CAboX;语句时将自动调用该类的()
A.有参构造函数B.无参构造函数
C.拷贝构造函数D.赋值重载函数
3.cin是某个类的标准对象的引用,该类是()。
A.ostreamB.istreamC.stdoutD.stdin
4.下面的哪个保留字不能作为函数的返回类型?
()
A.voidB.intC.newD.long
5.不能参与重载的运算符是()。
A.类B.函数C.函数模板D.运算符
6.由于数据隐藏的需要,静态数据成员通常被说明为()。
A.私有的B.公有的C.保护的D.不可访问的
7.编译时多态性使用什么获得?
()
A.重载函数B.继承C.虚函数D.B和C
8.拷贝构造函数的参数通常是()。
A.无特殊要求B.指向对象的指针
C.自已类对象的常引用D.对象
9.C++有几种联编?
()
A.1种B.2种C.3种D.4种
10.基类和派生类可以分别称为()。
A.“大类”和“小类”B.“父类”和“子类”
C.“小类”和“大类”D.“子类”和“父类”
二、判断正误题(本大题共6小题,每小题2分,共12分)判断正误,在题后的括号内,正确的划上“√”错误的划上“×”。
1.不可以定义抽象类的对象。
()
2.内联函数的定义必须出现在第一次调用内联函数之前。
()
3.模板函数与函数模板的意义完全相同。
(×)
4.只有常成员函数才可以操作常对象。
[正确]()
5.引用可以不初始化。
(×)
6.使用new运算符创建数组时,可以为该数组指定初始值。
()
三、填空题(本大题共6小题,每小题2分,共12分)不写解答过程,将正确的答案写在每小题的空格内。
错填或不填均无分。
1.设函数max是由函数模板实现的,并且max(3.5,5)和max(3,5)都是正确的函数调用,则此函数模板具有
(2)个类型参数。
2.在C++中,函数重载与虚函数帮助实现了类的(多态)性。
3.由static修饰的数据成员为该类的所有对象(共享(静态成员函数为类共享))。
4.重载函数在参数类型或参数个数上不同,但(函数名)相同。
5.使用new建立的动态对象在不用时必须用(delete)释放所占用的空间。
6.重载运算符“<<”的函数名为(operator<<)。
四、程序分析题(本大题共4小题,每小题5分,共20分)给出下面各程序的输出结果。
1.阅读下面程序,写出输出结果。
#include
usingnamespacestd;
classCPosition
{
public:
CPosition(intiPositionX=0,intiPositionY=0):
m_iPositionX(iPositionX)
{
m_iPositionY=iPositionY;
}
intGetPositionX()const
{
returnm_iPositionX;
}
intGetPositionY()const
{
returnm_iPositionY;
}
voidSetPositionX(intiPositionX)
{
m_iPositionX=iPositionX;
}
voidSetPositionY(intiPositionY)
{
m_iPositionY=iPositionY;
}
private:
intm_iPositionX;//X坐标
intm_iPositionY;//X坐标
};
intmain(void)
{
CPositionoPostion1;
constCPositionoPostion2(6,8);
cout< oPostion1.SetPositionX(16); cout< oPostion1.SetPositionY(18); cout< cout< cout< return0; } 上面程序的输出结果为: 2.阅读下面程序,写出输出结果。 #include usingnamespacestd; template classCTest { public: CTest(Typem_tArray[],intiSize): m_pArray(m_tArray) { m_iSize=iSize; } voidPrint()const { for(inti=0;i { cout< } } private: Type*m_pArray; intm_iSize; }; intmain(void) { inta[]={1,0,8}; doubleb[]={1.6,1.8}; CTest oTest1.Print(); CTest oTest2.Print(); cout< return0; } 上面程序的输出结果为: 3.阅读下面程序,写出输出结果。 #include usingnamespacestd; classCGoods { public: CGoods(intiWeight) { m_iWeight=iWeight; m_iTotalWeight=m_iTotalWeight+iWeight; } CGoods(constCGoods&oGood) { m_iWeight=oGood.m_iWeight; m_iTotalWeight=m_iTotalWeight+m_iWeight; } ~CGoods() { m_iTotalWeight=m_iTotalWeight-m_iWeight; } voidPrint()const; staticintGetTotalWeight() { returnm_iTotalWeight; } private: intm_iWeight; staticintm_iTotalWeight; }; intCGoods: : m_iTotalWeight=8;//初始化静态数据成员 voidCGoods: : Print()const { cout< } intmain(void) { CGoodsoGood1(6); oGood1.Print(); CGoodsoGood2(oGood1); oGood2.Print(); cout< : GetTotalWeight(); cout< return0; } 上面程序的输出结果为: 4.阅读下面程序,写出输出结果。 #include usingnamespacestd; template classCTest { public: CTest(TypetA=0,TypetB=0,TypetC=0): m_tC(tC) { m_tA=tA; m_tB=tB; } voidPrint() { cout< cout< } voidPrint()const { cout< } private: Typem_tA,m_tB; constTypem_tC; }; intmain(void) { CTest oTest1.Print(); CTest oTest2.Print(); constCTest oTest3.Print(); cout< return0; } 上面程序的输出结果为: 五、程序改错题(本大题共4小题,每小题5分,共20分)指出下面程序中的错误的行,说明错误原因,并加以改正。 1.下面程序中类的定义中有一处错误,请指出出错的行,说明错误原因,并加以改正。 #include usingnamespacestd;//2 //3 classCArray//4 {//5 public: //6 voidCArray(intiArray[],intiSize): m_pArray(iArray),m_iSize(iSize)//7 {//8 }//9 //10 intGetSize()//11 {//12 returnm_iSize;//13 }//14 //16 int&operator[](intiIndex)//17 {//18 returnm_pArray[iIndex-1];//19 }//20 //21 private: //22 int*m_pArray;//指向一个数组空间//23 intm_iSize;//数组元素个数//24 };//25 //26 //27 intmain(void)//28 {//29 ints[]={3,7,2,1,5};//30 CArrayoArray(s,5);//31 oArray[1]=9;//32 for(inti=1;i<=5;i++)//33 {//34 cout< }//36 cout< //38 return0;//39 }//40 2.下面程序中有错误,请指出出错的行,说明错误原因,并加以改正。 #include usingnamespacestd;//2 //3 classCTest//4 {//5 public: //6 CTest(intiA=0,intiB=0): m_iA(iA),m_iB(iB)//7 {//8 }//9 //10 voidPrint()//11 {//12 cout< }//14 //15 private: //16 intm_iA,m_iB;//17 };//18 //19 //20 intmain(void)//21 {//22 constCTestoTest(12,16);//23 oTest.Print();//24 cout< //26 return0;//27 }//28 3.下面程序中类的定义中有一处错误,请指出出错的行,说明错误原因,并加以改正。 #include usingnamespacestd;//2 //3 classCInteger//4 {//5 public: //6 CInteger(intiNum=0)//7 {//8 m_iNum=iNum;//9 }//10 //11 intoperatorint()//12 {//13 returnm_iNum;//14 }//15 //16 voidPrint()const//17 {//18 cout< }//20 //21 private: //22 intm_iNum;//23 };//24 //25 intmain(void)//26 {//27 CIntegeroCInteger(168);//28 intiNum;//29 iNum=oCInteger;//30 cout< //32 return0;//33 }//34 4.下面程序中有一处错误,请指出出错的行,说明错误原因,并加以改正。 #include usingnamespacestd;//2 //3 classCBase//4 {//5 public: //6 CBase(intiBase=0): m_iBase(iBase)//7 {//8 }//10 //11 virtualvoidShow()const=0;//12 //13 intGet()const//14 {//15 returnm_iBase;//16 }//17 //18 private: //19 intm_iBase;//20 };//21 //22 classCDerive: publicCBase//23 {//24 public: //25 CDerive(intiBase=0,intiDerive=0): CBase(iBase)//26 {//27 m_iDerive=iDerive;//28 }//29 //30 voidShow()const//31 {//32 cout< : Get()<<","< }//34 //35 private: //36 intm_iDerive;//37 };//38 //39 voidPrint(constCBaseobj)//40 {//41 obj.Show();//42 }//43 //44 intmain(void)//45 {//46 CDeriveobj(10);//47 Print(obj);//48 return0;//49 }//50 六、编程题(本大题共2个小题,每小题8分,共16分) 1.编写一个函数模板,用于求数组中各元素之和,并编写测试程序进行测试。 函数模板声明如下: template TypeSum(TypetArray[],intiSize) 2.定义一个抽象类CShape,它有一个纯虚函数GetLength();派生出四边型类CSquare和圆类CCircle,在派生类中重载函数GetLength(),用于求图形的周长,编写测试程序进行测试。 C++面向对象程序设计模拟试题二参考答案 一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。 错选、多选或未选均无分。 1.A2.B3.B4.C5.A 6.A7.A8.C9.B10.B 二、判断正误题(本大题共6小题,每小题2分,共12分)判断正误,在题后的括号内,正确的划上“√”错误的划上“×”。 1.参考答案: √ 2.参考答案: √ 3.参考答案: × 4.参考答案: √ 5.参考答案: × 6.参考答案: × 三、填空题(本大题共6小题,每小题2分,共12分)不写解答过程,将正确的答案写在每小题的空格内。 错填或不填均无分。 1.参考答案: 2 2.参考答案: 多态 3.参考答案: 共享 4.参考答案: 函数名 5.参考答案: d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 面向 对象 程序设计 模拟 试题
![提示](https://static.bdocx.com/images/bang_tan.gif)