习题七--类和对象
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
类和对象
一、选择题
1.下列有关类的说法不正确的是()。
A.对象是类的一个实例
B.任何一个对象只能属于一个具体的类
C.一个类只能有一个对象
D.类与对象的关系和数据类型与变量的关系相似
2.下列表达方式正确的是()。
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;} } 3.下列有关类的说法不正确的是()。 A.类是一种用户自定义的数据类型 B.只有类中的成员函数或类的友元函数才能存取类中的私有数据 C.在类中(用class定义),如果不作特别说明,所有的数据均为私有数据 D.在类中(用class定义),如果不作特别说明,所有的成员函数均为公有数据4.以下有关类与结构体的叙述不正确的是( ) A. 结构体中只包含数据;类中封装了数据和操作 B. 结构体的成员对外界通常是开放的;类的成员可以被隐藏 C. 用struct不能声明一个类型名;而class可以声明一个类名 D. 结构体成员默认为public;类成员默认为private 5.以下有关类和对象的叙述不正确的是( ) A. 任何一个对象都归属于一个具体的类 B. 类与对象的关系和数据类型与变量的关系相似 C. 类的数据成员不允许是另一个类的对象 D. 一个类可以被实例化成多个对象 6.设有定义: class person { int num; char name[10]; public: void init(int n, char *m); ... }; person std[30]; 则以下叙述不正确的是( ) A. std是一个含有30个元素的对象数组 B. std数组中的每一个元素都是person类的对象 C. std数组中的每一个元素都有自己的私有变量num和name D. std数组中的每一个元素都有各自的成员函数init 7.设有以下类的定义: class Ex { int x; public: void setx(int t=0); }; 若在类外定义成员函数setx(),以下定义形式中正确的是( ) A. void setx(int t) { ... } B. void Ex::setx(int t) { ... } C. Ex::void setx(int t) { ... } D. void Ex::setx(){ ... } 8.对于类中定义的成员,其默认的访问权限为()。 A.public B. protected C.private D. static 9.为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为()。 A.public B. protected C.private D. static 9.通过指向对象的指针访问对象成员的一般形式是()。 A 指针名.成员名 B 指针名->成员名 10.访问权限只限于类成员访问是()。 A 私有成员 B 公有成员 11. 在C++中,函数原型不能标识( ) A.函数的返回类型 B.函数参数的个数 C.函数参数类型 D.函数的功能 12. 在C++程序中,对象之间的相互通信通过( ) A.继承实现 B.调用成员函数实现 C.封装实现 D.函数重载实现 13. 对于任意一个类,析构函数的个数最多为( ) A.0 B.1 C.2 D.3 14.下面说法正确的是( ) A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C.类的内联函数必须在类体内定义 D.类的内联函数必须在类体外通过加关键字inline定义 二、填空题 1.类的成员函数可以在定义,也可以在定义。 2.类是用户定义的类型,具有类类型的变量称作__________。 3.用于定义C++的类型的关键字有____________、_______和。 4.利用“对象名.成员变量”形式访问的对象成员仅限于被声明为的成员;若要访问其他成员变量,需要通过函数或函数。 5.OOP技术由、、方法、消息和继承五个基本的概念所组成6.引入类定义的关键字是。类的成员函数通常指定为,类的数据成员通常指定为。指定为的类成员可以在类对象所在域中的任何位置访问它们。通常用类的成员表示类的属性,用类的成员表示类的操作。 7.类的访问限定符包括、和。私有数据通常由函数来访问(读和写)。这些函数统称为。 8.通常在逻辑上,同一类的每个对象都有代码区,用以存储成员函数。而在物理上通常只有代码区。只有在定义,并的函数和加了关键字的函数例外。 9.无论是什么继承方式,派生类的成员不能访问基类_________属性的成员。10.表达式cout< 11.C++中语句const char * const p=〃hello〃;所定义的指针p和它所指的内容都不能被_______。 12.假定AB为一个类,则语句AB(AB&x);为该类_________函数的原型说明。13.说明常成员函数时,关键字const写在成员函数的_________和_________之间。14.在C++中,访问一个对象的成员所用的运算符是_________,访问一个指针所指向的对象的成员所用的运算符是_________。 三、写出以下程序的结果 1. #include class Sample { int x,y; public: Sample(){x=y=0;} Sample(int a,int b){x=a;y=b;} ~Sample() { if(x==y) cout<<"x=y"< else cout<<"x!=y"< } void disp() { cout<<"x="< void main() { Sample s1(2,3); s1.disp(); } 2. #include { int x; public: Sample(int a) { x=a; cout<<"constructing object:x="< void func(int n) { static Sample obj(n); } void main() { func(1); func(10); } 3. #include