C++复习资料

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C++复习资料选择题PTA2-1下列函数中,(C)不能重载。(2分)A.成员函数B.非成员函数C.析构函数D.构造函数2-2下列对重载函数的描述中,(A)是错误的。(2分)A.重载函数中不允许使用默认参数B.重载函数中编译根据参数表进行选择C.不要使用重载函数来描述毫无相干的函数D.构造函数重载将会给初始化带来多种方式2-3设A为自定义类,现有普通函数intfun(A&x)。则在该函数被调用时:C(2分)Aa;Func(a);A.将执行复制构造函数来初始化形参xB.仅在实参为常量时,才会执行复制构造函数以初始化形参xC.无需初始化形参xD.仅在该函数为A类的友元函数时,无需初始化形参x2-4类成员的默认访问属性是:A(2分)A.privateB.protectedC.publicD.以上答案都不对2-5所有类都应该有:C(2分)A.构造函数B.析构函数C.构造函数和析构函数D.以上答案都不对2-6析构函数可以返回:D(2分)A.指向某个类的指针B.某个类的对象C.状态信息表明对象是否被正确地析构D.不可返回任何值2-7对于以下关于友元的说法D(2分)A.如果函数fun被声明为类A的友元函数,则该函数成为A的成员函数B.如果函数fun被声明为类A的友元函数,则该函数能访问A的保护成员,但不能访问私有成员C.如果函数fun被声明为类A的友元函数,则fun的形参类型不能是A。D.以上答案都不对2-8对于类之间的友元关系:D(2分)A.如果类A是类B的友元,则B的成员函数可以访问A的私有成员B.如果类A是类B的友元,则B也是A的友元。C.如果类A是类B的友元,并且类B是类C的友元,则类A也是类C的友元。D.以上答案都不对。2-9友元的作用是A(2分)A.提高程序的运用效率B.加强类的封装性C.实现数据的隐藏性D.增加成员函数的种类2-10给定以下类声明,哪个成员函数可能改变成员变量data?D(2分)classA{public:voidf1(intd);voidf2(constint&d);{data=d;}voidf3(intd)const;private:intdata;};A.f1B.f2C.f3D.f1和f22-1关于动态绑定的下列描述中,(D)是错误的。(2分)A.动态绑定是以虚函数为基础的B.动态绑定在运行时确定所调用的函数代码C.动态绑定调用函数操作是通过指向对象的指针或对象引用来实现的D.动态绑定是在编译时确定操作函数的2-2关于虚函数的描述中,(C)是正确的。(2分)A.虚函数是一个static类型的成员函数B.虚函数是一个非成员函数C.基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型2-3关于纯虚函数和抽象类的描述中,(C)是错误的。(2分)A.纯虚函数是一种特殊的虚函数,它没有具体的实现B.抽象类是指具有纯虚函数的类C.一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出2-4一个类的私有成员B(2分)A.只能被该类的成员函数访问B.只能被该类的成员函数和友元函数访问C.只能被该类的成员函数、友元函数和派生类访问D.以上答案都不对2-5下列有关继承和派生的叙述中,正确的是:C(2分)A.派生类不能访问通过私有继承的基类的保护成员B.多继承的虚基类不能够实例化C.如果基类没有默认构造函数,派生类就应当定义带形参的构造函数D.类的的析构函数和虚函数都不能够被继承,需要在派生类中重新实现2-6以下关于C++语言中继承的叙述中,错误的是(D)。(2分)A.继承是父类和子类之间共享数据和方法的机制B.继承定义了一种类与类之间的关系C.继承关系中的子类将拥有父类的全部属性和方法D.继承仅仅允许单继承,即不允许一个子类有多个父类2-1使用操作符setw对数据进行格式输出时,需要包含(C)文件。(2分)A.iostream.hB.fstream.hC.iomanip.hD.stdlib.h2-2关于动态绑定的下列描述中,(D)是错误的。(2分)A.动态绑定是以虚函数为基础的B.动态绑定在运行时确定所调用的函数代码C.动态绑定调用函数操作是通过指向对象的指针或对象引用来实现的D.动态绑定是在编译时确定操作函数的2-3关于虚函数的描述中,(C)是正确的。(2分)A.虚函数是一个static类型的成员函数B.虚函数是一个非成员函数C.基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型2-4关于纯虚函数和抽象类的描述中,(C)是错误的。(2分)A.纯虚函数是一种特殊的虚函数,它没有具体的实现B.抽象类是指具有纯虚函数的类C.一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出2-5下列描述中,(D)是抽象类的特性。(2分)A.可以说明虚函数B.可以进行构造函数重载C.可以定义友元函数D.不能定义该类对象2-6cout是由I/O流库预定义的(B)。(2分)A.类B.对象C.包含文件D.常量2-7下列表达错误的是(B)。(2分)A.coutsetw(5)B.coutfill('#')C.cout.setf(ios::uppercase)D.cin.fill('#')2-8一个类的私有成员B(2分)A.只能被该类的成员函数访问B.只能被该类的成员函数和友元函数访问C.只能被该类的成员函数、友元函数和派生类访问D.以上答案都不对2-9在派生类对基类继承的传递性中,C__是错误的。(2分)A.在公有继承方式下,直接派生类对象可以直接调用基类中的公有成员函数,去访问基类的私有数据成员B.在公有继承方式下,间接派生类对象可以直接调用基类中的公有成员函数,去访问基类的私有数据成员C.在私有继承方式下,间接派生类对象可以直接调用基类中的公有成员函数,去访问基类的私有数据成员D.不管是私有继承还是公有继承,基类中的私有成员在派生类的作用域内都是不可能见的。2-10下列有关继承和派生的叙述中,正确的是:C(2分)A.派生类不能访问通过私有继承的基类的保护成员B.多继承的虚基类不能够实例化C.如果基类没有默认构造函数,派生类就应当定义带形参的构造函数D.类的的析构函数和虚函数都不能够被继承,需要在派生类中重新实现2-11在C++语言中设置虚基类的目的是(C)。(2分)A.简化程序代码B.提高程序的运行效率C.解决多继承造成的二义性问题D.缩短程序的目标代码2-12以下关于C++语言中继承的叙述中,错误的是(D)。(2分)A.继承是父类和子类之间共享数据和方法的机制B.继承定义了一种类与类之间的关系C.继承关系中的子类将拥有父类的全部属性和方法D.继承仅仅允许单继承,即不允许一个子类有多个父类一、选择(20题20分)1.关于string类的说法不正确的是()BA.string类的两个对象可以直接用关系运算符比较大小。比如s1s2。B.string类的两个对象不能直接相加,如表达式s1+s2语法错误。C.string是C++标准模板库中的一个字符串类,包含在头文件string中D.string类对象中存储的字符串的长度不能用strlen()函数计算。2.关于引用的说法正确的是()CA.引用用&来标识,定义引用时可以只声明引用,不需要对引用初始化。B.引用不能用不同类型的变量进行初始化。C.引用主要用作函数参数,以扩充函数传递数据的功能。D.以上说法均不正确。3.下列对重载函数的描述中,()是错误的。APTAA.重载函数中不允许使用默认参数B.重载函数中编译根据参数表进行选择C.不要使用重载函数来描述毫无相干的函数D.构造函数重载将会给初始化带来多种方式4.下面有关类说法不正确的是()CA.一个类可以有多个构造函数B.一个类只有一个析构函数C.析构函数需要指定参数D.在一个类中可以说明具有类类型的数据成员5.类成员的默认访问属性是(A)A.privateB.protectedC.publicD.以上答案都不对6.this指针存在的目的是()CA.保证基类私有成员在子类中可以被访问B.保证基类保护成员在子类中可以被访问C.保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码D.保证基类公有成员在子类中可以被访问7.静态成员函数没有()BA.返回值B.this指针C.指针参数D.返回类型8.类MyClass的拷贝初始化构造函数是()CA.MyClass()B.MyClass(MyClass*)C.MyClass(MyClass&)D.MyClass(MyClass)9.关于静态成员函数及常成员函数的说法不正确的是()BA.静态成员函数用static关键字声明,且static在函数首部的最前面;常成员函数用const关键字声明,但const需要放在函数首部的最后面。B.静态成员函数只能访问静态数据成员。C.常对象只能调用常成员函数。D.常成员函数可以访问类中的const数据成员及非const数据成员,但不可改变它们。10.一个类的私有成员()BA.只能被该类的成员函数访问B.只能被该类的成员函数和友元函数访问C.只能被该类的成员函数、友元函数和派生类访问D.以上答案都不对11.C++类体系中,不能被派生类继承的有()BA.常成员函数B.构造函数C.虚函数D.静态成员函数12.在公有继承的情况下,基类的公有或保护成员在派生类中的访问权限()BA.受限制B.保持不变C.受保护D.不受保护13.在C++语言中设置虚基类的目的是()CA.简化程序代码B.提高程序的运行效率C.解决多继承造成的二义性问题D.缩短程序的目标代码14.关于纯虚函数和抽象类的描述中,(C)是错误的。A.纯虚函数是一种特殊的虚函数,它没有具体的实现B.抽象类是指具有纯虚函数的类C.一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出15.有关多态性说法不正确的是()CA.C++语言的多态性分为编译时的多态性和运行时的多态性B.编译时的多态性可通过函数重载实现C.运行时的多态性可通过模板和虚函数实现D.实现运行时多态性的机制称为动态多态性16.实现两个相同类型数加法的函数模板的声明是()DA.add(Tx,Ty)B.Tadd(x,y)C.Tadd(Tx,y)D.Tadd(Tx,Ty)17.已知类模板的定义如下:templateclassTclassA{public:A(Tx):item(x){};Tfunc(Ta);friendvoidshow(constAT&a);templateclassUfriendvoiddisp(U&u);private:Titem;};以下说法不正确的是()AA.用类A声明对象a的语句是Ainta(10),也可以简写为Aa(10);因为根据参数10能够推演类A的数据类型是int。B.类外定义函数func()的基本格式是templateclassTTAT::func(Ta){…//语句序列};C.友元函数show()的定义格式是voidshow(constAint&a){couta.itemendl;}D.友元函数disp()的定义格式是templateclassTvoiddisp(T&t){…//语句序列};18.下列表达错误的是()BA.coutsetw(5)B.coutfill('#')C.cout.setf(ios::uppercase)D.cin.fill('#')19.下列关于异常处理的说法不正确的是()CA.异常处理的throw与catch通常不在同一个函数中,实现异常检测与异常处理的分离。B.catch语句块必须跟在try语句块的后面,一个try语句块后可以有多个catch语句块。C.在对函数进行异常规范声明时,若形参表后没有任何表示抛出异常类型的说明,它表示该函数

1 / 23
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功