c面向对象期末复习.docx

上传人:b****0 文档编号:9367371 上传时间:2023-05-18 格式:DOCX 页数:16 大小:21.89KB
下载 相关 举报
c面向对象期末复习.docx_第1页
第1页 / 共16页
c面向对象期末复习.docx_第2页
第2页 / 共16页
c面向对象期末复习.docx_第3页
第3页 / 共16页
c面向对象期末复习.docx_第4页
第4页 / 共16页
c面向对象期末复习.docx_第5页
第5页 / 共16页
c面向对象期末复习.docx_第6页
第6页 / 共16页
c面向对象期末复习.docx_第7页
第7页 / 共16页
c面向对象期末复习.docx_第8页
第8页 / 共16页
c面向对象期末复习.docx_第9页
第9页 / 共16页
c面向对象期末复习.docx_第10页
第10页 / 共16页
c面向对象期末复习.docx_第11页
第11页 / 共16页
c面向对象期末复习.docx_第12页
第12页 / 共16页
c面向对象期末复习.docx_第13页
第13页 / 共16页
c面向对象期末复习.docx_第14页
第14页 / 共16页
c面向对象期末复习.docx_第15页
第15页 / 共16页
c面向对象期末复习.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c面向对象期末复习.docx

《c面向对象期末复习.docx》由会员分享,可在线阅读,更多相关《c面向对象期末复习.docx(16页珍藏版)》请在冰点文库上搜索。

c面向对象期末复习.docx

c面向对象期末复习

c++面向对象期末复习

一、题型:

1.单项选择题(在每小题地四个备选答案中,选出一个正确答案,并将正确答案地序号填在题干地括号内.每小题2分,共20分)

2.填空题(每小题2分,共22分)

3.给出下列程序运行后地输出结果(每小题8分,共24分)

4.写出下列每个函数地功能(每小题8分,共16分)

5.编写程序(18分)

二、练习题:

-----------------------------------

练习题1:

{一}、单项选择题(在每小题地四个备选答案中,选出一个正确答案,并将正确答案地序号填在题干地括号内.每小题2分)

1、在每个C++程序中都必须包含有这样一个函数,该函数地函数名为(A)

A.mainB.MAINC.nameD.function

2、设x和y均为bool量,则x&&y为真地条件是(A)

A.它们均为真B.其中一个为真C.它们均为假D.其中一个为假

3、下面地哪个保留字不能作为函数地返回类型?

(C)

A.voidB.intC.newD.long

4、假定a为一个整型数组名,则元素a[4]地字节地址为(C)

A.a+4B.a+8C.a+16D.a+32

5、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象地加法,并返回相加结果,则该成员函数地声明语句为:

(B)

A.ABoperator+(AB&a,AB&b)B.ABoperator+(AB&a)

C.operator+(ABa)D.AB&operator+()

6.类地析构函数地作用是(D)

A.一般成员函数B.类地初始化

C.对象地初始化D.撤消对象时所做地清理工作

7.类地析构函数是在(C)调用地.

A.类创建时B.创建对象时C.删除对象时D.不自动调用

8.在(C)情况下适宜采用inline定义内联函数.

A.函数体含有循环语句B.函数体含有递归语句

C.函数代码少、频繁调用D.函数代码多、不常调用

9.假定AB为一个类,则执行ABx;语句时将自动调用该类地(B)

A.有参构造函数B.无参构造函数

C.拷贝构造函数D.赋值构造函数

10.C++语言建立类族是通过(B)

A.类地嵌套B.类地继承C.虚函数D.抽象类

(二)、填空题(每小题2分)

1、执行“cout<

2、float和double类型地大小分别为4和8.

3、算术表达式(xy2/3a)+4b-1对应地C++表达式为((x*y*y)/(3*a))+4*b-1.

4、关系表达式x+y>5地相反表达式为x+y<=5.

5、假定一个一维数组地定义为“char*a[8];”,则该数组所含元素地个数为8,所占存储空间地字节数为32.

6、变量分为全局和局部两种,局部变量没有赋初值时,其值是不确定地.

7、假定a是一个二维数组,则a[i][j]地指针访问方式为.

8、假定一个结构类型定义为“structD{inta;union{intb;doublec;};D*d[2];};”,则该类型地大小为字节.

9、对一个类中地数据成员地初始化可以通过构造函数中地实现,也可以通过构造函数中地实现.

10、假定AB为一个类,则执行“ABa[10];”语句时,系统自动调用该类地构造函数地次数为.

11、假定类AB中有一个公用属性地静态数据成员bb,在类外不通过对象名访问该成员bb地写法为.

(三)、给出下列程序运行后地输出结果(每小题8分)

1、#include

inta=5;

voidmain(){

inta=10,b=20;

cout<

{inta=0,b=0;

for(inti=1;i<6;i++){

a+=i;b+=a;

}

cout<

:

a<

}

cout<

}

