您好,欢迎访问三七文档
《C++面向对象程序设计》模拟试题一一、单项选择题(本大题共10小题,每小题2分,共20分)1.下列对类的构造函数和析构函数描述正确的是()。A)构造函数可以重载,析构函数不能重载B)构造函数不能重载,析构函数可以重载C)构造函数可以重载,析构函数可以重载D)构造函数不能重载,析构函数不能重载2.在函数定义前加上关键字“inline”,表示该函数被定义为()。A)重载函数B)内联函数C)成员函数D)普通函数3.下面有关重载函数的说明中,()是正确的。A)重载函数必须具有不同的返回值类型B)重载函数形参个数必须不同C)重载函数必须具有不同的形参列表D)重载函数名可以不同4.已知:Print()函数是一个类的常成员函数,它无返回值,下列表示中,正确的是()。A)voidPrint()const;B)constvoidPrint();C)voidconstPrint();D)voidPrint(const)5.假定Myclass为一个类,那么下列的函数说明中()为该类的析构函数。A)void~Myclass();B)~Myclass(intn);C)Myclass();D)~Myclass()6.下面类的定义中有()处错误。classmyclass{inti=0;public:voidmyclass();~myclass(value);}A)1B)2C)3D)47.说明虚函数的关键字是()。A.inlineB.virtualC.defineD.static8.cout是某个类的标准对象的引用,该类是()。A.ostreamB.istreamC.stdoutD.stdin9、一个类的所有对象共享的是()。A.私有数据成员B.公有数据成员C.保护数据成员D.静态数据成员10.静态成员函数没有()。A.返回值B.this指针C.指针参数D.返回类型二、判断正误题(本大题共5小题,每小题2分,共10分)1.构造函数可以设置默认参数2.类的析构函数的作用是对象的初始化3.cout的默认输出对象是键盘,cin的默认输入对象是屏幕4.抽象类可以用来直接创建对象。5.常对象可以调用任意成员函数。三、填空题(本大题共5小题,每小题2分,共10分)1.重载运算苻”-”的函数名为()。2.C++中类的用途有两种,一种是类的实例化,即生成类的对象,另一种是通过(),派生出新的类。3.在下面程序的横线处填上正确的语句,以实现动态多态。#includeiostream.hclassBase{public:virtualvoidFun(){coutBase::Funendl;}};classDerived:publicBase{public:voidFun(){coutDerived::Funendl;}};intmain(){Basea,*pb;Derivedb;;pb-Fun();//调派生类的成员函数Fun(),以实现动态多态return0;}4.编译时多态性可以用()函数实现。5.使用new建立的动态对象在不用时必须用()删除,以便释放所占用空间。四、程序分析题(本大题共5小题,每小题4分,共20分)给出下面各程序的输出结果。1.若有以下程序:#includeiostream.hclassA{inta;public:A(intaa=0){a=aa;}~A(){coutDestructorA!aendl;}};classB:publicA{intb;public:B(intaa=0,intbb=0):A(aa){b=bb;}~B(){coutDestructorB!bendl;}};intmain(){Bx(5),y(6,7);return0;}上面程序的输出结果为:2.若有以下程序:#includeiostream.hclassPoint{intx,y;public:Point(){x=0;y=0;}voidSetPoint(intx1,inty1){x=x1;y=y1;}voidDisPoint(){coutx=x,y=yendl;}};intmain(){Point*p=newPoint;p-SetPoint(5,12);p-DisPoint();deletep;return0;}上面程序的输出结果为:3.若有以下程序:#includeiostream.hclassBase{public:voidFun(){cout1endl;}};classDerived:publicBase{public:voidFun(){cout2endl;}};intmain(){Deriveda;Base*p;p=&a;p-Fun();a.Fun();return0;}上面程序的输出结果为:4.阅读下面程序,写出输出结果。#includeiostreamusingnamespacestd;classPoint{public:Point(intx=0,inty=0):m_x(x),m_y(y){}intGetX()const{returnm_x;}intGetY()const{returnm_y;}voidSetX(intx){m_x=x;}voidSetY(inty){m_y=y;}private:intm_x;//X坐标intm_y;//X坐标};intmain(void){PointoPoint1;constPointoPoint2(3,4);coutoPoint1.GetX()endl;oPoint1.SetX(1);coutoPoint1.GetX()endl;oPoint1.SetY(2);coutoPoint1.GetY()endl;coutoPoint2.GetX()endl;coutoPoint2.GetY()endl;return0;}上面程序的输出结果为:5.阅读下面程序,写出输出结果。#includeiostreamusingnamespacestd;classA{inta,b;public:A(){a=b=0;}A(intaa,intbb){a=aa;b=bb;couta''bendl;}};intmain(){Ax,y(2,3);return0;}上面程序的输出结果为:六、编程题(本大题共2小题,共20分)1.设计一个类DateInfo,要求其满足下述要求:(10分)(1)要求有一个无参的构造函数,其初始的年、月、日分别为:2010,6,8。(2)要求有一个带参数的构造函数,其参数分别对应年、月、日。(3)要求用一个成员函数实现日期的设置。(4)要求用一个成员函数实现输出日期。要求用一个成员函数实现日期的获取。2.定义一个抽象类CShape,它有一个纯虚函数GetLength();派生出四边型类CSquare和圆类CCircle,在派生类中重载函数GetLength(),用于求图形的周长,编写测试程序进行测试。(10分)参考答案一、单项选择题(本大题共15小题,每小题2分,共30分)1.A)2.B)3.C)4.A)5.D)6.C)7.B)8.A)9.D)10.B)二、判断正误题(本大题共5小题,每小题2分,共10分)判断正误,在题后的括号内,正确的划上“√”错误的划上”×”。1.参考答案:“√”2.参考答案:“×”3.参考答案:“×”4.参考答案:“×”5.参考答案:“×”三、填空题(本大题共5小题,每小题2分,共10分)1.参考答案:oprator-2.参考答案:继承3.参考答案:pb=&b4.参考答案:重载5.参考答案:delete四、程序分析题(本大题共5小题,每小题4分,共20分)给出下面各程序的输出结果。1.输出结果为:DestructorB!7DestructorA!6DestructorB!0DestructorA!52.输出结果为:x=5,y=123.输出结果为:124.程序的输出结果为:012345.程序的输出结果为:23五、编程题(本大题共2小题,每小题10分,共20分)1.参考程序:#includeiostreamusingnamespacestd;classDateInfo{private:intyear,month,day;public:DateInfo():year(2010),month(6),day(8){}DateInfo(inty,intm,intd):year(y),month(m),day(d){}voidSet(inty,intm,intd){year=y;month=m;day=d;}voidShow(){coutyear年month月day日endl;}};intmain(){DateInfod1,d2(1988,8,18);d1.Show();d2.Show();d2.Set(1999,9,19);d2.Show();return0;}2.参考程序:#includeiostreamusingnamespacestd;classCShape{public:virtualdoubleGetLength()const=0;};classCSquare:publicCShape{public:CSquare(doubledWidth,doubledHeight){m_dWidth=dWidth;m_dHeight=dHeight;}doubleGetLength()const{return2*(m_dWidth+m_dHeight);}private:doublem_dWidth,m_dHeight;};classCCircle:publicCShape{public:CCircle(doubledRadius){m_dRadius=dRadius;}doubleGetLength()const{return3.1415926*m_dRadius*m_dRadius;}private:doublem_dRadius;};intmain(void){CSquareoSquare(2,3);coutoSquare.GetLength()endl;CCircleoCircle(10);coutoCircle.GetLength()endl;return0;}《C++面向对象程序设计》模拟试题二本试卷卷面分数为80分。一、单项选择题(本大题共10小题,每小题2分,共20分)1.说明内联函数的关键字是()。A.inlineB.virtualC.defineD.static2.假定CAb为一个类,则执行CAboX;语句时将自动调用该类的()A.有参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数3.cin是某个类的标准对象的引用,该类是()。A.ostreamB.istreamC.stdoutD.stdin4.下面的哪个保留字不能作为函数的返回类型?()A.voidB.intC.newD.long5.不能参与重载的运算符是()。A.类B.函数C.函数模板D.运算符6.由于数据隐藏的需要,静态数据成员通常被说明为()。A.私有的B.公有的C.保护的D.不可访问的7.编译时多态性使用什么获得?()A.重载函数B.继承C.虚函数D.B和C8.拷贝构造函数的参数通常是()。A.无特殊要求B.指向对象的指针C.自已类对象的常引用D.对象9.C++有几种联编?()A.1种B.2种C.3种D.4种10.基类和派生类可以分别称为()。A.“大类”和“小类”B.“父类”和“子类”C.“小类”和“大类”D.“子类”和“父类”二、判断正误题(本大题共5小题,每小题2分,共10分)判断正误,在题后的括号内,正确的划上“√”错误的划上“×”。1.不可以定义抽象类的对象。()2.内联函数的定义必须出现在第一次调用内联函数之前。()3.模板函数与函数模板的意义完全相同。()4.只有常成员函数才可以操作常对
本文标题:c++期末试题A
链接地址:https://www.777doc.com/doc-2904261 .html