您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 2012面向对象试卷A
第1页共10页装线订中国地质大学(武汉)课程考核试卷教务处制版本:2011.5试卷类别A√B□使用学期2012年春命题人签字审题人签字审定人签字考生学号考生姓名所在班级考核内容:一、选择题(15题,共30分)1、下列有关继承和派生的叙述中,正确的是()。A.如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员B.派生类的成员函数可以访问基类的所有成员C.基类对象可以赋值给派生类对象D.如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类2、下面函数的功能是()intfun(char*x){char*y=x;while(*y++){};returny-x-1;}A.求字符串的长度B.求字符串存放位置C.比较两个字符串的大小D.将字符串x连接到字符串y后面3、设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是()A.k=*p1+*p2;B.p2=k;C.p1=p2;D.k=(*p1)*(*p2);4、若有说明:inti,j=7,*p;p=&i;则与i=j等价的语句是()A.i=*p;B.*p=*&j;C.i=&jD.i=**p;课程名称:面向对象程序设计学时:48考核方式:笔试开卷□笔试闭卷√口试□其它辅助工具:可用□工具名称:不可用√第2页共10页5、下面关于虚函数的描述中,正确的是()。A.基类中利用virtual关键字说明一个虚函数后,其派生类中定义相同的原型函数时可不必加virtual来说明B.虚函数是非成员函数C.虚函数是static类型的成员函数D.派生类中的虚函数与基类中类型相同的虚函数具有不同的参数个数或类型6、类定义如下:classTestClass{public:TestClass(){cout1;}}则执行语句TestClassa,b[2],*p[2];后,程序的输出结果是()。A.11B.111C.1111D.111117、关于this指针的说法不正确的是()。A.不能在程序中修改this指针B.this指针可以给其他指针赋值,但不能修改this指针C.静态成员函数中没有this指针D.this指针可以被赋值8、下面关于指针的说法中错误的是()。A.在指针定义的同时可以对其进行初始化B.指针根据其所指向变量的类型的不同,指针本身所占用内存大小也不同C.指针中存放的是内存单元的地址D.相同类型的指针之间可以相互赋值9、设有以下函数定义,则该函数返回的值是()int*fun(inta){int*t,n;n=a;t=&n;returnt;}A.一个不可用的存储单元地址值B.一个可用的存储单元地址值C.n中的值D.形参a中的值第3页共10页装线订考生学号考生姓名所在班级10、要想利用C++流操作实现输入输出的各种格式控制,必须在程序中包含的头文件是()。A.fstreamB.istrearmC.ostreamD.iomanip11、已定义整形变量a,下列表达式中不正确的是()。A.a+=(a++);B.a+=(++a);C.(a++)+=a;D.(++a)+=a;12、定义以下类:classX{inta;public:X(intx=0){a=x;}};classY:publicX{intb;public:Y(intx=0,inty=0):X(y){b=x;}};在下列选项的说明语句中,存在语法错误的是()。A.X*pa=newY(1,2)B.Xa1=Y(1,3);C.Xb2(2);Y&a2=b2;D.Yb3(10);Xa3(b3);13、下列叙述中不正确的是()。A、Windows应用程序是基于消息循环机制的B、MFC的缩写是MicrosoftFoundationClassesC、MFC中程序对资源的调用主要是靠资源名称来标识D、菜单项对应的消息有COMMAND、UPDATE_COMMAND_UI14、下列关于运算符重载的描述中,错误的是()。A.运算符重载不可以改变运算符的功能B.运算符重载不可以改变操作数的个数C.运算符重载不可以改变结合方向D.运算符重载不可以改变运算优先级第4页共10页15、应在下列程序划线处填入的正确语句是()#includeiostream.hclassBase{public:endl;}};classDerived:publicBase{voidfun(){_____________//显示调用基类的函数fun()coutDerived::funendl;};A.fun();B.Base.fun();C.Base::fun();D.Base-fun();二、简答题(9分)(1)多重继承如何消除向上继承的二义性?(2)C++中为什么用模板类?(3)析构函数在何时必须申明为虚函数?原因是什么?第5页共10页装线订考生学号考生姓名所在班级三、填空题(6空,6分)1、非成员函数必须声明为类的__________才能访问这个类的private成员。2、类中的一个字符指针成员指向具有m个字节的存储空间时,它所能存储的字符串的最大长度为。3、在类中,__________成员为类的所有对象所共享。4、在C++异常处理当中,一个函数需要抛出异常,使用关键字。5、inta[10]={0,2,4,6,8};int*px=a;y=*px++;则y=。6、在保护派生中,基类权限为private的成员在派生类中。四、综合题看程序写结果(6题,3*5+4=19分)1、2、#includeiostreamusingnamespacestd;voidast(intx,inty,int*cp,int*dp){*cp=x*y;*dp=x%y;}voidmain(){inta,b,c,d;a=3;b=4;ast(a,b,&c,&d);coutc”,”dendl;}#includeiostreamusingnamespacestd;voidmain(){int*v,b;v=&b;b=100;*v+=b;coutbendl;}第6页共10页3、4、voidFun2(){intarray2[2][3]={{11,12,13},{21,22,23}};for(inti=0;i2;i++){for(intj=0;j3;j++){cout*(*(array2+i)+j)+i;}coutendl;}}intmain(){Fun2();return0;}#includeiostreamusingnamespacestd;classB1{public:B1(inti){coutconstructingB1iendl;}~B1(){coutdestructingB1endl;}};classB2:publicB1{public:B2(intj=6):B1(5){coutconstructingB2jendl;}};classB3:publicB2{public:B3(){coutconstructingB3*endl;}};voidFun(){B3obj;}intmain(){Fun();return0;}第7页共10页装线订考生学号考生姓名所在班级5、6、#includeiostreamusingnamespacestd;voidmain(){inta=10,b=0,*pa,*pb;pa=&a;pb=&b;couta”,”bendl;cout*pa”,”*pbendl;a=20;b=30;*pa=a++;*pb=b++;couta”,”bendl;cout*pa”,”*pbendl;(*pa)++;(*pb)++;couta”,”bendl;cout*pa”,”*pbendl;}#includeiostreamusingnamespacestd;classbase{inti;public:base(intI=0):i(I){}virtualintsum(){returni;}};classD:publicbase{intj;public:D(intI=0,intJ=0):base(I),j(J){}intsum(){returnbase::sum()+j;}};voidcall(baseb){coutsum=b.sum()endl;}voidcall2(base&b){coutsum=b.sum()endl;}voidmain(){baseb(10),*pb;Dd(10,47);pb=&d;call(b);call(d);call(*pb);call2(b);call2(d);call2(*pb);}第8页共10页程序填空(7个空,14分)7、以下函数的功能是判断字符串str是否对称,对称则返回true,否则返回false。请在横线处填上适当内容,实现该函数。boolfun(char*str){inti=0,j=0;while(str[j])j++;for(j--;1;i++,j--);returni==j;}8、以下程序定义了一个二维坐标点类Point,派生矩形类Square。矩形左下角坐标从基类继承,矩形类只定义右上角坐标,还定义表示颜色的字符串。执行下面的主程序将得到结果:矩形s1:x=1y=3width=5,high=6,color=red矩形s2:x=1y=3width=5,high=6,color=redYellow#includeiostream#includestringusingnamespacestd;classPoint{private:doublex,y;public:Point(doublexv=0,doubleyv=0){x=xv;y=yv;}doublegetx(){returnx;}doublegety(){returny;}voidShow(){coutx=xy=y;}//输出对象信息};classSquare:publicPoint//带颜色的矩形(square)类{doublehx,hy;char*color;public:Square(){hx=0;hy=0;}Square(doublexv,doubleyv,doublehxv,doublehyv,char*s):2{hx=hxv;hy=hyv;color=newchar[9];strcpy(color,s);}第9页共10页装线订考生学号考生姓名所在班级Square(3):Point(rr)//拷贝构造函数{hx=rr.hx;hy=rr.hy;color=newchar[strlen(4)+7];strcat(strcpy(5),6);}voidShow();};voidSquare::Show()//输出矩形的左下角坐标、宽度、高度和颜色{Point::7;cout\twidth=hx','high=hy;cout,color=color'\n';}voidmain(){Squares1(1,3,6,9,red),s2(s1);cout矩形s1:'\t';s1.Show();cout矩形s2:'\t';s2.Show();}五、程序改错:请指出错误并改正。(2题,6分)1、2、classA{private:inta;public:voidsetA(intx){a=x;}voidshowA(){cout”a=”aendl;}}voidmain(){inta=10;int&b=&a;int*p;*p=a;}第10页共10页classB:privateA{private:intb;public:voidsetB(intx,inty){b=x;setA(y);}voidshowB(){showA();cout”b=”bendl;}};voidmai
本文标题:2012面向对象试卷A
链接地址:https://www.777doc.com/doc-3007497 .html