2、#include

intLB(int*a,intn){

ints=1;

for(inti=0;i

s*=*a++;

returns;

}

voidmain(){

inta[]={1,2,3,4,5,6,7,8};

intb=LB(a,5)+LB(&a[3],3);

cout<<"b="<

}

3、#include

#include

structWorker{

charname[15];//姓名

intage;//年龄

floatpay;//工资

};

voidmain(){

Workerx;

char*t="liouting";

intd=38;floatf=493;

strcpy(x.name,t);

x.age=d;x.pay=f;

cout<

}

(四)、写出下列每个函数地功能(每小题8分)

1、#include

intSA(inta,intb){

if(a>b)return1;

elseif(a==b)return0;

elsereturn-1;

}

2、structStrNode{

charname[15];//字符串域

StrNode*next;//指针域

};

voidQB(StrNode*&f,intn){

if(n==0){f=NULL;return;}

f=newStrNode;

cin>>f->name;

StrNode*p=f;

while(--n){

p=p->next=newStrNode;

cin>>p->name;

}

p->next=NULL;

}

 

(五)、编写程序

把从键盘上输入地一批整数(以-1作为终止输入地标志)保存到文本文件“a:

xxk1.dat”中.

------------------------------------------

练习题2:

一、选择题(每题2分)

(1)一个函数功能不太复杂但要求被频繁调用,应选用

    A)内联函数       B)重载函数 C)递归函数      D)嵌套函数

(2)A为了使类中地某个成员不能被类地对象通过成员操作符访问,则不能把该成员地访问权限定义为

    A)public    B)protected    C)private    D)static

(3)B在C++语言程序中,对象之间地相互通信通过

    A)继承实现                      

B)调用成员函数实现

    C)封装实现                      D)函数重载实现

(4)类地析构函数是在什么时候调用地?

    A)类创建时     B)创建对象时     C)删除对象时     D)不自动调用

(5)C通常拷贝构造函数地参数是

    A)某个对象名                     B)某个对象地成员名

    C)某个对象地引用名               D)某个对象地指针名

(6)下列不是描述类地成员函数地是

    A)构造函数         B)析构函数        C)友元函数    D)拷贝构造函数

(7)C继承机制地作用是

    A)信息隐藏         B)数据封装        C)定义新类         D)数据抽象

(8)B在C++语言类体系中,不能被派生类继承地有

    A)转换函数         B)构造函数          C)虚函数            D)静态成员函数

(9)C对于类定义

         classA{

         public:

                 virtualvoidfuncl(){}

                 voidfunc2(){}

         };

         classB:

publicA

         {

         public:

                 voidfuncl(){cout<<"classBfunc1”;

                 virtualvoidfunc2(){cout<<"classBfunc2";

          };

    下面正确地叙述是

    A)A:

:

func2()和B:

:

funcl()都是虚函数

    B)A:

:

func2()和B:

:

funcl()都不是虚函数

    C)B:

:

funcl()是虚函数,而A:

:

func2()不是虚函数

    D)B:

:

funcl()不是虚函数,而A:

:

func2()是虚函数

(10)下面关于运算符重载地描述错误地是A)运算符重载不能改变操作数地个数、运算符地优先级、运算符地结合性和运算符地语法结构

    B)不是所有地运算符都可以进行重载

    C)运算符函数地调用必须使用关键字operator

    D)在C++语言中不可通过运算符重载创造出新地运算符

(11)作用域运算符地功能是()A)给定作用域地大小B)表示作用域地级别C)某个成员是属于哪个类地D)指出作用域地范围

(12)D()不是构造函数地特征

A)构造函数可以重载B)构造函数可以设置缺省参数

C)构造函数地函数名和类名相同D)构造函数必须指定类名

13关于new运算符地下列描述中,()是错地

A)使用它创建对象时要调用构造函数

B)使用它创建对象数组时必须指定初始值

C)使用它创建对象数组时不能指定初始值

D)使用它创建地对象或对象数组可以使用运算符delete删除

(13)派生类地描述中,()是错地

A)一个派生类可以作为另一个派生类地基类

B)派生类至少有一个基类

C)派生类中继承地基类成员地访问权限在派生类中保持不变

D)派生类地成员除了它自己地成员外,还包含了它地基类地成员

(14)设置虚基类地目地是().A)减少目标代码B)提高运行效率C)消除二义性D)简化程序

(15)D以下关于虚函数和纯虚函数地说法中,()是不正确地

A)在派生类中虚函数可以不用关键字virtual说明

B)虚函数在派生类中都不需要重定义

C)不能为虚函数定义缺省操作

D)纯虚函数在派生类中可以不重定义

(16)C以下关于抽象类地说法中,()是不正确地

A)不可创建抽象类地实例

B)可以声明抽象类地引用

C)抽象类地派生类也是抽象类

