您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C++期末考试复习题
一、单项选择题(本大题共10小题,每小题2分,共20分)1.在C++中,函数原型不能标识(D)A.函数的返回类型B.函数参数的个数C.函数参数类型D.函数的功能2.在C++程序中,对象之间的相互通信通过(B)A.继承实现B.调用成员函数实现C.封装实现D.函数重载实现3.对于任意一个类,析构函数的个数最多为(B)5.友元关系不能(A)A.继承B.是类与类的关系C.是一个类的成员函数与另一个类的关系D.提高程序的运行效率6.语句ofstreamf(″″,ios::app|ios::binary);的功能是建立流对象f,试图打开文件并与之连接,并且(A)A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B.若文件存在,将其置为空文件;若文件不存在,打开失败C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文件7.下面说法正确的是(B)A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字inline定义以用的形式访问派生类对象p的基类成员a,其中a是(D)A.私有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.公有继承的公有成员公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是(C)A.派生类的对象可以赋给基类的对象B.派生类的对象可以初始化基类的引用C.派生类的对象可以直接访问基类中的成员D.派生类的对象的地址可以赋给指向基类的指针于类定义classA{public:virtualvoidfunc1(){}voidfunc2(){}};classB:publicA{public:voidfunc1(){cout″classBfunc1″end1;}virtualvoidfunc2(){cout″classBfunc2″end1;}};下面正确的叙述是(C)A.A::func2()和B::func1()都是虚函数B.A::func2()和B::func1()都不是虚函数C.B::func1()是虚函数,而A::func2()不是虚函数D.B::func1()不是虚函数,而A::func2()是虚函数第二部分非选择题(共80分)二、填空题(本大题共10小题,每小题2分,共20分)11.定义类的动态对象数组时,系统只能够自动调用该类的_无参_______构造函数对其进行初始化。12.在C++程序设计中,建立继承关系倒挂的树应使用____单_一____继承。13.表达式coutend1还可表示为____cout`\n`_____。14.基类的公有成员在派生类中的访问权限由___访问控制_____决定。++支持的两种多态性分别是__编译时的_(操作重载)_静态_____多态性和_运行时的(虚函数)___动态_____多态性。++中语句constchar*constp=″hello″;所定义的指针p和它所指的内容都不能被__改变(重新赋值)____。17.假定AB为一个类,则语句AB(AB&x);为该类_____拷贝____构造函数的原型说明。18.将关键字const写在成员函数的____函数头_____和____函数体_____之间时,所修饰的是this指针。19.在C++中,访问一个对象的成员所用的运算符是__·___,访问一个指针所指向的对象的成员所用的运算符是_____。20.派生类从一个或多个以前定义的该类的__基类__一、单项选择题(每题2分,共20分)1.派生类对象可访问基类中的什么成员(A)A.公有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.私有继承的公有成员2.定义析构函数时,应该注意(C)A.其名与类名完全相同B.返回类型是void类型C.无形参,也不可重载D.函数体中必须有delete语句3.如果类A被说明成类B的友元,则(D)。A.类A的成员即类B的成员B.类B的成员即类A的成员C.类A的成员函数不得访问类B的成员D.类B不一定是类A的友元4.应在下列程序划线处填入的正确语句是(C)#includeclassBase{public:voidfun(){coutBase::funendl;}};classDerived:publicBase{voidfun(){_____________();C.Base::fun();D.Base-fun();5.面向对象程序设计将数据与(A)放在一起,做为一个相互依存、不可分割的整体来处理。8.下面关于C++中类的继承与派生的说法错误的是(C)。A.基类的protected成员在公有派生类的成员函数中可以直接使用B.基类的protected成员在私有派生类的成员函数中可以直接使用C.公有派生时,基类的所有成员访问权限在派生类中保持不变D.基类的protected成员在保护派生类的成员函数中可以直接使用10.语句ofstreamf(″″,ios::app|ios::binary);的功能是建立流对象f,试图打开文件并与之连接,并且(A)A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B.若文件存在,将其置为空文件;若文件不存在,打开失败C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文件二、填空题(每空2分,共30分)1.假定AB为一个类,则语句AB(AB&x);为该类_________复制构造函数的原型说明。2.C++支持的两种多态性分别是________编译时的_多态性和运行时的_________多态性。3.定义类的动态对象数组时,系统只能够自动调用该类的无参的_________构造函数对A.对数据的操作B.信息C.数据隐藏D.数据抽象6.在类中声明转换函数时不能指定(A)。A.参数B.访问权限C.操作D.标识符7.在派生类中重新定义虚函数时必须在(A)方面与基类保持一致。A.参数类型B.参数名字C.操作内容D.赋值9.重载赋值操作符时,应声明为(C)函数。A.友元B.虚C.成员D.多态其进行初始化。4.运算符重载时,其函数名由__operator运算符_构成。成员函数重载双目运算符时,左操作数是_当前对象__,右操作数是__函数形参_。C++标准库中的异常层次的根类为exception_____类;MFC类库中绝大多数类都源自根类__CObject_____类。在下面横线处填上适当字句,完成类中成员函数的定义。classA{int*a;public:A(intaa=0){a=_newint(aa)______;在下面选项中,对类的拷贝构造函数的声明形式是(B)A.A::A(&)B.A::A(constA&)C.A::A(A)D.voidA::A(A&a)2.下面关于成员函数特征的描述中,错误的是(A)A.成员函数不可以设置参数的默认值B.成员函数可以重载C.成员函数可以是内联函数D.成员函数可以是静态的3.下面关于类模板叙述不正确的是(B)A.可以有多个构造函数B.类模板是模板类的实例C.一个类模板可以用来实例化多个模板类D.类模板可以有多个参数4.要使一个类成为抽象类,这个类应具有的条件是(A)A.至少有一个纯虚函数B.至少有一个虚函数C.只含有一个纯虚函数D.只含有一个虚函数5.有关运算符重载正确的描述是(D)A.C++语言允许在重载运算符时改变运算符的操作个数B.C++语言允许在重载运算符时改变运算符的优先级C.C++语言允许在重载运算符时改变运算符的结合性D.C++语言允许在重载运算符时改变运算符的原来的功能6.下列说法正确的是(D)。A.一个类的对象可以是另一个类的成员B.一个类可以作为另一个类的派生类C.一个类可以在另一个类定义体进行定义D.以上说法均正确7.有如下程序:#includeclassBASE{charc;public:BASE(charn):c(n){}virtual~BASE(){coutc;}};classDERIVED:publicBASE{charc;public:DERIVED(charn):BASE(n+1),c(n){}~DERIVED(){coutc;}};intmain(){DERIVED('X');return0;}执行上面的程序将输出(C)。A)XB)YXC)XYD)Y8.类MyClass的定义如下:classMyClass{public:MyClass(){value=0;}SetValue(inti){value=i;}private:intvalue;};则对语句:MyClass*p,my;p=&my;正确的描述是(D)。A.语句p=&my;是把对象my赋值给指针变量p;B.语句MyClass*p,my;会调用两次类MyClass的构造函数C.对语句*(5)的调用是正确的D.语句p-SetValue(5)与(5)等价9.下列各类函数中,C不是类的成员函数。A.构造函数B.析构函数C.友元函数D.拷贝构造函数10.派生类的对象对它的基类成员中A是可以访问的。A.公有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.私有继承的公有成员8.C++支持面向对象程序设计的四个要素是:抽象性、多态性________、封装性________和____继承性____。一、单项选择题(每题2分,共20分)1.下面有关构造函数和new运算符关系正确的说法是(D)A.new运算符不调用构造函数B.构造函数一定调用new运算符C.当生成新类的实例时,先调用new运算符,然后调用构造函数进行初始化D.当new运算符动态产生类的对象时,new运算符也自动调用构造函数2.下面有关类性质的说法错误的是(D)A.一个类可以有多个构造函数,但只有一个析构函数B.析构函数和构造函数都不能有返回类型C.不能给析构函数指定参数D.一个类中不可以声明具有类类型的数据成员3.下面关于友元函数描述正确的是(C)A.友元函数是类的成员B.友元函数在类的外部声明C.友元函数在类中声明D.友元函数能够派生4.下面叙述正确的是(D)二、填空题(每空2分,共30分)1.定义内联函数所用的关键字inline,定义友元所用的关键字为friend。2.当一个派生类具有多个基类时,这种继承方式称为_多重继承__。3.通过一个构造函数调用虚函数时,C++系统对该调用采用静态联编。4.任何类中允许有_privated____、public____、_protected____三种访问控制类型的成员,数据成员和成员函数的默认类型为__privated___。5.只有在公有继承的情况下,基类和派生类之间才有赋值兼容性规则。6.C++标准库中的异常层次的根类定义在库的头文件_______中。7.运算符重载使用的两种方式是_____成员函数______和友元函数_______。A.派生类不可以使用私用派生B.保护派生时,基类的保护成员在派生类中是公有的C.对基类成员的访问允许二义性D.赋值兼容规则也适用于多重继承的组合5.有关运算符重载正确的描述是(D)A.C++语言允许在重载运算符时改变运算符的操作个数B.C++语言允许在重载运算符时改变运算符的优先级C.C++语言允许在重载运算符时改变运算符的结合性D.C++语言允许在重载运算符时改变运算符的原来的功能6.下面描述中,表达错误的是(B)????A.公有继承时基类中的public成员在派生类中仍是public的B.公有继承是基类中的private成员在派生类中仍是private的C.公有继承时基类中的protected成员在派生类中仍是protected的D.私有继承时基类中的public成员在派生类中是private的7.拷贝构造函数的参数是(C)A.某个对象名B.某个对象的成员名C.某个对象的引用名D
本文标题:C++期末考试复习题
链接地址:https://www.777doc.com/doc-5621453 .html