全国高等教育自学考试面向对象程序设计试题.docx

上传人:b****1 文档编号:367029 上传时间:2022-10-09 格式:DOCX 页数:15 大小:19.05KB
下载 相关 举报
全国高等教育自学考试面向对象程序设计试题.docx_第1页
第1页 / 共15页
全国高等教育自学考试面向对象程序设计试题.docx_第2页
第2页 / 共15页
全国高等教育自学考试面向对象程序设计试题.docx_第3页
第3页 / 共15页
全国高等教育自学考试面向对象程序设计试题.docx_第4页
第4页 / 共15页
全国高等教育自学考试面向对象程序设计试题.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

全国高等教育自学考试面向对象程序设计试题.docx

《全国高等教育自学考试面向对象程序设计试题.docx》由会员分享,可在线阅读,更多相关《全国高等教育自学考试面向对象程序设计试题.docx(15页珍藏版)》请在冰豆网上搜索。

全国高等教育自学考试面向对象程序设计试题.docx

全国高等教育自学考试面向对象程序设计试题

全国2003年10月高等教育自学考试面向对象程序设计试题

课程代码:

02328

一、单项选择题(本大题共10小题,每小题2分,共20分)

   在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1.下列特性中,C与C++共有的是(    )

 A.继承                

 B.封装

 C.多态性              

 D.函数定义不能嵌套

2.通常情况下,函数模板中的类型参数个数不能是(    )

 A.0              

 B.2

 C.4              

 D.3

3.在下列成对的表达式中,运算符“+”的意义不相同的一对是(    )

 A.5.0+2.0和5.0+2             

 B.5.0+2.0和5+2.0

 C.5.0+2.0和5+2               

 D.5+2.0和5.0+2

4.类的指针成员的初始化是通过函数完成的,这个函数通常是(    )

 A.析构函数              

 B.构造函数

 C.其它成员函数          

 D.友元函数

5.要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为(    )

 A.constchar*p=“ABCD”;    

 B.charconst*p=“ABCD”;

 C.char*constp=“ABCD”;    

 D.constchar*constp=“ABCD”;

6.静态成员函数没有(    )

 A.返回值              

 B.this指针

 C.指针参数            

 D.返回类型

7.当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中(    )

 A.都是虚函数

 B.只有被重新说明时才是虚函数

 C.只有被重新说明为virtual时才是虚函数

 D.都不是虚函数

8.下面叙述不正确的是(    )

 A.派生类一般都用公有派生

 B.对基类成员的访问必须是无二义性的

 C.赋值兼容规则也适用于多重继承的组合

 D.基类的公有成员在派生类中仍然是公有的

9.在C++中实现封装是借助于(    )

 A.枚举              

 B.类

 C.数组              

 D.函数

10.所有在函数中定义的变量,都是(    )

 A.全局变量              

 B.局部变量

 C.静态变量              

 D.寄存器变量

二、填空题(本大题共10小题,每小题2分,共20分)

不写解答过程,将正确的答案写在每小题的空格内。

错填或不填均无分。

11.设函数max是由函数模板实现的,并且max(3.5,5)和max(10,5)都是正确的函数调用,则该模板具有______个类型参数。

12.在单继承和多继承方式中,面向对象的程序设计应尽量使用______继承。

13.语句序列ifstreamdatafile;datafile.open(“data.dat”);的功能可用一个语句实现,这个语句是______。

14.将关键字const写在函数头之后,函数体之前,说明该函数是一个const成员函数。

此时const不是指定函数的返回值,而是修饰______指针。

15.一个抽象类的派生类可以实例化的必要条件是实现了所有的______。

16.在C++中,虚函数帮助实现了类的______性。

17.通过C++语言中类的______,可以扩充和完善已有类以适应新的需求。

18.为了在对象生存期结束时释放其指针成员所指向的动态存储空间,通常需要为该类定义______。

19.在联合中,所有数据成员具有______的地址,任一时刻只有______个数据成员有效。