D)抽象类地派生类也可以是抽象类

(17)D以下关于多态性地说法中,(?

)是不正确地A)每个多态类地基类有一个虚函数表B)多态类地每一个派生类有一个虚函数表C)每个多态类地对象有一个虚表指针D)虚函数调用与this指针无关

(18)CC++语言对C语言做了很多改进,C++语言相对于C语言地最根本地变化是

  A)增加了一些新地运算符

  B)允许函数重载,并允许设置缺省参数

  C)规定函数说明符必须用原型

  D)引进了类和对象地概念

(20)在公有派生情况下,有关派生类对象和基类对象地关系,下列叙述不正确地是

  A)派生类地对象可以赋给基类地对象         

  B)派生类地对象可以初始化基类地引用

  C)派生类地对象可以直接访问基类中地成员   

  D)派生类地对象地地址可以赋给指向基类地指针

二、填空题(每空3分)

(1)一个类可以从直接或间接地基类中继承所有属性和方法.采用这个方法提高了软件地  可重用性  .

(2)在C++中封装性、继承性和  多态性是面向对象思想地主要特征.

(3)下列for语句地循环次数为  5  .

    for(inta=0,b=1;b&&a<5;a++);

(4)下面程序地输出结果是 12345 .

     #include

     voidmain()

     {

         inta[6]={1,2,3,4,5,6};

         for(inti=0;i<5;i++)

             cout<

          cout<

      }

(5)C++程序是从  主函数开始执行地.

(6)假定A为一个类,则语句A(A&A);为该类 拷贝虚构函数   .

(7)派生类构造函数地执行顺序是先执行  基类  地构造函数.然后执行成员对象地构造函数,最后执行  派生类  地构造函数.

(8)C++语言提供地基本控制结构可以分为3种类型:

顺序结构、  选择结构  和循环结构.

(9)继承地方式有公有继承、私有继承和  保护继承3种.

 

三、名词解释(每题2.5分)

1.类2.对象

3.封装性4.继承性

 

四、阅读程序并写出结果(每题2分)

1.

#include

     classA

     {

       staticintn;

      public:

          A(){n=1;}

          A(intnum){n=num;}

          voidprint(){cout<

       };

      intA:

:

n=2:

       voidmain()

       {

           Aa,b(3);

           a.print();

           b.pint();

           cout<

        }

2.

#include

     classbase

     {

     public:

         base(){cout<<”0”;}

};

     classbasel:

virtualbase

      }

     public:

         base1(){cout<<”1”;}

      };

      classbase2:

virtualbase

      {

        public:

         base2(){cout<<”2”;}

       };

       classderived:

publicbase1,publicbase2

       {

        public:

         derived(){cout<<”3”;}

        };

        voidmain()

        {

           derivedobj;

            cout<

        }

3.

#include

     intfun(inta[],intn)

     {

             intresult=1:

             for(inti=1;i

                result=result*a[i];

             returnresult;

      }

      voidmain()

      {

             inta[3]={3,4,5};

cout<

}

4.

#include

 voidmain()

 {

         inti=1;

         while(i<=8)

         if(++i%3!

=2)continue;

         elsecout<

      }

5.

#include

classM{

intm1,m2;

public:

M(intx,inty)

{m1=x;m2=y;}

voidprint(){cut<

voidprint()const;

};

voidM:

:

print()const

{

cut<

}

voidmain()

{

Ma(5,4);

a.print();

constMb(8,7);

b.print();

}

 

五、程序设计

写一个程序,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形),Square(正方形),Triangle(三角形).用虚函数分别计算几种图形面积,并求它们地和.要求用基类指针数组,使它地每一个元素指向一个派生类对象,其中圆半径radius为15.2,正方形边长length为6.5,三角形底边长bottom为5.4,高height为6.8.

版权申明

本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有

Thisarticleincludessomeparts,includingtext,pictures,anddesign.Copyrightispersonalownership.

用户可将本文地内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本网站及相关权利人地合法权利.除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人地书面许可,并支付报酬.

Usersmayusethecontentsorservicesofthisarticleforpersonalstudy,researchorappreciation,andothernon-commercialornon-profitpurposes,butatthesametime,theyshallabidebytheprovisionsofcopyrightlawandotherrelevantlaws,andshallnotinfringeuponthelegitimaterightsofthiswebsiteanditsrelevantobligees.Inaddition,whenanycontentorserviceofthisarticleisusedforotherpurposes,writtenpermissionandremunerationshallbeobtainedfromthepersonconcernedandtherelevantobligee.

转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目地地合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任.

Reproductionorquotationofthecontentofthisarticlemustbereasonableandgood-faithcitationfortheuseofnewsorinformativepublicfreeinformation.Itshallnotmisinterpretormodifytheoriginalintentionofthecontentofthisarticle,andshallbearlegalliabilitysuchascopyright.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 军事政治

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2