




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计习题班级: 学号: 姓名: 名单序号: 成绩: 第2章 类与对象一、选择题(共26分,每题1分)1下列有关类的说法不正确的是( )。A 对象是类的一个实例B 任何一个对象只能属于一个具体的类C 一个类只能有一个对象D 类与对象的关系和数据类型与变量的关系相似2下面( )项是对构造函数和析构函数的正确定义。Avoid X:X(), void X:X()BX:X(参数), X:X()CX:X(参数), X:X(参数)Dvoid X:X(参数), void X:X(参数)3( )的功能是对象进行初始化。 A析构函数 B. 数据成员 C.构造函数 D.静态成员函数4下列表达方式正确的是( )。Aclass P B class Ppublic: public:int x=15; int x; void show()coutx; void show()coutx; ; C class P D. class P int f; public: ; int a; f=25; void Seta (int x) a=x; ;5拷贝构造函数具有的下列特点中,( )是错误的。A 如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的B 拷贝构造函数只有一个参数,并且是该类对象的引用C 拷贝构造函数是一种成员函数D 拷贝构造函数的名字不能用类名6关于静态成员的描述中,( )是错误的。A 静态成员可分为静态数据成员和静态成员函数B 静态数据成员定义后必须在类体内进行初始化C 静态数据成员初始化不使用其构造函数D 静态数据成员函数中不能直接引用非静态成员7关于友元的描述中,( )是错误的。A 友元函数是成员函数,它被说明在类体内B 友元函数可直接访问类中的私有成员C 友元函数破坏封装性,使用时尽量少用D 友元类中的所有成员函数都是友元函数8对类的构造函数和析构函数描述正确的是( )。A. 构造函数可以重载,析构函数不能重载B. 构造函数不能重载,析构函数可以重载C. 构造函数可以重载,析构函数也可以重载D. 构造函数不能重载,析构函数也不能重载9类的析构函数的作用是( D )。A.一般成员函数 B.类的初始化 C.对象初始化 D.删除对象10假设OneClass为一个类,则该类的拷贝初始化构造函数的声明语句为( )。A.OneClass(OneClass p); B. OneClass& (OneClass p);C. OneClass(OneClass & p); D. OneClass (OneClass *p);11下面对于友元函数描述正确的是( )。A.友元函数的实现必须在类的内部定义B.友元函数是类的成员C.友元函数破坏了类的封装性和隐藏性D.友元函数不能访问类的私有成员12对于结构中定义的成员,其默认的访问权限为( )。A.public B. protected C.private D. static13为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为( )。 A.public B. protected C.private D. static14下面对静态数据成员的描述中,不正确的是( )。A.静态数据成员可以在类体内进行初始化B.静态数据成员不可以在类体内进行初始化C.静态数据成员不能受private控制符的作用D.静态数据成员调用前必须初始15下面对静态数据成员的描述中,正确的是( )。A.静态数据成员是类的所有对象共享的数据B.类的每一个对象都有自己的静态数据成员C.类的不同对象有不同的静态数据成员值D.静态数据成员不能通过类的对象调用16下列有关类的说法不正确的是 。A.类是一种用户自定义的数据类型B.只有类中的成员函数或类的友元函数才能存取类中的私有数据C.在类中(用class定义),如果不作特别说明,所有的数据均为私有数据D.在类中(用class定义),如果不作特别说明,所有的成员函数均为公有数据17 以下有关析构函数的叙述不正确的是( )A. 在一个类只能定义一个析构函数 B. 析构函数和构造函数一样可以有形参C. 析构函数不允许用返回值 D. 析构函数名前必须冠有符号“”18 以下有关类与结构体的叙述不正确的是( )A. 结构体中只包含数据;类中封装了数据和操作 B. 结构体的成员对外界通常是开放的;类的成员可以被隐藏C. 用struct不能声明一个类型名;而class可以声明一个类名D. 结构体成员默认为public;类成员默认为private19 以下叙述中不正确的是( )A. 一个类的所有对象都有各自的数据成员,可以共享函数成员B. 一个类中可以有多个同名的成员函数C. 一个类中可以有多个构造函数、多个析构函数D. 在一个类中可以声明另一个类的对象作为它的数据成员20 以下不属于构造函数特征的是( )A. 构造函数名与类名相同 B. 构造函数可以重载C. 构造函数可以设置默认参数 D. 构造函数必须指定函数类型21 以下有关类和对象的叙述不正确的是( )A. 任何一个对象都归属于一个具体的类B. 类与对象的关系和数据类型与变量的关系相似C. 类的数据成员不允许是另一个类的对象D. 一个类可以被实例化成多个对象22 设有定义:class person int num; char name10;public: void init(int n, char *m); .;person std30;则以下叙述不正确的是( )A. std是一个含有个元素的对象数组B. std数组中的每一个元素都是person类的对象C. std数组中的每一个元素都有自己的私有变量num和nameD. std数组中的每一个元素都有各自的成员函数init23 设有以下类的定义: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() . 24 以下关于静态成员变量的叙述不正确的是( )A静态成员变量为类的所有对象所公有B静态成员变量可以在类内任何位置上声明C静态成员变量的赋初值必须放在类外D定义静态成员变量时必须赋初值25 定义静态成员函数的主要目的是( )A方便调用 B有利于数据隐藏C处理类的静态成员变量 D便于继承26 以下叙述不正确的是( ),使用静态数据成员: A可以节省内存空间 B是为了解决数据共享问题C可以直接用类名来引用 D可以提高序运算速度二、填空题(共18分,每题1分)1设有如下程序结构:class Box ;void main()Box A,B,C; 该程序运行时调用 次构造函数;调用 次析构函数。2设A为test类的对象且赋有初值,则语句test B(A); 表示 。3利用“对象名.成员变量”形式访问的对象成员仅限于被声明为 的成员;若要访问其他成员变量,需要通过 函数或 函数。4 OOP技术由 、 、方法、消息和继承五个基本的概念所组成。5类的成员函数可以在 定义,也可以在 定义。6类test的构造函数是和_同名的函数,析构函数名是 。7类是用户定义的类型,具有类类型的变量称作_ 。8一个类的析构函数不允许有 。9建立对象时,为节省内存,系统只给_分配内存。10类中的数据和成员函数默认访问类型为 。11当建立一个新对象时,程序自动调用_。 12成员函数在类体外定义格式是: _。三、改错题(共10分,每题2分)1 下面的程序定义了一个Point类,找出程序中的错误语句并改正。 #include class Point int x;public: void Point(int a) x=a; int Getx()return x; void Show() coutGetx()endl; ; void main() Point A(76); coutA.Show(); 2 根据静态成员的特点,指出下列程序的错误。#include#includeclass Part public: Part(char *pname=”no name”) strncpy(name,pname); noofpart+; no=noofpart; cout”create the no: ”noofpart”of part”endl; Part() noofpart-; cout”destroy the no: ”noofpart”of part”endl; static int number() return no; protected: static int noofpart=0; int no; char name40;void main() Part p1; Part p2;3 以下程序的功能是:利用友员函数为类的成员变量进行初始化,然后利用成员函数输出。请改正程序中的错误,使之能正确运行。#includeclass A int a,b; public: friend void setval(int i,int j); void showA() couta,bendl; ;void setval(int i,int j)a=i; b=j;void main()A obj1; setval(2,3); obj1.showA();4分析找出以下程序中的错误,说明错误原因,给出修改方案使之能正确运行。#includeclass one int a1,a2; public:one(int x1=0, x2=0);void main()one data(2,3); coutdata.a1endl; coutdata.a2endl;5分析以下程序的错误原因,给出修改方案使之能正确运行。#include class Amplifier float invol,outvol;public: Amplifier(float vin,float vout) invol=vin;outvol=vout; float gain(); Amplifier:float gain() return outvol/invol; void main() Amplifier amp(5.0,10.0); coutgain()endl;四、看程序写结果(共16分,每题4分)1 #includeclass test public: test(); test(int); test(); void display();protected: int n;test:test() cout”Constructing normallyn”;test:test(int num)n=num;cout”Constructing with a number: ”nendl;void test:display() cout”Display a number: ”nendl;test:test()cout”Destructing”endl; void main() test obj1; test obj2(59); obj1.display(); obj2.display();2 #include class Count public: Count() count+; static int getn() return count; Count() count-; private: static int count;int Count:count=100;void main() Count c1,c2,c3,c4; coutCount:getn()endl;3 #includeclass myclass int a,b; public: void init(int i, int j) a=i; b=j; friend int sum(myclass x);int sum( myclass x)return x.a+x.b; void main()myclass y; y.init(15,20); coutsum(y)endl;4#include class point int x,y;public:point(int a,int b)x=a;y=b; coutcalling the constructor function.endl;point(point &p);friend point move(point q);point()coutcalling the destructor function.n;int getx() return x;int gety() return y;point:point(point &p)x=p.x; y=p.y; coutcalling the copy_initialization constructor function.n;point move(point q)coutOK!n; int i,j; i=q.x+10; j=q.y+20; point r(i,j); return r;vo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广东省事业单位集中公开招聘高层次和急需紧缺人才6465人备考练习题库及答案解析
- 2025年社区医学社区卫生服务模式模拟考试答案及解析
- 灯具厂家合同范本
- 2025首都医科大学附属北京妇产医院招聘派遣制6人(第四批)考试参考试题及答案解析
- 买房赠送露台合同范本
- 结构加固设计合同范本
- 解除租厂合同范本
- 约定商务宾馆合同范本
- 2025年焦作武陟县特岗教师签约暨岗前培训备考练习试题及答案解析
- 2025年九江市柴桑区检验检测中心公开招聘工作人员备考练习题库及答案解析
- 医院医学伦理培训课件
- 物业保盘行动策划方案
- 烹饪实训课安全教育
- 2023-2024学年江苏省南通市如皋市重点中学八年级(上)第二次月考数学试卷(含解析)
- 矿山安全供电讲义
- 最全婚礼筹备清单:婚礼流程婚礼采购必备清单
- 混龄教育完整版本
- GB/T 19520.21-2023电气和电子设备机械结构482.6 mm(19 in)系列机械结构尺寸第3-109部分:嵌入式计算设备的机箱尺寸
- 龙湖地产集团公司劳动合同范本
- 规范权力运行方面存在问题及整改措施范文(五篇)
- 土壤退化与生态恢复课件
评论
0/150
提交评论