资源描述:
《面向对象程序设计模拟试卷.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、面向对象程序设计模拟试卷一一.单选题(15)。1.关于构造的叙述_____正确:A.最先构造虚基类B.最先构造基类C.最先构造派生类的对象成员D.都不对2.关于静态数据成员的叙述_____正确:A.公有的可在类体外初始化B.私有的不能在类体外初始化C.私有和保护的不能在类体外初始化D.都可以且必须在体外初始化3.若派生类函数不是基类的友元,关于该函数访问基类成员_____正确:A.公有的可被派生类函数访问B.都可以被派生类函数访问C.公有和保护的可被派生类函数访问D.都不对4.关于函数的所有缺省参数的叙述_____正确:A.只能出现在参数表的最左边B.只能
2、出现在参数表的最右边C.必须用非缺省的参数隔开D.都不对5.使用friend、virtual、static说明函数的叙述_____正确:A.必须同时使用三个B.只能同时用其中两个C.只能独立单个地使用D.都不对二.指出各类的成员及其存取属性(20)。三.指出main中每行的输出结果(20)。#includestructA{A(){cout<<'A';}};structB{B(){cout<<'B';}};structC:A{C(){cout<<'C';}};structD:virtualB,C{D(){cout<<'D';}};st
3、ructE:A{Cc;E():c(){cout<<'E';}};structF:virtualB,C,D,E{F(){cout<<'F';}};voidmain(){Aa;cout<<'';Bb;cout<<'';Cc;cout<<'';Dd;cout<<'';Ee;cout<<'';Ff;cout<<'';}四.指出以下程序的语法错误及其原因(15)。classA{
staticinta=0;
protected:
intb;
public:
intc;
A(int);
operatorint();
}a(1,2);
classB
4、:A{
B(int);
virtualintd;
inte;
public:
A::b;
friendintoperator=(B);
staticB(int,int);}b=5;classC:B{public:intoperator++(double);};intmain(){int*A::*p,i;i=a.a;i=A(4);i=b.c;p=&A::c;i=b;return;}五.指出main变量i在每条赋值语句执行后的值(15)。intx=2,y=x+30;structA{staticintx;inty;public:operatorint(){ret
5、urnx-y;}Aoperator++(int){returnA(x++,y++);}A(intx=::x+2,inty=::y+3){A::x=x;A::y=y;}int&h(int&x);};int&A::h(int&x){for(inty=1;y!=1
6、
7、x<201;x+=11,y++)if(x>200){x-=21;y-=2;}returnx-=10;}intA::x=23;voidmain(){Aa(54,3),b(65),c;inti,&z=i,A::*p=&A::y;z=b.x;i=a.x;i=c.*p;i=a++;i=::x+c.y;i=a
8、+b;b.h(i)=7;}六.为了没有误差地表示分数,定义类FRACTION来表示分数,请编程实现分数类中的除cmd外的所有函数(15)。classFRACTION{//对于,numerator存分子6,denominator存分母7intnumerator,denominator;
staticintcmd(intx,inty);//求整数x,y的最大公约数public:intoperator>(constFRACTION&)const;//大于比较,例>FRACTION(intnum,intden=1);//num、den各为分子和分母FRACTION
9、operator*()const;//分数约简,*=FRACTIONoperator+(constFRACTION&)const;//加法,+=FRACTIONoperator*(constFRACTION&)const;//乘法,*==};intFRACTION::cmd(intx,inty){intr;if(x10、得分。每小题1分,共10分)()1.以下有关析构函数的叙述,选择正