20.在已经定义了整型指针ip后,为了得到一个包括10个整数的数组并由ip所指向,应使用语句______。

三、改错题(本大题共5小题,每小题2分,共10分)

21.下面的类定义有一处错误,请用下横线标出错误所在行并改正错误。

  classA{

      inta;

  public;

      A(intaa):

a=aa{}

  };

22.下面的程序先把字符串“Lookout!

”输出到一个文件中,然后再从该文件输入,并显示在屏幕上,显示效果为Lookout!

程序中有一处错误,请用下横线标出错误所在行,并给出更改意见。

  #include

  voidmain(){

       ofstreamoutf(“D:

\tem.dat”,ios:

:

trunc);

       outf<<“Lookout!

”;

       outf.close();

       ifsteaminf(“D:

\tem.dat”);

       chark[20]; inf>>k; count<

       inf.close();

  }

23.下面的程序有一处错误,请用下横线标出错误所在行并改正错误。

  #include

  classTest{

        public;

           staticintx;

  };

  intx=20;//对类成员初始化

  voidmain()

  {

       cout<

:

x;

  }

24.下面的程序类B的定义中有一处错误,请用下横线标出错误所在行并说明错误原因。

  #include

  #include

  classA{

         public:

A(constchar*nm){strcpy(name,nm);}

         private:

charname[80];

  };

  classB:

publicA{

         public:

B(constchar*nm):

A(nm){}

                voidPrintName()const;

  };

  voidB:

:

PrintName()const{

      cout<<“name:

”<

  }

  voidmain(){

      Bb1(“wangli”);

      b1.PrintName();

  }

25.用下横线标出下面程序main函数中的错误所在行,并说明错误原因。

  #include

  classLocation{

      private:

           intX,Y;

      public;

           voidinit(intinitX,intinitY);

           intsumXY();

  };

  voidLocation:

:

init(intinitX,intinitY)

  {

     X=initX;

     Y=initY;

  }

  intLocation:

:

sumXY()

  {

      returnX+Y;

  }

  

  voidmain()

  {

      LocationA1;

      intx,y;

      A1.init(5,3);

      x=A1.X;y=A1.Y;

      cout<

  }

四、完成程序题(本大题共5小题,每小题4分,共20分)。

根据题目要求,完成程序填空。

26.在下面程序横线处填上适当内容,以使该程序执行结果为:

  12

  88

  #include

  template

  classTany{

  public:

      ①            ;

      voidpr(){

            if(sizeof(int)==②            )

                  count<<(x>y?

x:

y)<

            else

                  cout<<(x>y?

y:

x)<

      }

  };

  voidmain(){

       Tanydobj={12.0,88.0};

       dobj.pr();

       Tanyiobj={12,88};

       iobj.pr();

  }

27.在下面的横线处填上适当内容,使程序完整。

  #include

  #include

  classloc{

        private:

               floatx,y;

  public;

               loc(①            )

               {

                  x=x1;

                  y=y1;

               }

               floatgetx(){returnx;}

               floatgety(){returny;}

               ②             floatdis(loc&,loc&);

  };

  floatloc:

:

dis(loc&a,loc&b)

  {

        flostdx=a.x-b.x;

        flostdy=a.y-b.y;

        returnsqrt(dx*dx+dy*dy);

  }

  voidmain()

  {

       locpl(3.5,4.5),p2(5.5,6.5);

       floatd=loc:

:

dis(p1,p2);

       cout<<“Thedistanceis”<

  }

28.在下面程序中的横线处填上适当内容,使程序完整。

  #include

  classvehicle

  {

       protected:

           intsize;

           intspeed;

       public;

           voidsetSpeed(ints){speed=s;}

           ①             getSpeedLevel(){returnspeed/10;}

  };

  classcar:

publicvehicle

  {

       public:

            intgetSpeedLeve(){returnspeed/5;}

  };

  classtruck:

publicvehicle

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

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1