C++复习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++作业题(8)
一.选择填空
(1) 定义重载函数的下列条件中,(C )是错误的。
A. 要求参数个数不同
B. 要求参数类型不同
C. 要求函数返回值类型不同
D. 要求在参数个数相同时,参数类型的顺序不同
(2) 关于下列虚函数的描述中,( C)是正确的。
A. 虚函数是一个static存储类的成员函数
B. 虚函数是一个非成员函数
C. 基类中说明了虚函数后,派生类中可不必将对应的函数说明为虚函数
D. 派生类的虚函数与基类的虚函数应具有不同的类型或个数
(3) 关于纯虚函数和抽象类的描述中,(C )是错误的。
A. 纯虚数是一种特殊的虚函数,它没有具体实现
B. 抽象类中一定具有一个或多个纯虚函数
C. 抽象类的派生类中一定不会再有纯虚函数
D. 抽象类一般作为基类使用,使纯虚函数的实现由其派生类给出
(4) 以下一种类中,( A)不能建立对象。
A. 抽象类
B. 派生类
C. 虚基类
D. 基类
(5)下列函数中不能重载的是( C )。
A)成员函数 B)非成员函数 C)析构函数 D)构造函数
(6)下列描述中,抽象类的特征有( D )。
A)可以说明虚函数 B)可以构造函数重载 C)可以定义友员函数 D)不能说明其对象(7)下列不属于动态联编实现的条件有( D )。
A)要有说明的虚函数。
B)调用虚函数的操作是指向对象的指针或者对象引用:或者是由成员函数调用虚函数。C)子类型关系的确立。
D)在构造函数中调用虚函数。
(8)派生类中对基类的虚函数进行替换时,派生类中说明的虚函数与基类中的被替换的虚
函数之间不要求满足的是( C )。
A)与基类的虚函数具有相同的参数个数。
B)其参数的类型与基类的虚函数的对应参数类型相同。
C)基类必须定义纯虚函数。
D)其返回值或者与基类的虚函数相同,或者都返回指针或引用,并且派生类虚函数所返回的指针或引用的基类型是基类中被替换的虚函数所返回的指针或引用的基类的子类型。(9)下列关于抽象类说法正确的是:( B )
A)抽象类处于继承类层次结构的较下层。 B)抽象类刻画了一组子类的操作通用接口。C)抽象类可以作为类直接使用。 D)抽象类可以直接定义对象。
(10)下列关于虚析构函数说法不正确的是( B )。
A)在析构函数前加上关键字virtual,就说明了虚析构函数。
B)如果一个基类的析构函数说明为虚析构函数,则它的派生类中的析构函数须用virtual 关键字说明后才是虚析构函数。
C)说明虚析构函数的目的在于使用delete删除一个对象时,能保证析构函数被正确地执行。D)设置虚函数后,可以采用动态联编的方式选择析构函数。
(11)编译时多态性通过使用( B )获得。
A)继承 B)虚函数 C)重载函数 D)析构函数
(12)可以使用( A )来阻止基类的成员函数调用派生类中的虚函数。
A)成员名限定 B)指针 C)引用 D)关键字virtual
(13)抽象类应该含有( D )。
A)至多一个虚函数 B)至多一个虚函数是纯虚函数
C)至少一个虚函数 D)至少一个虚函数是纯虚函数
(14)一个抽象类可以说明为( A )。
A)指向抽象类对象的指针 B)类成员数据 C)抽象类的对象 D)数组元素(15)对于抽象类的使用需要注意的地方,下列不正确的说法是:( C )
A)抽象类只能用作其它类的基类,不能建立抽象类对象。
B)抽象类不能用作参数类型,函数返回类型或显式转换的类型。
C)定义抽象类时至少要定义一个虚函数。
D)可以说明指向抽象类的指针和引用,此指针可以指向它的派生类,进而可以实现多态性。(16)关于动态联编的说法,下列哪个不正确( C )
A)动态联编只能通过指针或引用标识对象来操作虚函数。
B)C++使用虚函数来指定哪些函数需要用动态联编方式处理。
C)动态联编不能实现静态类型检查。
D)动态联编能够在运行时根据其类型确认调用哪个函数。
(17)将一个类的成员函数尽可能地设置成虚函数总是有益的,下列设置虚函数必须注意的情况中,哪个是错误的( D )
A)只有类的成员函数才能说明为虚函数。 B)静态成员函数不能是虚函数。
C)构造函数不能是虚函数。 D)析构函数不能是虚函数。
(18)在派生类中重新定义虚函数时必须在( A )方面与基类保持一致。
A)参数个数 B)赋值 C)参数名字 D)操作内容
(19)以下哪个基类中的成员函数表示纯虚函数( C )。
A)virtual void vf(int) B)void vf(int)=0; C)virtual void vf( )=0 D)virtual void vf(int){}
(20)通过一个对象调用虚函数时,C++系统对该调用采用( B )。
A)动态联编 B)静态联编 C)不确定是哪种联编 D)函数重载
参考答案:CCCAC DDCBB BADAC CDACB
二.判断正误
(1) 函数参数个数和类型都相同,只是返回值类型不同,这不是重载函数。(×)
(2)虚函数是为实现某种功能而假设的函数,派生类的虚函数定义影响其基类,而基类的虚函数定义不影响其派生类。(×)
(3)可以在类的内部说明虚函数,这时就可以定义一个虚的内联函数。(√)
(4)空的虚函数与纯虚函数都没有函数体,因此空的虚函数与纯虚函数在概念上是一样的,只是叫法不一样。(×)