第一部分 习题集
第一章 C++初步知识
一、单项选择题
1.下面关于对象概念的描述中, _______是错误的。
A、对象就是C语言中的结构变量 B、对象代表着正在创建的系统中的一个实体
C、对象是一个状态和操作(或方法)的封装体 D、对象之间的信息传递是通过消息进行的
2.C++对C语言做了很多改进,下列描述中_____ 使得C语言发生了质变,即从面向过程变成面向对象。
A、增加了一些新的运算符 B、允许函数重载,并允许设置默认参数
C、规定函数说明必须用原型 D、引进类和对象的概念
3.下面关于类概念的描述中,_______ 是错误的。
A、类是抽象数据类型的实现 B、类是具有共同行为的若干对象的统一描述体
C、类是创建对象的样板 D、类就是C语言中的结构体类型
4.面向对象程序设计思想的主要特征中不包括_______。
A、封装性 B、多态性 C、继承性 D、功能分解,逐步求精
5.对定义重载函数的下列要求中,_______是错误的。
A、要求参数的个数不同 B、要求参数中至少有一个类型不同
C、要求参数个数相同时,参数类型不同 D、要求函数的返回值不同
6.系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是_______ 。
A、参数个数 B、参数的类型 C、函数名称 D、函数的类型
7.在C++中,关于下列设置参数默认值的描述中,正确的是_______ 。
A、不允许设置参数的默认值
B、设置参数默认值只能在定义函数时设置
C、设置参数默认值时,应该是先设置右边的再设置左边的
D、设置参数默认值时,应该全部参数都设置
8.局部变量可以隐藏全局变量,那么在有同名全局变量和局部变量的情形,可以用_______提供对全局变量的访问。
A、域运算符 B、类运算符 C、重载 D、引用
9.关于new运算符的下列描述中,_______是错误的。
A、它可以用来动态创建对象和对象组 B、使用它创建对象或对象组,可以使用运算符delete删除
C、使用它创建对象时要调用构造函数 D、使用它调用对象组时必须指定初始值
10.用运算符delete删除一个动态对象时_______ 。
A、首先为该动态对象调用构造函数,再释放其占用内存 B、首先释放该动态对象占用的内存,再为其调用构造函数
C、首先为该动态对象调用析构函数,再释放其占用的内存 D、首先释放动态对象占用的内存,再为其调用析构函数
11.有如下函数定义:
void func (int a,int&b) {a++; b++;}
若执行代码段:
int x=0 ,y=1
func(x,y);
则变量x和y值分别是
A)0和1
B)1和1
C)0和2
D)1和2
二、填空题
1.类中允许有3种访问权限的数据,这3种访问权限分别为_______,_______和_______。
2.在C++中,可以把具有相同内部存储结构和相同操作的对象看成属于同一类。在指定一个类后,往往把属于这个类的对象称为类的_______。从语言角度讲,类是一种数据类型,而_______是具有这种类型的变量。
第二章 类和对象
一、单项选择题
1.类成员缺省的访问特征是___。
A. protected B. public C. private D. friend
2.有关类的说法不正确的是___。
A、类是一种用户自定义的数据类型
B、只有类的友元函数和类中的成员函数才能存取类中的私有成员
C、在类中,如果不作特别说明,所指的数据均为私有类型
D、在类中,如果不作特别说明,所指的成员函数均为公有类型
3.有关类和对象的说法不正确的是 _____。
A、对象是类的一个实例
B、一个类只能有一个对象
C、任何一个对象只能属于一个具体的类
D、类与对象的关系和数据类型与变量的关系相似
4.在C++程序中,对象之间的相互通信通过_____。
A、继承实现 B、调用成员函数实现 C、封装实现 D、函数重载实现
5.在类的定义形式中,数据成员、成员函数和_____组成了类定义体。
A、成员的访问控制信息 B、公有消息 C、私有消息 D、保护消息
6.下列关于类的成员的访问特征的描述中,正确的_____。
A.必须首先说明具有私有特征的成员
B.数据成员必须说明成私有的,成员函数必须说明成私有的
C.每个成员前都必须有标明访问特性的关键字
D.在同一类中,说明访问特性的关键字可以多次使用
二、填空题
1.类拥有两类成员,即_______和_________。
2.C++语言中使用函数重载、模板、________等概念来支持多态性。
3. 在类内部定义的 _________ 和 _________数据不能被不属于该类的成员函数来存取,定义为 ________的数据,可以在类外部进行存取。
4.C++规定,当一个成员函数被调用时,系统会自动向它传递一个隐含的参数,该参数是一指向接受该函数调用的对象的指针。这个指针是________指针。
5.访问对象中的成员可以有3种方法:对象名、_______ 和 析构函数的定义_________。
第三章 关于类和对象的进一步讨论
一、单项选择题:
1.下列描述中, ______不是构造函数的特征
A. 构造函数可以重载
B. 必须显示为类定义一个构造函数
C. 无须为构造函数指定返回值类型
D. 构造函数在产生对象时由系统自己调用
2.有关析构函数的说法不正确的是______。
A、析构函数有且仅有一个 B、析构函数和构造函数一样可以有形参
C、析构函数的功能是用来释放一个对象 D、析构函数无任何函数类型
3.下列的各类函数中,______不是类的成员函数。
A、构造函数 B、析构函数 C、友元函数 D、拷贝构造函数
4. 一个类的友元函数能访问该类的_______。
A、私有成员 B、保护成员 C、公有成员 D、所有成员
5. 下列静态数据成员的特性中,________是错误的。
A、说明静态数据成员时前边要加关键字static来修饰
B、静态数据成员在类体外进行初始化
C、引用静态数据成员时,要在静态数据成员前加<类名>和作用域运算符
D、静态数据成员不是所有对象所共有的
6. 类模板的使用实际上是将类模板实例化成一个具体的______。
A、类 B、对象 C、函数 D、模板类
7. 关于常数据成员的说法不正确的是 ______。
A、常数据成员的定义形式与一般常量的定义形式相同,只不过常数据成员的定义必须出现在类体中。
B、常数据成员必须进行初始化,并且不能被更新。
C、常数据成员通过构造函数的成员初始化列表进行初始化。
D、常数据成员可以在定义时直接初始化。
8. 下面关于友元的描述中,错误的是________。
A、友元函数可以访问该类的私有数据成员
B、一个类的友元类中的成员函数都是这个类的友元函数
C、友元可以提高程序的运行效率
D、类与类之间的友元关系可以继承
9. __________是析构函数的特征。
A、析构函数可以有一个或多个参数 B、析构函数定义只能在类体内
C、析构函数名与类名不同 D、一个类中只能定义一个析构函数
10.下面说法正确的是_________。
A、内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B、内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C、类的内联函数必须在类体内定义
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论