您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 制造加工工艺 > 面向对象编程技术试卷B2010-2011
B-1………………………………装………………………………订…………………………………线………………………………课程________________________班级________________________姓名__________________________学号________________________………………………………密………………………………封…………………………………线………………………………安徽工业大学试题纸(一)2010~2011学年第一学期期末考试《面向对象编程技术》试卷(B)一、单项选择题(201.5=30分)1.使用指针动态申请数组float[10][25][9]语句应是_________。A)float(*fp)[10][25]=newfloat[25][9];B)float*fp=newfloat[10][25][9];C)float(*fp)[25][9]=newfloat[10][25][9];D)float*fp=newfloat[25][9];2._________不是构造函数的特征。A)构造函数的函数名与类名相同B)构造函数可以重载C)构造函数可以设置缺省参数D)构造函数必须指定类型说明3.关于new运算符的错误的描述是_________。A)使用运算符new创建对象数组时必须定义初始值B)使用运算符new创建对象时,会调用类的构造函数C)运算符new可以用来动态创建对象和对象数组D)使用new运算符创建的对象可以使用运算符delete删除4.下列运算符中,_________运算符在C++中不能重载。A)=B)*C)::D)++5.下列关于友元的描述中,错误的是_________A.友元函数可以访问该类的私有数据成员B.一个类的友元类的成员函数都是这个类的友元函数C.友元可以提高程序的运行效率D.类与类之间的友元关系可以继承6.继承具有_________,即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。A.规律性B.传递性C.重复性D.多样性7.下列说法中错误的是_________。A.公有继承时基类中的public成员在派生类中仍是public的B.公有继承时基类中的private成员在派生类中仍是private的C.私有继承时基类中的public成员在派生类中是private的D.保护继承时基类中的public成员在派生类中是protected的8.下列关于虚基类的描述中,错误的是_________。A.虚基类成员的初始化由最派生类完成B.虚基类成员的初始化次数与虚基类下面的派生类个数有关C.设置虚基类的目的是消除二义性D.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出对虚基类构造函数的调用9.C++类体系中,不能被派生类继承的有_________。A.构造函数B.虚函数C.静态成员函数D.赋值操作函数10.下列关于动态联编的描述中,错误的是_________。A.动态联编是以虚函数为基础的B.动态联编是在运行时确定所调用的函数代码的C.动态联编调用函数操作是通过指向对象的指针或对象引用实现的D.动态联编是在编译时确定操作函数的题号一二三四五六七八九十十一十二十三十四十五十六十七十八十九二十总分得分B-2………………………………装………………………………订…………………………………线………………………………课程________________________班级________________________姓名__________________________学号________________________………………………………密………………………………封…………………………………线………………………………安徽工业大学试题纸(二)11.关于C++与C语言的关系的描述中,错误的是()A.C语言是C++的一个子集B.C++对C语言是兼容的C.C++对C语言进行了一些改进D.C++和C语言都是面向对象的12.定义int*p[9]等价的是()A、intp[9];B、int*p;C、int*(p[9]);D、int(*p)[9];13.设intn=0;,下列表示引用的方法中,()是正确的。Aint&x=n;Bint&y=10;Cint&z;Dfloat&t=&n14.假定Point为一个类,则执行Pointa[3],b(1,2),*p;语句时,自动调用该类构造函数_________次。A)2B)3C)4D)515.对类的构造函数和析构函数描述正确的是_________。A)构造函数可以重载,析构函数不能重载B)构造函数不能重载,析构函数可以重载C)构造函数可以重载,析构函数也可以重载D)构造函数不能重载,析构函数也不能重载16.在C++中,数据封装要解决的问题是_________。A)数据的规范化B)便于数据转换C)避免数据丢失D)防止不同模块之间数据的非法访问17.对于类中定义的成员,其默认的访问权限为_________。A)publicB)protectedC)privateD)static18.类的析构函数的作用是_________。A)一般成员函数B)类的初始化C)对象的初始化D)对象被删除时的清理工作19.对于常数据成员,下面描述正确的是_________。A)常数据成员可以不初始化,并且不能更新B)常数据成员必须被初始化,并且不能更新C)常数据成员可以不初始化,并且可以被更新D)常数据成员必须被初始化,并且可以被更新20.引入内联函数的主要目的是_________。A)缩短程序代码,少占用内存空间B)既可以保证程序的可读性,又能提高程序的运行效率C)占用内存空间少,执行速度快D)使程序的结构比较清晰B-3………………………………装………………………………订…………………………………线………………………………课程________________________班级________________________姓名__________________________学号________________________………………………………密………………………………封…………………………………线………………………………安徽工业大学试题纸(三)二、填空题(20空,120=20分)1.类是对具有共同属性和行为的一类事物的抽象描述,共同属性被描述为类中的______,共同行为被描述为类中的______。2.非成员函数应声明为类的_________才能访问这个类的private成员。3.C++提供的_________机制允许一个派生类继承多个基类,即使这些基类是相互无关的。4.设置虚基类的目的是____________,设置虚函数的目的是____________。5.拷贝构造函数用在三种情形,分别是:__________、__________和__________。6.在C++语言中,每个类都有一个隐含的指针叫做__________指针。该指针指向__________。7.使用const语句定义一个标识符常量时,则必须对它同时进行__________。8.抽象类指的是类的定义中包含____________。9.赋值兼容规则指的__________类的对象可以替代基类的对象进行使用。10.指针定义char*constp表示__________是常量;指针定义constchar*p表示__________是常量。11.重载函数的_______是相同的,但_______是不同的。12.void类型的指针可以指向___________数据类型,访问void类型指针指向的数据需要进行__________。三.判断题(1×10=1010分)1.派生类可以是组合类()2.运算符重载可以改变操作数的个数()3.友元关系可以在类之间传递()4.公有继承下,派生类的对象对它的基类成员的私有成员是可以访问()5.虚函数是一种特殊的虚函数,它没有具体的定义()6.析构函数有且只有一个()7.在类中,如果不做特别说明,所指成员均为私有类型()8.基类和派生类中出现同名函数,一定存在二义性问题()9.对虚函数的调用必须是动态联编()10.对对象成员的构造函数的调用顺序取决于这些对象成员在类中说明的顺序,与它们在成员初始化列表中给出的顺序无关.()四、读程题(每小题4分,共16分;注意:计算机学院同学做1、3、5、6四题,非计算机学院同学做1、2、3、4四题)1.下面的程序有什么问题,请指出来#includeiostream.h.classA{public:voidfun(){count”a.fun”endll;}};classB{public:voidfun(){count”b.fun”endll;}voidgun(){count”b.gun”endll;}};classC:publicA,publicB{private:intb;public:voidgun(){count”c.fun”endl;}voidhun(){fun();}};B-4………………………………装………………………………订…………………………………线………………………………课程________________________班级________________________姓名__________________________学号________________________………………………………密………………………………封…………………………………线………………………………2...写出下面程序运行的结果classtest{private:intnum;public:test();intget_int(){returnnum;}~test();};test::test(){num=0;}test::~test(){coutDestructorisactiveendl;}voidmain(){testx[3];coutExitingmainendl;}3.找出下面程序段中的错误语句,并说明出错的原因。ClassX{private:inta;staticints;public:voidfun(){s=10;}staticvoidsfun(X&);};voidX::sfun(X&r){a=10;r.a=10;}4.分析下面的程序prog1的输出结果#includeiostream.hvoidmain(){intnum=500;int&ref=num;coutref;ref=ref+100;coutnum;num=num+50;coutref;}5.写出下面程序输出的结果#includeiostream.hvoidswap(inta,intb);intmain(){intx(5),y(10);coutx=xy=yendl;swap(x,y);coutx=xy=yendl;return0;}voidswap(inta,intb){intt;t=a;a=b;B-5b=t;}6.写出下列程序的结果#includeiostream.hclassnumber{private:intval;public:number(inti){val=i;}numberoperator+(inti);intget_value(){returnval;}};numbernumber::operator+(inti){returnnumber(val+i);}classnum:publicnumber{public:num(inti):number(i){}};voidmain(){numbern(33);inti=3;n=n+3;coutn.valueisn.get_value()endl;}五、简答题(每小题4分,共12分)1.什么是二义性问题?如何解决二
本文标题:面向对象编程技术试卷B2010-2011
链接地址:https://www.777doc.com/doc-1980985 .html