习题1 下载本文

习题一

一、填空题

1、面向对象的程序设计有四大特点,它们是抽象、封装、( 继承 )、( 多态 )。 2、类中的成员使用特定的关键字指定不同的访问特性,其中( 公用 )成员是提供给外部的接口,在类中和类外可见。

3、protected成员的访问权限:派生类( 能 )访问protected成员,派生类对象( 不能 )访问protected成员,本类的对象( 不能 )访问protected成员(填:能与不能)。

4、C++语言中类成员的访问权限包括private、( protected )和( public )。 5、对一个类中的数据成员的初始化可以通过构造函数中的( 函数体 )实现,也可以通过构造函数中的( 初始化列表 )实现。

6、假定AB为一个类,则执行“AB a[10];”语句时,系统自动调用该类的构造函数的次数为( 10 )。

7、假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为( 省缺的构造函数 )。

8、若类X中没有定义拷贝构造函数,则系统为类X定义的默认拷贝构造函数的原型为( X::X(X &x) )。

9、类中的成员只能为该类的成员函数及该类的派生类中的成员函数访问,则应加上访问属性( protected )。

10、假设一个类对象数组为a[m],其中m为常变量,当离开它的作用域时,系统自动调用该类析构函数的次数为( m )。

11、设p为指向一个动态对象的指针变量,则执行delete p语句时,将自动调

1

用该类的( 析构函数 )。

12、在一个类中定义了全部是默认参数的构造函数后,不能再定义( 重载)构造函数。

13、假设有一个Test类,则执行“Test a(5),b[2],*p;”语句时,自动调用该类构造函数的次数为( 3 )。

14、若将类A的成员函数“void fun();”定义为一个类B的友元函数,则应在类B的定义中加一条语句:( friend void A ::fun(); )。

15、当一个对象作用域结束时,系统自动调用(析构 )函数来释放存储空间。 16、对于类中定义的成员,其默认访问权限为(private)。

17、每个对象都有一个指向自身的指针,称为(this)指针,通过使用它来确定其自身的地址。

18、一个类有(1)个析构函数。

19、在类内定义的( private和protected )数据不能被不属于该类的成员函数存取。

20、this指针是一个隐含的指针,它隐含于每个类的(非静态成员函数)中。

二、 选择题

1、以下关于类和对象的叙述错误的是( C )。 A. 对象是类的一个实例

B. 任何一个对象都归属于一个具体的类 C. 一个类只能有一个对象

D. 类与对象的关系和数据类型与变量的关系相似 2、以下关于构造函数的叙述错误的是( C )。

2

A. 构造函数名必须与类名相同

B. 构造函数在定义对象时自动执行 C. 构造函数无任何函数类型

D. 在一个类中构造函数又且仅有一个 3、以下关于析构函数的叙述错误的是( B )。 A. 一个类中只能定义一个析构函数 B. 析构函数和构造函数一样可以有形参 C. 析构函数不允许有返回值

D. 析构函数名前必须冠有符号“~” 4、以下叙述正确的是( A )。

A. 在类中不作特别说明的数据成员均为私有类型 B. 在类中不作特别说明的成员函数均为公有类型 C. 类成员的定义必须放在类体内

D. 类成员的定义必须是成员变量在前,成员函数在后 5、以下叙述不正确的是( C )。

A. 一个类的所有对象都有各自的数据成员,它们共享成员函数 B. 一个类中可以有多个同名的成员函数

C. 一个类中可以有多个构造函数、多个析构函数 D. 类成员的定义必须是成员变量在前,成员函数在后 6、以下不属于构造函数特征的是( D )。 A. 构造函数名与类名相同

B. 构造函数可以重载

3

C. 构造函数可以设置默认参数 D. 构造函数必须指定函数类型

7、下列函数中,是类MyClass的析构函数的是( C)。 A. ~Myclass(); B. MyClass();

C. ~MyClass(); D. ~MyClass(int n);

8、关于类和对象不正确的说法是(C)。 A. 类是一种类型,它封装了数据和操作 B. 对象是类的实例 C. 一个类的对象只有一个 D. 一个对象必属于某个类

9、在类定义的外部,可以被访问的成员有( C )。 A. 所有类成员

B. private或protected的类成员 C. public的类成员

D. public或private的类成员

10、关于this指针的说法错误的是( D )。*******

A. this指针不能被显示说明

B. 当创建一个对象后,this指针就指向该对象 C. 成员函数拥有this指针 D. 静态成员函数拥有this指针

11、下面有关new运算符的描述,错误的是( B )。

A. 使用new运算符创建对象时,会调用类的构造函数 B. 使用new运算符创建数组时,必须定义初始值

4