




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一选择题 1、面向对象程序设计中的数据隐藏指的是(D )。 A. 输入数据必须输入保密口令B.数据经过加密处理 C.对象内部数据结构上建有防火墙D.对象内部数据结构的不可访问性 2、 下列关于类的访问权限的描述中,错误的是(D ).。 A. 说明为公有的成员可以被程序中的任何代码访问 B. 说明为私有的成员只能被类的成员和说明为友元类的成员函数访问 C. 说明为保护的成员,除了能被本身的成员函数和说明为友元类的成员函数访问外,该类的 派生类的成员也可以访问 D. 类的所有成员都可以被程序中的任何代码访问 3、C中对于类中定义的成员,其默认的访问权限为(C )。 A. PublicB. Prot
2、ectedC. PrivatD. Static 4、 C+对C语言作了很多改进,即从面向过程变成为面向对象的主要改进是(D ) A. 增加了一些新的运算符B.允许函数重载,并允许设置缺省参数 C.规定函数说明符必须用原型D.引进了类和对象的概念 5、已知类A中的一个成员函数的说明如下: 义是(C )。 void Set(A 则该函数的参数“ A ”语句时将自动调用该类的(B )。 A.带参构造函数 B.无参构造函数 C.拷贝构造函数D.赋值重载函数 28、 假定一个类的构造函数为“ A(i nt aa, i nt bb) a=aa; b=aa*bb;,则执行 “ A x(4,5); ”语句后,
3、x.a和x.b的值分别为(C )。 A. 4 和 5 B. 5 和 4 C. 4 和 20 D. 20 和 5 29、 假定AB为一个类,则(B )为该类的拷贝构造函数的原型 说明。 A. AB(AB x); B.AB(AB C. void AB(AB D. AB(int x); 30、 假定一个类的构造函数为“ B(int ax, int bx): a(ax), b(bx) ”,执行 “B x(1,2),y(3,4);x=y; ”语句序列后 x.a 的值为(C )。 A. 1 B. 2 C. 3 D. 4 31、假定一个类AB只含有一个整型数据成员 a,当用户不定义任何构造函数时,系统为该
4、类定义的无参构造函数为(D )。 A. AB() a=0;B. AB(i nt aa=0): a(aa) C. AB(i nt aa): a(aa) D. AB() 对于任一个类,用户所能定义的构造函数的个数至多为 B. 1C. 2D.任意个 对于任一个类,用户所能定义的析构函数的个数至多为 B. 1C. 2D.任意个 假定一个类对象数组为An,当离开它定义的作用域时, 32、 A. 0 33、 A. 0 34、 的次数为(C )。 A. 0 B. 1C. n D. n-1 35、假定 AB为一个类,则执行“ AB a, b(2),c3, *p= 函数的次数为(A )。 A. 5 B. 6 C
5、. 3 D. 4 36、对类对象成员的初始化是通过构造函数中给出的 A.函数体 B. 初始化表 C. 参数表 D. 37、对类中常量成员的初始化是通过构造函数中给出的 A.函数体 B. 参数表 C. 初始化表 D. 系统自动调用该类析构函数 ”语句时共调用该类无参构造 实现的。 B ) 初始化表或函数体 (C )实现的。 初始化表或函数体 38、 对于下面定义的类MyClass,在函数f()中将对象成员n的值修改为50的语句(划线 处)应该是(C ) class MyClass public: MyClass(i nt x) n=x; 39、 A. C. void SetValue(i nt
6、n1) n=n1; private: int n; ; int f() MyClass *ptr= new MyClass(45); A. MyClass(50) B. SetValue(50)C. 假定AB为一个类,则执行 动态分配一个数组B. 静态分配一个数组D. ptr - SetValue(50) D.ptr - n=50 “AB *px=new ABn; ”语句时将(A )。 动态分配一个对象 静态分配一个对象 40、设px是指向一个类对象的指针变量,则执行 “delete px; ”语句时,将自动调用该 类的(C )。 A.无参构造函数 B.带参构造函数C.析构函数D.拷贝构造函数
7、 41、通常,拷贝构造函数的参数 是(B )。 A.某个对象名B. 某个对象的引用名 C.某个对象的成员名D.某个对象的指针名 42、 拷贝(复制)构造函数的作用是(C )。 A.进行数据类型的转换B.用对象调用成员函数 C.用对象初始化对象D.用一般类型的数据初始化对象 43、 一个类的静态数据成员所表示属性(C )。 A.是类的或对象的属性B.只是对象的属性 C.只是类的属性D.类和友元的属性 44、 静态成员函数对类的数据成员访问(B )。 A.是不允许的B.只允许是静态数据成员 C.只允许是非静态数据成员D.可允许是静态数据成员或非静态数据成员 45、静态数据成员的初始化是在(D )中
8、进行的。 A.构造函数B.任何成员函数C. 所属类 D. 全局区 46、引入友元的主要目的是为了( C )。 A增强数据安全性B.提高程序的可靠性C.提高程序的效率和灵活性D.保证类的封装性 47、 从一个基类派生出的各个类的对象之间(C )。 A. 共享所有数据成员,每个对象还包含基类的所有属性 B. 共享部分数据成员,每个对象还包含基类的所有属性 C. 不共享任何数据成员,但每个对象还包含基类的所有属性 D. 共享部分数据成员和函数成员 48、如果是类B在类A的基础上构造,那么,就称( B )。 A.类A为基类或父类,类 B为超类或子类 B. 类A为基类、父类或超类,类B为派生类或子类 C
9、. 类A为派生类,类B为基类 D. 类A为派生类或子类,类 B为基类、父类或超类 49、C+的继承性允许派生类继承基类的( C )。 A. 部分特性,并允许增加新的特性或重定义基类的特性 B. 部分特性,但不允许增加新的特性或重定义基类的特性 C. 所有特性,并允许增加新的特性或重定义基类的特性 D. 所有特性,但不允许增加新的特性或重定义基类的特性 50、派生类的成员函数可以直接访问基类的( B )成员。 A.所有 B.公有和保护C.保护和私有D. 私有 51、 对于公有继承,基类的公有和保护成员在派生类中将(D ) 成员。 A.全部变成公有 B.全部变成保护 C.全部变成私有D.仍然相应保
10、持为公有和保护 52、 在定义一个派生类时,若不使用保留字显式地规定采用何种继承方式,则默认为(A ) 方式。 A.私有继承B.非私有继承 C.保护继承D.公有继承 53、若类A和类B的定义如下: class A int i,j; public: int geti()return i; ; class B: public A int k; public: void make()k=i*j; ; 则上述中,(A )是非法的表达式。 A. k=i*j B. i nt k;C. return i; D. void make(); 54、在下面的表达式中,不表示虚继承的是( C )。 A. virtu
11、al publicB.public virtual C. PublicD. Virtual 55、设置虚函数的声明中,正确的是( B )。 A.简化程序B.消除二义性C.提高运行效率 D. 减少目标代码 56、下列虚基类的声明中,正确的是(D )。 A. class virtual B: public AB. virtual class B: public A C. class B: public A virtualD. class B: virtual public A 57、下面描述中,正确的是( A )。 A. virtual可以用来声明虚函数 B. 含有纯虚函数的类是不可以用来创建对象
12、的,因为它是虚基类 C. 即使基类的构造函数没有参数,派生类也必须建立构造函数 D. 静态数据成员可以通过成员初始化列表来初始化 58、如果一个类至少有一个纯虚函数,那么就称该类为(A )。 A.抽象类 B.虚函数 C.派生类 D.以上都不对 59、 下列运算符中,(A)运算符在C+中不能重载。 A. ?:B. C. newD. ”是该类中一个成员函数的原型,则在类外定义时 的函数头为。AA* AA:abc() 17、成员函数的参数表在类作用域中,成员函数的返回值类型 类作用域中。不在 18、为了避免在调用成员函数时修改对象中的任何数据成员,则应在定义该成员函数时, 在函数头的后面加上关键字。
13、con st 19、若只需要通过一个成员函数读取数据成员的值,而不需要修改它,则应在函数头的后 面加上关键字。con st 20已知一个类的定义如下: #in clude class AA int a10; int n; public: void SetA(i nt aa, i nt nn); / / 用数组aa初始化数据成员a, 用nn初始化数据成员n int MaxA(); / void SortA(); / / void In sertA(); void PrintA(); / 从数组a中前n个元素中查找最大值 采用选择排序的方法对数组a中前n个元素 进行从小到大排序 采用插入排序的方法
14、对数组a中前n个元素进行从小到大排序 依次输出数组a中的前n个元素 ; 该类中MaxA()函数的实现如下,请在标号位置补充适当的内容。 int(1) int x=aO; for(i nt i=1; ix) (2)_; (3); 21、 一个类的 函数实现对该类对象的初始化功能。构造 22、 当用户为一个类定义有 时,则系统不会为该类再自动生成一个默认构造函 数。构造函数 23、 假定用户没有给一个名为AB的类定义构造函数,则系统为其定义的构造函数为 。AB() 24、程序填空 class A int a; public: A() a=0; (1) / ; mai n() (2); / (3)_
15、; / 定义构造函数,用参数 aa初始化数据成员a 定义类A的指针对象p 用p指向动态对象并初始化为整数5 解答:(1)A(int aa):a(aa)(2) A *p(3)p=new A(5) 25、假定AB为一个类,则类定义体中的“AB(AB x); ”语句为该类 的原型 语句。拷贝构造函数 26、一个类的 函数通常用于实现释放该类对象中指针成员所指向的动态存储空 间的任务。析构 27、定义类动态对象数组时,其元素只能靠自动调用该类的 来进行初始化。 无参构造函数 28、在一个类中定义拷贝构造函数的目的,是为了当利用该类的一个对象初始化另一个对 象时,。能够避免这两个对象的同一指针同时指向同
16、一块 29、#in clude #i nclude class A int *a; int n; int MaxLe n; public: A(): a(0), n(0), MaxLe n(0) A(i nt *aa, i nt nn, int MM) n=nn; MaxLe n=MM; if(n MaxLe n) exit(1); (1); /由a指向长度为 for(i nt i=0; in; i+) ai=aai; A() delete a; int GetValue(i nt i)/ ; void mai n() int b10=1,2,3,4,5,6,7,8,9,10; A r(b,1
17、0,10); int i,s=0; for(i=0; i10; i+); _ / / couts=se ndl; MaxLen的动态数组 函数体返回ai的值 把r对象的a数据成员中的每个 元素值依次累加到 s中 解答:(1) a=new in tMaxLe n (2) return ai; (3) s+=r.GetValue(i) 30、在下面一段类定义中,Derived类公有继承了基类Base。需要填充的函数由注释内 容给出了功能。 class Base private: int mem1,mem2; /基类的数据成员 public: Base(i nt m1, int m2) mem1=m
18、1; mem2=m2; void output()coutmem1 mem2 ; /. ; class Derived: public Base private: in t mem3;/派生类本身的数据成员 public: / 构造函数,由m1和m2分别初始化 mem1和mem2由m3初始化 mem3 Derived(i nt m1,i nt m2, i nt m3); / 输出mem1,mem和mem3数据成员的值 void output() (1); coutmem3e ndl; /. ; Derived:Derived(i nt m1,i nt m2, i nt m3):; 解答:(1)
19、 Base:output() (2) Base(m1,m2) (3) mem3=m3 31、已知一维数组类 ARRAY的定义如下,ARRAY与普通一维数组区别是:其重载的运算符 要对下标是否越界进行检查。 class ARRAY int *v;/指向存放数组数据的空间 int s;/数组大小 public: ARRAY(i nt a, i nt n); ARRAY()delete v; int size() retur n s; int ; (1)operator(i nt n) /的运算符成员函数定义 if(n0 | _) cerr=s(3) vn(或 *(v+n) 32、当保护继承时,基类
20、的成员在派生类中成为保护成员,派生类对象不能直 接访问基类的 成员。公有和保护、任何 33、 基类和派生类的关系称为 。 继承 34、 特殊类的对象拥有其一般类的全部属性与操作,称特殊类 了一般类。继承 35、 如果一个派生类只有一个唯一的基类,则这样的继承关系称为。单继承 36、C+支持两种多态性: 时的多态性和 时的多态性。编译、运行 37、在C+中,编译时的多态性是通过 实现的,而运行时的多态性则是通过 实现的。重载、 虚函数 38、派生类的成员函数可以直接访问基类的成员,不能直接访问基类 的 成员。公有和保护、私有 三程序阅读题 以下各题均要求写出程序的运行结果 1、#include
21、using n amespace std; class MyClass public: void DisplayMessage(c onst char*Text,i nt Type) coutMessage:Text=Text; coutText=Type+10e ndl; void DisplayMessage(c onst char*Text, un sig ned int Type) coutMessage:Text=Text; coutText=Typee ndl; ; void mai n() un sig ned char value=0; MyClass my; my.Displ
22、ayMessage(Hello,value); 解答:Message:Text=HelloText=10 2、#in clude class CE private: int a,b; int getmax() retur n (ab? a:b); public: int c; void SetValue( int x1,i nt x2, i nt x3) a=x1; b=x2; c=x3; int GetMax(); ; int CE:GetMax() int d=getmax(); return (dc? d:c); void mai n() int x=5,y=12,z=8; CE ex,
23、 *ep= ex.SetValue(x,y,z); coutex.GetMax()SetValue(x+y,y-z,20); coutGetMax()e ndl; 解答:1220 3、#include using n amespace std; class MyClass int a,b; public: MyClass(i nt x=0,i nt y=0); MyClass(); ; MyClass:MyClass(i nt x,i nt y):a(x),b(y) coutThis is a con structor!a+b=a+be ndl; MyClass:MyClass() coutT
24、his is a destructor!e ndl; void mai n() MyClass x,y(10,20),z(y); 解答: This is a con structor!a+b=0 This is a con structor!a+b=30 This is a destructor! This is a destructor! This is a destructor! 4、#include class A int a,b; public: A() a=b=0; A(i nt aa, int bb) a=aa; b=bb; int Sum() retur n a+b; int*
25、Mult() int *p=new in t(a*b); return p; ; void mai n() int *k; A x(2,3), *p; p=new A(4,5); coutx.Sum() *(x.Mult()e ndl; coutSum() Mult()e ndl; delete k; 解答:5 6 9 20 5、#inelude class Base int i; public: Base(i nt n )cout C on stuct ing base class en dl;i=n; Base()cout Destruct ing base class en dl; vo
26、id showi()cout i ,; int Geti()return i; ; class Derived:public Base int j; Base aa; public: Derived(i nt n ,i nt m,i nt p):Base(m),aa(p) cout Con struct ing derived class e ndl; j=n; Derived()cout Destruct ing derived classe ndl; void show()Base:showi(); cout j, aa.Geti() en dl; ; void mai n() Deriv
27、ed obj(8,13,24); obj.show(); 解答:派生类的构造函数的执行次序,先调用基类的构造函数,再调用派生类中子对象类的 构造函数,最后调用派生类的构造函数。析构函数的执行次序与构造函数正好相反,先调用 派生类的析构函数,再调用派生类中子对象类的析构函数,最后调用基类的析构函数。 运行结果: Con stuct ing base class Con stuct ing base class Con struct ing derived class 13,8,24 Destruct ing derived class Destruct ing base class Destru
28、ct ing base class 6、#include using n amespace std; class BO public: virtual void display()coutB0:display()e ndl; BO()coutBO called.n; BO()coutBO called.n; ; class B1: public BO public: void display()coutB1:display()e ndl; B1()coutB1 called.n; B1()coutB1 called.n; ; class D1: public B1 public: void display()coutD1:display()e ndl; D1()coutD1 called.n; D1()coutdi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨国贸易开庭授权委托书范文
- 猪肉旅游纪念品创新创业项目商业计划书
- 红薯粉丝制造创新创业项目商业计划书
- 乒乓球拍专业清洗套装创新创业项目商业计划书
- 商业租赁中介创新创业项目商业计划书
- 中式面点速食产品创新创业项目商业计划书
- 半导体芯片定制化服务创新创业项目商业计划书
- 离婚协议书范文亲子抚养
- 城市居民家庭情况调查报告范文
- 小学四年级阅读教学创新计划
- 《先进制造技术与新材料》课件
- 2025配电网节能改造项目效益提升计算导则
- 《高热惊厥的急救》课件
- 2025年广西桂林市象山区社区工作者招聘10人历年高频重点提升(共500题)附带答案详解
- 中等职业学校医疗设备安装与维护专业教学标准
- 信用卡案件实务培训
- 《外存储设备》课件
- 城市排水设施安全检查与维护规定
- DB32T 2060-2024 单位能耗限额
- 装配式建筑(含吊装)专项施工方案
- 院前及创伤气道管理
评论
0/150
提交评论