还剩14页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
一、填空题每空1分,共14分
1、观看以下程序class point{public:pointvoid show{cout««endl;};void mainpointpl;point*p;p=p1;pl.show〃通过对象pl访问show函数p.show〃通过指针p访问show函数、在C++类中可以包含—公共、—保护和—私有—三种具有不同访2问控制权的成员、定义类时,在类头中将使用关键3字—class来表示类定义的开场、如果一个类中至少有一个纯虚函数,那末该类称4为抽象类o、C++类的组成包括数据成员和成员函数,友元—是—是、不5是该类的成员函数
6、友员函数是用关键字friend修饰的非成员函数、假设有7int i;intj二i=10;j=i+l;那末i=____11,j=11;i o
8、new的功能是分配内存空间,delete的功能是释放内存空间word选择题(每题
1.5分,
二、共30分)1)10D
2、B
3、C
4、D
5、D
6、B
7、B
8、C
9、C、19A
11、D
12、C
13、D
14、B
15、C
16、A
17、B
18、C、C
20、A
三、改错题(每错2分,共6分)()()()MyClass obj10;obj
1.SetMember5;obj
2.SetMember10;5分,共20
四、写出以下程序的执行结果〔每题分〕⑴3015分)2))79(每一个
2.5分)(每一个
2.5⑶202分))[43(2分)3(2分)3(1分〕
五、编程题〔每题10分、共30分)、1——第1页#include iostream.h#include math.hclass rectangle//2分private:intxl,yl,x2,y2;//2分public:rectangleint xxl,int yyl,int xx2,int yy2//l分xl=xxl;yl=yyl;x2=xx2;y2=yy2;int getarea//2分return absx2-xl*yl-y2;};void mainrectanglerecti3,7,8,5;2分cout«rectl.getarea«endl;1分word
2、(10分)#include iostream.hclass car;(1分)class boat{private:int weight;//(l分)public:boat(int w):weight(w){}//(1分)friend int totalweight(boat bl,car cl);//(2分);}classcar{/(l分)private:int weight;(1分)public:()()car intw:weight w{};friend inttotalweight(boat bl,car cl);(1分));inttotalweight(boat b1,car c1)//(l分)——第12页return b
1.weight+c
1.weight;void maincarcl1000;boat bl2000;cout«totalweightbl,c1«endl;l分
3、1分#includeiostream.hclass vehicle//3定义汽车类分protected:int wheels;//车轮数float weight;〃分量public:vehicleint wheels,float weight;int get_wheels;wordfloat get_weight;float wheel_load;void show;};class car:public定义小车类¥vehicle//int passenger_load;//载人数public:carint wheels,float weight,int passengers=4;int get_passengers;void show;};vehicle::vehicleint wheels1,float weight1//1分wheels二wheels1;weight=weight1;int vehicle::get_wheels returnwheels;}float vehicle::get_weightreturn weight;void vehicle::showl分车轮个分量公斤car::carint wheels,float weight,int passengers:vehiclewheels,weight passenger_load=passengers;int car::get_passengers returnpassenger_load;void ca亡:showword车型:小车vehicle::show;载人人cout«endl;void maincar carl4,2000,5;1分输出结果carl,show;1分婕统偌燃第雕,,海礴撇足髀下攀指需可飘修通改造补嘛,双达击到可加酬的除萩善眉页脚谢谢!——第16页——
二、选择题(每题
1.5分,共30分)
1、以下特性中不是面向对象程序设计语言所特有的是(D)(A)数据封装(B)继承[C)多态性[D)模板
2、(B)是给变量取一个别名,它引入了变量的允许词(A)指针〔B〕引用(C)枚举(D)构造
3、类成员的访问权限中,只能被本类的成员函数和其友元函数访问(A〕share[B)public[C)private〔D)protected
4、关于构造函数,以下说法不正确的选项是Uo(A〕构造函数名字和类名一样(B)构造函数在创立对象时自动执行(C)构造函数无任何函数返回类型(D〕构造函数有且惟独一个
5、派生类可以访问其基类的[A)公有成员[B)保护成员[C)私有派生[D)公有和保护成员
6、以下关于运算符重载的描述中,错误的选项是Uo〔A〕运算符重载不可以改变操作数的个数〔B〕运算符重载不可以改变运算符的功能运算符重载不可以改变结合方向[D)运算符重载不可以改变运算优先级
7、C++语言是从早期的C语言逐渐开展演变而来的.与C语言相比,它在求解问题方法上发展的最大改良是〔A〕面向过程[B)面向对象(C)安全性[D)复用性
8、对于类中定义的成员,其隐含访问权限为0oA-publicB.protectedC.privateD.static
9、下面有关重载函数的说法中正确的选项是㈠——第2页——[A重载函数必须具有不同的返回值类型;B重载函数形参个数必须不同;[C重载函数必须有不同的形参列表D〕重载函数名可以不同;
10、有如下的对类“CSample的说明,其中U是错误的class CSample{A・int a=23;B.CSample;public:C.CSampleint val;D.〜CSample;11在int a=3,int*p=a;中,*p的值是A.变量a的地址值B.无意义C.变量p的地址值D.
312、每一个类U构造函数A只能有一个B只可有公有的C可以有多个〔D〕只可有缺省的
13、在一个类中可以对一个操作符发展重载[A1种B2种以下3种以下[D多种
14、在公有继承的情况下,基类非私有成员在派生类中的访问权限1〔A〕受限制B保持不变[C受保护[D不受保护
15、应在以下程序划线处填入的正确语句是〔#include iostream.hclass Base{public:;class Derived:public Base{void fun{〃显示调用基类的函数fun word};1A fun;[B Base.fun;C Base::fun;D Base-fun;
16、执行下面的程序将输出㈠#include iostream.hclass BASE{char c;public:BASEchar n:cn{}virtual^BASE{cout«c;};class DERIVED:public BASE{char c;public:DERIVEDchar n:BASEn+l,cn{}〜DERIVED{coutc;};int main{DERIVED a,X;return0;A XYB YX©X[D Y
17、下面描述中,表达错误的选项是1A公有继承时基类中的public成员在派生类中仍是public的B公有继承是基类中的private成员在派生类中仍是private的〔C公有继承时基类中的protected段员在派生类中仍是protected的D〕私有继承时基类中的public版员在派生类中是private的
18、定义析构函数时,应该注意1〕A其名与类名彻底一样[B返回类型是void类型——第4页——〔C〕无形参,也不可重载D函数体中必须有delete语句
19、对于在类中定义的静态数据成员,下面正确的说法是A.该类的每一个对象中都有一个静态数据成员B.对象创立时产生C在类外发展初始化D.既可以在类外初始化,也可以在类内初始化
20、C++中声明常量的关键字是UoA.constB.externC.publicD.enum
三、改错题每处2分,共6分
1、使用VC6翻开考生文件夹下的工程projl,此工程包含一个源程叙文件main.cpp,但该程序运行有问题,请改正main函数中的错误,使程序的输出结果为member=0membei-5menber=10源程叙文件main.cpp清单如下#include iostream.hclass MyClasspublic:MyClassinti{member=i;}voidSetMemberintm{member=m;}int GetMemberconst{retummenber;}private:int member;;voedmainwordMyClassobj1;〃更正_____________________________objl.print;MyClassobj23;objl.member=5;//更正_____________________________MyClass.SetMemberlO;//更正objl.print;obj
2.print;5分,共20
四、写出以下程序的执行结果〔每题分
1、#includeiostream.hclass Sample{int n;public:Sampleinti{n=i;}friend int addSample sl,Sample s2;;intaddSample sl,Samples2return si.n+s
2.n;void mainSample sl10,s220;cout«adds1,s2«endl;执行结果是、2#includeiostream.hint addintx,int yreturnx+y+1;}double adddoublex,double yreturnx+y-1;void maininta=2,b=4;double c=
2.6,d=
7.4;执行结果是、3#includeiostream.hclass Apublic:int n;;class B:virtual publicA{};class C:virtual publicA{};class D:public B,public Cintgetn{return B::n;};void mainDd;d.B::n=10;d.C::n=20;word执行结果是、4#include iostream.hclass myclassinta,b;static ints;public:myclassint x,int y{a=x;b=y;s++;}void print{cout«s«endl;};int myclass::s=O;void mainmyclassmll,2,m24,5,m36,7;ml.print;m
2.print;m
3.print;次行结果是
五、编程题每题10分、共30分
1、测试一个名为rectangle的矩形类,其属性为矩形的左下角与右上角两个点的坐标,能计算矩形的面积10分
2、定义一boat与car两个类,二者都有weight属性,定义二者的一个友元函数totalweight,计算二者的分量和10分
3、设ti^一个汽车类vehicle,包含的数搪成员看车轮个数wheels和车重weight小车类car是它的派生类,其中包含载人数passengerjoad每一个类都有相关数据的输出方法在主程序中定义一个car类对象,对其车轮个数、车重、载人数发展设置并显示10分填空题每空
一、1分,共14分2公有、私有、保3J4抽象1p1,show;p-show护class类8〕动态申请内存空间、5成员函数、不是放由friend
711、11释new申请的空间word。