2003年10月C++全国高等教育自学考试试卷

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Object-OrientedProgramming2003年10月全国高等教育自学考试试卷与参考答案2003年10月全国高等教育自学考试试卷与参考答案1一、单项选择题(共10小题,每小题2分)1.下列特性中,C与C++共有的是()A.继承B.封装C.多态性D.函数定义不能嵌套2.通常情况下,函数模板中的类型参数个数不能是()A.0B.2C.4D.33.在下列表达式中,运算符“+”的意义不相同的一对是()A.5.0+2.0和5.0+2B.5.0+2.0和5+2.0C.5.0+2.0和5+2D.5+2.0和5.0+24.类的指针成员初始化是通过函数完成,这个函数通常是()A.析构函数B.构造函数C.其它成员函数D.友元函数DCBA2003年10月全国高等教育自学考试试卷与参考答案25.要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为()A.constchar*p=“ABCD”;B.charconst*p=“ABCD”;C.char*constp=“ABCD”;D.constchar*constp=“ABCD”;6.静态成员函数没有()A.返回值B.this指针C.指针参数D.返回类型7.当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中()A.都是虚函数B.只有被重新说明时才是虚函数C.只有被重新说明为virtual时才是虚函数D.都不是虚函数DBA2003年10月全国高等教育自学考试试卷与参考答案38.下面叙述不正确的是()A.派生类一般都用公有派生B.对基类成员的访问必须是无二义性的C.赋值兼容规则也适用于多重继承的组合D.基类的公有成员在派生类中仍然是公有的9.在C++中实现封装是借助于()A.枚举B.类C.数组D.函数10.所有在函数中定义的变量,都是()A.全局变量B.局部变量C.静态变量D.寄存器变量DAB2003年10月全国高等教育自学考试试卷与参考答案4二、填空题(每小题2分,共20分)11.设函数max是由函数模板实现的,并且max(3.5,5)和max(10,5)都是正确的函数调用,则模板具有__个类型参数。12.在单继承和多继承方式中,面向对象的程序设计应尽量使用____继承。13.语句ifstreamdatafile;datafile.open(“data.dat”);的功能可用一个语句实现,这个语句是____________________________________。14.将关键字const写在函数头之后,函数体之前,说明该函数是一个const成员函数。此时const不是指定函数的返回值,而是修饰______指针。2单ifstreamdatafile(“data.dat”)this2003年10月全国高等教育自学考试试卷与参考答案515.一个抽象类的派生类可以实例化的必要条件是实现了所有的______。16.在C++中,虚函数帮助实现了类的______性。17.通过C++语言中类的______,可以扩充和完善已有类以适应新的需求。18.为了在对象生存期结束时释放其指针成员所指向的动态存储空间,通常需要为该类定义_________。19.在联合中,所有数据成员具有______的地址,任一时刻只有____个数据成员有效。20.在已经定义了整型指针ip后,为了得到一个包括10个整数的数组并由ip所指向,应使用语句_______________。虚函数多态继承析构函数相同1ip=newint[10];2003年10月全国高等教育自学考试试卷与参考答案621.下面的类定义有一处错误,请用下横线标出错误所在行并改正错误。classA{inta;public:A(intaa):a=aa{}};22.下面的程序有一处错误,请用下横线标出错误所在行并改正错误。#includeiostream.hclassTest{public;staticintx;};intx=20;//对类成员初始化voidmain(){coutTest::x;}三、改错题(每小题2分,共10分)A(intaa):a=aa{}出错改为:A(intaa):a(aa){}intx=20;出错改为:intTest::x=20;2003年10月全国高等教育自学考试试卷与参考答案723.下面的程序先把字符串“Lookout!”输出到一个文件中,然后再从该文件输入,并显示在屏幕上,显示效果为Lookout!。程序中有一处错误,请用下横线标出错误所在行,并给出更改意见。#includefstream.hvoidmain(){ofstreamoutf(c:\\tem.dat,ios::trunc);outfLookout!;outf.close();ifstreaminf(c:\\tem.dat);chark[20];infk;coutk;inf.close();}infk;只能读出Look改为:inf.getline(k,20);2003年10月全国高等教育自学考试试卷与参考答案824.下面的程序类B的定义中有一处错误,请用下横线标出错误所在行并说明错误原因。#includeiostream.h#includestring.hclassA{public:A(constchar*nm){strcpy(name,nm);}private:charname[80];};classB:publicA{public:B(constchar*nm):A(nm){}voidPrintName()const;};voidB::PrintName()const{coutname:nameendl;}voidmain(){Bb1(wangli);b1.PrintName();}coutname:nameendl;出错原因:私有成员在子类中不能访问2003年10月全国高等教育自学考试试卷与参考答案925.用下横线标出下面程序main函数中的错误所在行,并说明错误原因。#includeiostream.hclassLocation{private:intX,Y;public:voidinit(intinitX,intinitY);intsumXY();};voidLocation::init(intinitX,intinitY){X=initX;Y=initY;}intLocation::sumXY(){returnX+Y;}voidmain(){LocationA1;intx,y;A1.init(5,3);x=A1.X;y=A1.Y;coutx+yA1.sumXY()endl;}x=A1.X;y=A1.Y;出错原因:私有成员不能被main函数访问2003年10月全国高等教育自学考试试卷与参考答案10四、完成程序题(每小题4分,共20分)26.在下面横线处填上适当内容,使该程序结果为:12和88#includeiostream.htemplateclassTclassTany{public:_________;voidpr(){if(sizeof(int)==_________)cout(xy?x:y)endl;elsecout(xy?y:x)endl;}};voidmain(){Tanydoubledobj={12.0,88.0};dobj.pr();Tanyintiobj={12,88};iobj.pr();}sizeof(T)Tx,y2003年10月全国高等教育自学考试试卷与参考答案1127.在下面的横线处填上适当内容,使程序完整。#includeiostream.h#includemath.hclassloc{private:floatx,y;public:loc(__________________){x=x1;y=y1;}floatgetx(){returnx;}floatgety(){returny;}_________floatdis(loc&,loc&);};floatloc::dis(loc&a,loc&b){floatdx=a.x-b.x;floatdy=a.y-b.y;returnsqrt(dx*dx+dy*dy);}voidmain(){locp1(3.5,4.5),p2(5.5,6.5);floatd=loc::dis(p1,p2);coutThedistanceisd;}staticfloatx1,floaty12003年10月全国高等教育自学考试试卷与参考答案1228.在下面程序中的横线处填上适当内容,使程序完整。#includeiostream.hclassvehicle{protected:intspeed;public:voidsetSpeed(ints){speed=s;}_________getSpeedLevel(){returnspeed/10;}};classcar:publicvehicle{public:intgetSpeedLevel(){returnspeed/5;}};classtruck:publicvehicle{public:intgetSpeedLevel(){returnspeed/15;}};intmaxSpeedLevel(vehicle_____,vehicle_____){if(v1.getSpeedLevel()v2.getSpeedLevel())return1;elsereturn2;}voidmain(){truckt;carc;t.setSpeed(130);c.setSpeed(60);coutmaxSpeedLevel(t,c)endl;}//此结果输出为2virtualint&v1&v22003年10月全国高等教育自学考试试卷与参考答案1329.在下面横线处填上合适内容,完成类B的定义。#includeiostream.hclassA{public:A(){a=0;}A(inti){a=i;}voidprint(){couta,;}private:inta;};classB:publicA{public:B(){b1=b2=0;}B(_______){b1=i;b2=0;}B(inti,intj,intk):____{b1=j;b2=k;}//使a的值为ivoidprint(){A::print();coutb1,b2endl;}private:intb1,b2;};intiA(i)2003年10月全国高等教育自学考试试卷与参考答案1430.根据注释在空白处填写适当内容。#includeiostream.hclassLocation{private:intX,Y;public:voidinit(intinitX,intinitY){X=initX;Y=initY;}intGetX(){returnX;}intGetY(){returnY;}};voidmain(){LocationA1;A1.init(20,90);__________________//定义一个指向A1的引用rA1_______________________________________//用rA1在屏幕上输出对象A1的数据成员X和Y的值}Location&rA1=A1;coutrA1.GetX(),rA1.GetY()endl;2003年10月全国高等教育自学考试试卷与参考答案15五、程序分析题(每小题5分,共30分)31.给出下面程序的输出结果。#includeiostream.hclassFunArray{int*pa;//指向一个数组空间intsize;//数组元素个数public:FunArray(inta[],intthesize):pa(a),size(thesize){}intSize(){returnsize;}int&operator[](inti

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功