面向对象程序设计期末复习题及答案1.docx
- 文档编号:25303880
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:115
- 大小:64.74KB
面向对象程序设计期末复习题及答案1.docx
《面向对象程序设计期末复习题及答案1.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计期末复习题及答案1.docx(115页珍藏版)》请在冰豆网上搜索。
面向对象程序设计期末复习题及答案1
面向对象程序设计期末复习题及答案1
C++面向对象程序设计复习
试题类型1、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
15题,每小题2分,共30分)[主要从作业题目中抽出来]
2.填空题。
(10题,每小题3分,共30分)
3、阅读程序,写出程序运行结果。
【也称计算题】(3题,每小题5分,共15分)
4、程序编制题【也称综合分析题】。
(第1、2题每题8分,第3题9分,共25分)重点复习内容
打*号是重点,打▲号是编程题出题范围
*基本概念,对象,消息,类。
面向对象系统特性,封装性,继承性,多态性。
*▲C++类的构成,类与对象,构造与析构,动态存储,类嵌套。
静态成员,对象数组,友元。
*函数重载。
运算符重载。
*引用定义与引用参数
*基类与派生类的定义。
*基类及派生类的访问权(含派生类对基类的访问、通过派生类对象对基类的访问)和初始化。
多继承与虚基类。
*多态性与虚函数。
纯虚函数、抽象类。
*▲函数模板。
*▲使用类来定义对象并在程序中的应用题型样题
填空题1.假定AB为一个类,则执行“ABa[10];”语句时,系统自动调用该类的构造函数的次数为_________。
答案:
10
2.可以用p.a的形式访问派生类对象P的基类成员a,其中a是_________。
答案:
公有继承的公有成员
3.能作为重载函数的调用的依据是_________。
答案:
参数个数、参数类型
4.在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流是否结束状态的操作函数名称是_________
答案:
eof
5.函数重载是指_________。
答案:
两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
6.在派生类中重新定义虚函数时必须在_________方面与基类保持一致。
答案:
参数个数
阅读程序例题【计算题】
1.分析以下程序的执行结果
#include
classSample
{
intx,y;
public:
Sample(){x=y=0;}
Sample(inta,intb){x=a;y=b;}
~Sample()
{
if(x==y)
cout<<“x=y”< else cout<<“x! =y”< } voiddisp() { cout<<“x=”< } }; voidmain() { Samples1,s2(2,3); s1.disp(); s2.disp(); } 解: x=0,y=0 x=2,y=3 x! =y x=y 2.分析以下程序的执行结果 #include intadd(intx,inty) { returnx+y; } intadd(intx,inty,intz) { returnx+y+z; } voidmain() { inta=4,b=6,c=10; cout< } 解: 10,203.分析以下程序执行结果 #include intadd(intx,inty) { returnx+y; } doubleadd(doublex,doubley) { returnx+y; } voidmain() { inta=4,b=6; doublec=2.6,d=7.4; cout< } 解: 10,10 4.分析以下程序执行的结果 #include classSample { intx,y; public: Sample(){x=y=0;} Sample(inta,intb){x=a;y=b;} voiddisp() { cout<<"x="< } }; voidmain() { Samples1,s2(1,2),s3(10,20); Sample*pa[3]={&s1,&s2,&s3}; for(inti=0;i<3;i++) pa[i]->disp(); } 解: x=0,y=0 x=1,y=2 x=10,y=205.分析以下程序的执行结果: #include classbase { intn; public: base(){}; base(inta) { cout<<"constructingbaseclass"< n=a; cout<<"n="< } ~base(){cout<<"destructingbaseclass"< }; classsubs: publicbase { intm; public: subs(inta,intb): base(a) { cout<<"constructingsubclass"< m=b; cout<<"m="< } ~subs(){cout<<"destructingsubclass"< }; voidmain() { subss(1,2); } 解: constructingbaseclass n=1 constructingsubclass m=2 destructingsubclass destructingbaseclass 6.分析以下程序的执行结果: #include classSample { protected: intx; public: Sample(){x=0;} Sample(intval){x=val;} voidoperator++(){x++;} }; classDerived: publicSample { inty; public: Derived(): Sample(){y=0;} Derived(intval1,intval2): Sample(val1){y=val2;} voidoperator--(){x--;y--;} voiddisp() { cout<<"x="< } }; voidmain() { Derivedd(3,5); d.disp(); d++; d.disp(); d--; d--; d.disp(); } 解: x=3,y=5 x=4,y=5 x=2,y=3 7分析以下程序执行结果: #include classA { public: A(char*s){cout< ~A(){} }; classB: publicA { public: B(char*sl,char*s2): A(sl) { cout< } }; classC: publicA { public: C(char*sl,char*s2): A(sl) { cout< } }; classD: publicB,publicC { public: D(char*sl,char*s2,char*s3,char*s4): B(sl,s2),C(sl,s3) { cout< } }; voidmain() { Dd("classA","classB","classC","classD"); } 解: classA classB classA classC classD补充例题 1.分析以下程序的执行结果 #include template Tmax(Tx,Ty) {return(x>y? x: y);} voidmain()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 期末 复习题 答案