选择题(类与对象)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一
1:下列有关类的说法不正确的是()。
A.对象是类的一个实例
B.任何一个对象只能属于一个具体的类
C.一个类只能有一个对象
D.类与对象的关系和数据类型与变量的关系相似
答案:C
分析:对象是类的一个实例,类与对象的关系和数据与变量的关系相似,所以一个类可以有多个对象。
2:下面()项是对构造函数和析构函数的正确定义。
A.void X::X(), void X::~X()
B.X::X(参数), X::~X()
C.X::X(参数), X::~X(参数)
D.void X::X(参数), void X::~X(参数)
答案:B
分析构造函数无返回类型、可带参数、可重载;析构函数无返回类型、不可带参数、不可重载。
3:()的功能是对象进行初始化。
A.析构函数 B. 数据成员 C.构造函数 D.静态成员函数
答案:C
分析:当一个对象定义时,C++编译系统自动调用构造函数建立该对象并进行初始化;当一个对象的生命周期结束时,C++编译系统自动调用析构函数注销该对象并进行善后工作;
4:下列表达方式正确的是()。
A.class P{ B. class P{
public: public:
int x=15; int x;
void show(){cout< }; } C. class P{ D. class P{ int f; public: }; int a; f=25; void Seta (int x) {a=x;} 答案:D 分析:在类体内不可对数据成员进行初始化;类定义结束时需用分号;只有类中的成员函数才能存取类中的私有数据。 5:拷贝构造函数具有的下列特点中,()是错误的。 A.如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的 B.拷贝构造函数只有一个参数,并且是该类对象的引用 C.拷贝构造函数是一种成员函数 D.拷贝构造函数的名字不能用类名 答案:D 分析:如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的;拷贝构造函数只有一个参数,并且是该类对象的引用;拷贝构造函数的名字与类同名,并且不被指定返回类型;拷贝构造函数是一种成员函数。 6:关于静态成员的描述中,()是错误的。 A.静态成员可分为静态数据成员和静态成员函数 B.静态数据成员定义后必须在类体内进行初始化 C.静态数据成员初始化不使用其构造函数 D.静态数据成员函数中不能直接引用非静态成员 答案:B 分析:静态成员可分为静态数据成员和静态成员函数;静态数据成员被定义后,必须对它进行初始化,初始化在类体外进行,一般放在该类的实现部分最合适,也可以放在其他位置,例如,放在主函数前面等;静态数据成员初始化与该类的构造函数和析构函数无关;在静态成员函数的实现中,可以直接引用静态成员,但不能直接引用非静态成员。 7:关于友元的描述中,()是错误的。 A.友元函数是成员函数,它被说明在类体内 B.友元函数可直接访问类中的私有成员 C.友元函数破坏封装性,使用时尽量少用 D.友元类中的所有成员函数都是友元函数 答案:A 分析:友元函数是非成员函数,在类体内说明了,在类体外定义,定义和调用等同于一般的普通函数;由于它可以直接访问类的私有成员,因此破坏了类的封装性和隐藏性,尽量少用。 8对类的构造函数和析构函数描述正确的是()。 A.构造函数可以重载,析构函数不能重载 B.构造函数不能重载,析构函数可以重载 C.构造函数可以重载,析构函数也可以重载 D.构造函数不能重载,析构函数也不能重载 答案:A 9类的析构函数的作用是( D )。 A.一般成员函数 B.类的初始化 C.对象初始化 D.删除对象 答案:D 10假设OneClass为一个类,则该类的拷贝初始化构造函数的声明语句为()。 A.OneClass(OneClass p); B. OneClass& (OneClass p); C. OneClass(OneClass & p); D. OneClass (OneClass *p); 答案:C 11下面对于友元函数描述正确的是()。 A.友元函数的实现必须在类的内部定义 B.友元函数是类的成员 C.友元函数破坏了类的封装性和隐藏性 D.友元函数不能访问类的私有成员 答案:C 12对于结构中定义的成员,其默认的访问权限为()。 A.public B. protected C.private D. static 答案:C 13为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为()。 A.public B. protected C.private D. static 答案:A 14下面对静态数据成员的描述中,正确的是()。 A.静态数据成员可以在类体内进行初始化 B.静态数据成员不可以在类体内进行初始化 C.静态数据成员不能受private控制符的作用 D.静态数据成员可以直接用类名调用 答案:C 15下面对静态数据成员的描述中,正确的是()。 A.静态数据成员是类的所有对象共享的数据 B.类的每一个对象都有自己的静态数据成员 C.类的不同对象有不同的静态数据成员值 D.静态数据成员不能通过类的对象调用 答案:A 16下面对于析构函数的描述中不正确的是()。 A、析构函数是内置函数 B、析构函数与类名相同 C、析构函数不能有参数 D、析构函数在对象撤销时自动执行 答案:B 二 1. 下列的各类函数中,不是类的成员函数。( C ) A) 构造函数B) 析构函数C) 友元函数D) 拷贝初始化构造函数 注:可做友元的函数有普通函数和其它类的函数,所以不是本类内的成员函数。 2. 作用域运算符“::”的功能是。( D ) A) 标识作用域的级别的B) 指出作用域的范围的 C) 给定作用域的大小的D) 标识成员是属于哪个类的 注:“::”左边一般为类名,右边一般为成员变量和成员函数,它的功能就是标识是属于哪个类的;如果左边什么都不加,表示全局变量。 3. 下列选项中,是不正确的。( B ) A) 名空间是为了支持大规模程序的逻辑设计、排解名字冲突应运而生的 B) 名空间定义的关键词为typename C) 名空间定义的关键词为namespace D) 因为程序是跨文件的,所以名空间也是跨文件的 4. 是析构函数的特征。( A ) A) 一个类中只能定义一个析构函数B) 析构函数名与类名不同 C) 析构函数的定义只能在类体内D) 析构函数可以有一个或多个参数 5. 下述静态数据成员的特性中,是错误的。( D ) A) 说明静态数据成员时前边要加修饰符static B) 静态数据成员要在类体外进行初始化 C) 引用静态数据成员时,要在静态数据成员前加<类名>和作用域运算符 D) 静态数据成员不是所有对象所共用的 注:静态成员都是隶属于类的,是所有同类对象共享的