当前位置:文档之家› 《面向对象程序设计》练习题库-2021版

《面向对象程序设计》练习题库-2021版

《面向对象程序设计》练习题库-2021版《面向对象程序设计》练习题库-2021版一、选择题1.假定p所指对象的值为5,p+1所指对象的值为8,则执行“(*p)++;”语句后,p所指对象的值为()A.5B.9C.6D.82.下面关于对象的描述中,不正确的是()A.对象是一种数据类型B.对象可大可小C.对象具有属性和行为两个要素D.对象是一种客观存在3.面向对象的程序是()的组合.A.数据结构+算法B.对象+方法C.对象+消息D.对象+算法4.以下不属于面向对象的程序设计语言的是()A.C#B.C++C.JavaD.C5.下面关于构造函数的说法,不正确的是()A.构造函数没有返回值B.构造函数不能重载C.构造函数名称一定要和类名一致D.构造函数的参数可以缺省6.下面有关内置函数说法不正确的是()A.提高执行效率B.增加目标代码长度C.与带参宏定义效果一样D.用于规模小且使用频繁场合7.以下不属于C++关键字的是()A.mutableB.classC.endlD.static8.下列关于类和对象的叙述中,错误的是()A.可以用一个类定义多个对象B.类比对象大,包含对象C.类是对某一类对象的抽象D.对象是类的具体实例9.下面关于常变量的描述中,不正确的是()A.用const定义常变量B.指向常变量的指针即是常指针C.常变量是不能改变值的变量D.常成员函数不能修改数据成员10.假定A为一个类,a为该类私有的数据成员,Get()为该类公有的函数成员,它返回a的值。

现有如下语句At,*p=t;,则得到t对象中数据成员a的语句为()A.p.Get();B.t.a;C.p-Get();D.t-a;11.自减运算符的重载中,函数形参是int,意味着()A.编译不通过B.后置自减C.前置自减D.2个参数12.下列语句中,不能定义一个常量的是()A.#definedoublePI=3.1414926B.constdoublePI=3.1415926;C.#definePI3.1415926D.conststaticdoublePI=3.1415926;13.如果一个类没有定义任何构造函数,下列描述正确的是()A.该类也就不定义析构函数B.编译器创建一个不带参数的构造函数C.该类不能通过编译D.编译器创建一个带参数的构造函数14.对于语句couta;,下列描述中不正确的是()A.“cout”是一个输出流对象B.该语句输出了a的值C.“”称作提取运算符D.该语句需要头文件iostream15.C++中,下面对结构体和类之间关系的描述中,正确的是()A.类中的默认权限是私有的,而结构体中默认权限是公有的B.类有函数成员,而结构体没有C.类有构造函数,而结构体没有D.类的成员可以定义为私有权限,而结构体成员不能定义为私有权限16.下面关于友元的说法,不正确的是()A.友元函数可以是成员函数B.友元类的函数均是友元函数C.友元不具备传递性D.友元的关系是双向的17.下面有关内置函数说法不正确的是()A.提高执行效率B.增加目标代码长度C.与带参宏定义效果一样D.用于规模小且使用频繁场合18.下面那个描述常成员函数的定义是正确的()A.constintshow()B.intconstshow()C.intshow()constD.intshow(const)19.已有定义virtualintarea()=0;下面关于该函数的解释中正确的是()A.该函数是纯虚函数B.该函数返回值为0C.该函数通常在派生函数中声明D.该函数的入口地址为020.下面哪个特性是C++相对于C所特有的()A.使用了引用的定义B.使用static关键字C.使用const关键字D.使用了指针的定义21.下列关于C++中运算符重载的描述中,错误的是()A.运算符重载可以对所有的运算符进行重载B.重载的运算符,其运算对象可以是自定义的数据类型C.运算符重载不能改变运算符的优先级D.运算符的重载实质上是函数的重载22.通过()方法可以在现有类基础上得到新的类。

A.引用B.继承C.包含D.封装23.关于赋值运算符,下面哪个说法不成立()A.必须是类成员函数B.不能被派生类继承;C.不能进行运算符重载D.编译器可以自动生成;24.下面关于构造函数的说法,不正确的是()A.构造函数不能重载B.构造函数没有返回值C.构造函数名称一定要和类名一致D.构造函数不能做虚函数25.下面属于一个C++程序头文件部分的是()A.类的声明B.类的实现C.类的使用D.类的编译26.下面关于cin的说明中,不正确的是()A.是一个对象B.是一个关键字C.用于输入D.配合提取运算符使用27.下面有关类的静态成员函数说法正确的是()A.可以访问非静态成员;B.只能访问静态成员;C.可以是对象的一部分;D.在定义时也要加上static;28.自减运算符的重载中,函数形参是int,意味着()A.编译不通过B.后置自减C.前置自减D.2个参数29.下面有关常成员函数不正确的说法是()A.只能访问常数据成员B.不能修改任何数据成员C.可以访问任何数据成员D.可以修改一般数据成员30.对类的常数据成员进行初始化,正确的是()A.在构造函数中赋值;B.利用公有接口函数对其赋值;C.利用成员初始化表;D.无法初始化,默认为0;31.派生类的私有函数成员不可以访问基类的()成员。

