c类和对象练习题_第1页
c类和对象练习题_第2页
c类和对象练习题_第3页
c类和对象练习题_第4页
c类和对象练习题_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——c类和对象练习题

第8章类与对象8.1知识要点

1.把握类与对象的概念和定义方法,把握类成员的访问属性。2.把握构造函数的概念、定义方法和使用方法。3.把握析构函数的概念、定义方法和使用方法。

4.把握拷贝构造函数的概念、定义方法和使用方法。5.把握包含对象成员的类构造函数的定义方法。6.把握静态成员的概念、定义方法、作用和特点。7.把握友元的概念、定义方法、作用和特点。8.把握类模板的定义格式与使用方法。8.2典型例题分析与解答

例题1:以下有关类的说法不正确的是()。A.对象是类的一个实例

B.任何一个对象只能属于一个具体的类C.一个类只能有一个对象

D.类与对象的关系和数据类型与变量的关系相像答案:C

分析:对象是类的一个实例,类与对象的关系和数据与变量的关系相像,所以一个类可以有多个对象。

例题2:下面()项是对构造函数和析构函数的正确定义。A.voidX::X(),voidX::~X()B.X::X(参数),X::~X()

C.X::X(参数),X::~X(参数)

D.voidX::X(参数),voidX::~X(参数)答案:B

分析构造函数无返回类型、可带参数、可重载;析构函数无返回类型、不可带参数、不可重载。

例题3:()的功能是对象进行初始化。

A.析构函数B.数据成员C.构造函数D.静态成员函数答案:C分析:当一个对象定义时,C++编译系统自动调用构造函数建立该对象并进行初始化;当一个对象的生命周期终止时,C++编译系统自动调用析构函数注销该对象并进行善后工作;

例题4:以下表达方式正确的是()。A.classP{B.classP{public:public:intx=15;intx;

voidshow(){coutclassone{inta1,a2;public:

one(intx1=0,x2=0);};

voidmain(){

onedata(2,3);

coutclassone

{inta1,a2;public:

one(intx1=0,intx2=0){a1=x1;a2=x2;}intgeta1(){returna1;}intgeta2(){returna2;}};

voidmain()

{onedata(2,3);

coutclassAmplifier{floatinvol,outvol;public:

Amplifier(floatvin,floatvout){invol=vin;outvol=vout;}floatgain();};

Amplifier::floatgain(){returnoutvol/invol;}voidmain()

{Amplifieramp(5.0,10.0);

coutclassAmplifier

{floatinvol,outvol;public:

Amplifier(floatvin,floatvout){invol=vin;outvol=vout;}floatgain();};

floatAmplifier::gain(){returnoutvol/invol;}voidmain()

{Amplifieramp(5.0,10.0);

coutclasspoint{intx,y;public:

point(inta,intb){x=a;y=b;

cout

intCsample::k=0;

Csample::Csample(){i=0;k++;}

voidCsample::Display(){coutclassBox

{intx,y,z;intv,s;public:

voidinit(intx1=0,inty1=0,intz1=0){x=x1;y=y1;z=z1;}voidvolue(){v=x*y*z;}

voidarea(){s=2*(x*y+x*z+y*z);}voidshow()

{coutclassCounter{intn;public:

Counter(inti=0){n=i;}

voidinit_Counter(intm){n=m;}voidin_Counter(){n++;}voidde_Counter(){n--;}

intget_Counter(){returnn;}voidshow(){coutclassrectangle{intlen,wid;public:

rectangle(inti=0,intj=0){len=i;wid=j;}

friendintarea(rectangletemp){ints=temp.len*temp.wid;returns;}

friendfun(rectangletemp){intp=2*(temp.len+temp.wid);returnp;}};

voidmain()

{rectanglea(10,20);

coutclassfac{intp;public:

fac(){p=1;}fac(intj){p=1;

if(j>=0)

for(inti=1;i>n;faca(n);

coutclassCdate

{intyear,month,day;inty1,m1,d1;public:

voidsetdate(inty,intm,intd){year=y;month=m;day=d;}voidshow()

{cout>y>>m>>d1;

d.setdate(y,m,d1);//加一天d.setdate(y,m,d1);//再加一天d.datetwo();d.show();}

8.4补充习题1.选择题

(1)以下有关类的说法不正确的是。A.类是一种用户自定义的数据类型

B.只有类中的成员函数或类的友元函数才能存取类中的私有数据

C.在类中(用class定义),假使不作特别说明,所有的数据均为私有数据

D.在类中(用class定义),假使不作特别说明,所有的成员函数均为公有数据(2)以下有关析构函数的表达不正确的是()

A.在一个类只能定义一个析构函数B.析构函数和构造函数一样可以有形参C.析构函数不允许用返回值D.析构函数名前必需冠有符号“~〞(3)以下有关类与结构体的表达不正确的是()A.结构体中只包含数据;类中封装了数据和操作

B.结构体的成员对外界寻常是开放的;类的成员可以被隐蔽C.用struct不能声明一个类型名;而class可以声明一个类名D.结构体成员默认为public;类成员默认为private(4)以下表达中不正确的是()

A.一个类的所有对象都有各自的数据成员,它们共享函数成员B.一个类中可以有多个同名的成员函数

C.一个类中可以有多个构造函数、多个析构函数

D.在一个类中可以声明另一个类的对象作为它的数据成员(5)以下不属于构造函数特征的是()

A.构造函数名与类名一致B.构造函数可以重载

C.构造函数可以设置默认参数D.构造函数必需指定函数类型

(6)以下有关类和对象的表达不正确的是()A.任何一个对象都归属于一个具体的类

B.类与对象的关系和数据类型与变量的关系相像C.类的数据成员不允许是另一个类的对象D.一个类可以被实例化成多个对象(7)设有定义:classperson{intnum;

charname[10];public:

voidinit(intn,char*m);...};

personstd[30];

则以下表达不正确的是()

A.std是一个含有30个元素的对象数组

B.std数组中的每一个元素都是person类的对象

C.std数组中的每一个元素都有自己的私有变量num和nameD.std数组中的每一个元素都有各自的成员函数init(8)设有以下类的定义:classEx{intx;public:

voidsetx(intt=0);};

若在类外定义成员函数setx(),以下定义形式中正确的是()A.voidsetx(intt){...}B.voidEx::setx(intt){...}C.Ex::voidsetx(intt){...}D.voidEx::setx(){...}

(9)以下关于静态成员变量的表达不正确的是()A.静态成员变量为类的所有对象所公有B.静态成员变量可以在类内任何位置上声明C.静态成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论