当前位置:首页 > C++面向对象技术复习题汇总(含答案)演示教学
精品文档
12、有关类的说法不正确的是( )。 A、类是一种用户自定义的数据类型
B、只有类中的成员函数才能存取类中的私有数据
C、在类中,如果不作特别说明,所有的数据均为私有类型 D、在类中,如果不作特别说明,所有的成员函数均为公有类型 13、在声明类时,下面说法正确的的是( )。 A、可以在类的声明中给数据成员赋初值 B、数据成员的类型可以是register
C、public, private, protected这三种属性的成员可以按任意顺序出现 D、没有用public, private, protected定义的成员是公有成员
14、已知:p是一个指向类A数据成员m的指针,A1是类A的一个对象。如果要给m赋值为
5, ( )是正确的。 A、A1.p=5 B、A1->p=5 C、A1.*p=5 D、*A1.p=5
15、已知:类A中一个成员函数说明如下: void Set(A&a); 其中,A&a的含义是( )。 A、指向类A的指针为a
B、将a的地址值赋给变量Set
C、a是类A的对象引用,用来作函数Set()的形参 D、变量A与a按位相与作为函数Set()的参数 16、下列说明中const char *ptr; ptr应该是( )。 A、指向字符型常量的指针 B、指向字符的常量指针 C、指向字符变量的指针 D、指向字符串的常量指针
17、采用函数重载的目的在于:
A、实现共享 B、减少空间
C、提高速度 D、使用方便,提高可读性 18、有关类和对象的说法下列不正确的是( )。 A、对象是类的一个实例
B、任何一个对象只能属于一个具体的类 C、一个类只能有一个对象
D、类与对象的关系和数据类型和变量的关系相似 19、有以下类的说明,请指出错误的地方()。 Class CSample {
int a=2.5; A CSample(); B public:
CSample(int val); C 精品文档
精品文档
~CSample(); D };
20、在类的定义形式中,数据成员、成员函数和( )组成了类定义体。 A、成员的访问控制信息 B、公有消息 C、私有消息 D、保护消息
二、填空题
1. 通常的拷贝初始化构造函数的参数是_________________ 2. 在C++中函数参数的传递方式有三种,分别是:__________、__________和__________。 3. 任何类中允许有三种访问权限的数据,这三种访问权限分别是__________、__________
和__________。
4. 类中数据成员和成员函数的默认类型为______________
5. 在类内部定义的__________和__________数据不能被不属于该类的成员函数来存取,定
义为__________的数据,可以在类外部进行存取。
6. __________是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员
进行初始化并执行对象的其他内部管理操作。 7. 一个类中有__________个析构函数。
8. __________成员函数中不能直接引用类中说明的非静态成员。 9. 已知类Sample 中的一个成员函数说明如下:
void Set(Sample &a);
其中,Sample &a的含意是_________________
10.静态数据成员属于类,可以使用_______________ 的方式访问静态的数据成员。 11.编译程序将this指针指向_____________。 12.以下程序的执行结果是__________。
# include
Sample () { cout << “constructore” << endl; } };
void fn (int i)
{ static Sample c;
cout << “i=” << i << endl; }
void main () { fn (10) ; fn (20) ; }
13. 以下程序的执行结果是_______________。
# include
精品文档
static int k; public:
sample(int i) { n=i; k++; }; void disp(); };
void sample:: disp ()
{ cout<<\int sample:: k=0; void main ()
{ sample a(10), b(20), c(30) ; a.disp() ; b.disp(); c.disp(); }
14.以下程序的执行结果是_______________
# include
void setx( int i ) { x=i; } int putx( ) { return x; } };
void main ( )
{ sample *p;
sample A [3]; A[0].setx(5); A[1].setx(6); A[2].setx(7);
for (int j=0 ; j<3; j++ ) { p= &A [j] ;
cout<
}
cout< 15.以下程序的执行结果是_______________ #include 精品文档 ~B( ){cout<<\ }; main( ) { A a; B b; return 0; } 第四章 派生类与继承 一、选择 1、 从一个基类派生出的各个类的对象之间 (1) 。 A、共享所有数据成员,每个对象还包含基类的所有属性 B、共享部分数据成员,每个对象还包含基类的所有属性 C、不共享任何数据成员,但每个对象还包含基类的所有属性 D、共享部分数据成员和成员函数 2、 C++的继承性允许派生类继承基类的 (2) 。 A、部分特性,并允许增加新的特性或重定义基类的特性 B、部分特性,但不允许增加新的特性或重定义基类的特性 C、所有特性,并允许增加新的特性或重定义基类的特性 D、所有特性,但不允许增加新的特性或重定义基类的特性 3、 对于公有继承,基类的公有和保护成员在派生类中将 (3) 成员。 A、全部变成公有 B、全部变成保护 C、全部变成私有 D、仍然相应保持为公有和保护 4、建立包含有类对象成员的派生类对象时,自动调用构造函数的执行顺序依次为 (4) 的构造函数。 A、自己所属类、对象成员所属类、基类 B、对象成员所属类、基类、自己所属类 C、基类、对象成员所属类、自己所属类 D、基类、自己所属类、对象成员所属类 5、派生类的对象对其基类中 (5) 可直接访问。 A、公有继承的公有成员 B、公有继承的私有成员 C、公有继承的保护成员 D、私有继承的以有成员 6、设类B是基类A的派生类,并有语句:A aa, * pa=&aa; B bb, * pb=&bb; 则正确 的语句是___(6)__ 。 A、pb=pa; B、bb=aa; C、aa=bb; D、*pb=*pa; 7、在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是 _ (7)__. A、派生类的对象可以赋给基类的对象 B、派生类的对象可以初始化基类的引用 C、派生类的对象可以直接访问基类中的成员 D、派生类的对象的地址可以赋给指向基类的指针 8、若类X和类Y的定义如下: class X { int a,b; public: 精品文档
共分享92篇相关文档