A.私有成员B.公用成员C.保护成员D.任何成员32.作为类的成员函数重载一个运算符时,如果参数表中有一个参数,通常情况下,说明该运算符有()个操作数A.0B.1C.2D.333.C++代码源文件的扩展名应为()A.cB.cppC.objD.exe34.若在类外可用x.p的形式访问派生类对象x的基类成员p,则p一定是()A.私有继承的公用成员B.公有继承的公用成员C.保护继承的公用成员D.公有继承的保护成员35.C++语言相对于C语言的最根本的变化是()A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.引进了类和对象的概念D.输入输出使用流对象36.下面属于一个C++程序头文件部分的是()A.类的实现B.类的声明C.类的对象实例D.类的编译37.设置虚基类的目的是()A.消除二义性B.方便程序书写C.减少目标代码体积D.提高运行效率38.静态成员函数一定没有()A.返回值B.返回类型C.指针参数D.*this39.下面关于友元的说法,不正确的是()A.友元函数可以是成员函数B.友元类的函数均是友元函数C.友元的关系是双向的D.友元不具备传递性40.下面有关类的静态成员函数说法正确的是()A.可以访问非静态成员;B.只能访问静态成员;C.可以是对象的一部分;D.在定义时也要加上static;41.以下运算符不能进行运算符重载的是()A.*=B.sizeofC.=D.42.在编译时,将所调用的函数代码嵌入到主调函数中,这种函数称为()A.内置函数B.子函数C.成员函数D.宏函数43.下面有关常成员函数不正确的说法是()A.只能访问常数据成员B.不能修改任何数据成员C.可以访问任何数据成员D.不能访问一般数据成员44.派生类的私有函数成员不可以访问基类的()成员。

A.私有成员B.公用成员C.保护成员D.任何成员45.下列关于函数模板与类模板的描述中,不正确的是()A.函数模板的实例化是由编译程序在处理函数调用时自动完成B.类模板的实例化必须由程序员在程序中显式的指定C.函数模板与类模板均可以显式调用D.定义函数模板时可以使用多个类型参数,而类模板不可以46.下列不属于类定义中的访问限定符的是()A.privateB.publicC.constD.protocted47.以下说法中,不正确的是()A.基类的析构函数不能被继承B.基类的构造函数可以被继承;C.静态成员函数只能访问静态数据成员;D.静态函数不能声明为虚函数;48.若在类外可用x.p的形式访问派生类对象x的基类成员p,则p一定是()A.私有继承的公用成员B.公有继承的保护成员C.保护继承的公用成员D.公有继承的公用成员49.下面与实现多态性无关的概念是()A.虚基类B.虚函数C.抽象类D.纯虚函数50.假定p所指对象的值为6,p+1所指对象的值为8,则执行“(*p)++;”语句后,p所指对象的值为()A.6B.9C.7D.8二、填空题1.C++中,专门用于定义重载运算符的关键字是。

2.假定用户没有给一个名为BASE的类定义析构函数,则系统为其定义的默认析构函数写法为。

3.在C++中,继承间接共同基类时只保留一份成员的方法是。

4.继承关系可以是public、和。

5.常数据成员只能通过构造函数的初始化。

6.派生类与其基类均有定义intb;则派生类中访问的b是在中的定义。

7.常对象中的数据成员必须通过_________函数才可以访问。

8.对象将其大部分实现细节隐藏起来,这种机制称为。

9.通常可将含有纯虚函数的类称为,可用该类作为基类去建立派生类。

10.如果希望类的成员为该类所有对象所共享,可以使用关键字________来修饰。

11.在C++中,由继承而产生的新类,它的对象对同一个消息会作出不同的响应,这种特性被称为。

12.从系统实现角度看,C++中的动态多态性是通过来实现的。

13.在C++中,用于动态分配内存的运算符是。

14.C++支持友元的目的是提高。

15.在类的定义中,如果定义为函数要求派生类必须实现同名函数。

16.在类的定义中,通常用函数对类的数据成员进行初始化。

17.如果希望类的成员为该类所有对象所共享,可以使用关键字____来修饰。

18.在C++中,用struct定义一个类时,数据成员和成员函数的默认访问权限是。

19.常对象中的私有数据成员必须通过才可以访问。

20.重载函数在参数类型或上不同,但函数名相同。

派生类与其基类均有定义intb;则派生类中对b的使用是以的定义为准。

21.已有定义constinta=5;定义一个常指针p指向该变量a的语句是:。

22.语句cinx;中“”称为运算符23.一般的,系统提供的头文件只包括对成员函数的,而不包括对成员函数的定义。

24.要用对象名访问类成员,类成员的权限必须是对象的概念中,有静态和动态两种特征,其中静态特征称为,可由数据表示,而动态特征称为行为,可由表示。

25.在C++中,用定义一个类型时,数据成员和成员函数的默认访问权限是公有的。

26.重载函数在参数个数或上不同,但相同。

27.语句cinx;中“”称为运算符。

28.只能通过构造函数的初始化表初始化。

29.在类定义时,如果在其某个成员后面加上const关键字,则这个成员称为。

30.假定有一个类B,是由类A保护继承而来,有一个类C由A类公开继承而来,根据基类成员在派生类中的访问属性,填写下表。

相关主题