2006年9月全国计算机等级考试二级C++程序设计笔试试卷

出处:www.examlink.com 作者:小罗 日期:2007年01月22日 14时49分

  (35)有如下程序

  #include<iostream>

  usingnamespacestd;

  classA{

  public:

  virtualVoidfuncl(){cout<<“A1”;}

  voidfune2(){cout<<“A2”;}

  };

  classB:publicA{

  public:

  voidfunc1(){cout<<“B1”;}

  voidfunc2(){cout<<“B2”;}

  };

  Intmain(){

  A*p=newB;

  p->funcl();

  p->func2();

  retum0;

  }

  运行程序,屏幕上将显示输出______。

  A)、B1B2B)、A1A2C)、B1A2D)、A1B2

  二、填空题(每空2分,共30分)

  请将每一个空的正确答案写在答题卡[1]~[15]序号的横线上,答在试卷上不得分。

  (1)下列软件系统结构图

 
  的宽度为[1]。

  (2)[2]的任务是诊断和改正程序中的错误。

  (3)一个关系表的行为[3]。

  (4)按“行进后出”原则组织数据的数据结构是[4]。

  (5)数据结构分为线性结构和非线性结构,带链的队列属于[5]。

  (6)若有定义语句:int*a,b;,则变量b的数据类型是[6]。

  (7)已知数组a中的元素个数为n,下列语句的作用是将下标为i的元素移动到下标

  为i-1的单元,其中1≤i<n。例如,当n=4,a中原有数据为1,2,3,4时,则移动后a

  中元素为2,3,4,4。请将语句补充完整:

  For(inti=0;i<n-1;i++)a[i]=a[7]。

  (8)已知递归函数f的定义如下:

  intf(intn)

  {

  If(n<=1)return1;//递归结束情况

  elsereturnn*f(n-2);//递归}则函数调用语句f(5)的返回值是[8]。

  (9)创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给

  出数组元素的初值,则调用缺省构造函数,下列程序涉及到对象数组的创建和单个对象的创

  建,其输出结果是[9]。

  #include<iostream>

  usingnamespacestd;

  classFoo{

  public:

  Foo(intX){cout<<’A”}

  Foo(){}

  };

  intmain()

  Foof[3],g(3);

  return0;

  }

  (10)习惯性在下列程序的输出结果是42,请将画线处缺失的部分补充完整。

  #include<iostream>

  Usingnamespaceatd;

  ClassFoo{

  intvalue;

  public:

  Foo():value(0){}

  VoidsetValue(intvalue)

  {[10]=value;//给Foo的数据成员value赋值}voidprint(){cout<<value;}

  };

  Intmain()

  {

  Foof;

  f。setValue(42);

  f。print();

  retum0;

  }

  (11)如果不能使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是

  只能访问从基数继承的成员,下列程序没有使用多态机制,其输出结果是[11]。

  #include<iostream>

  usingnamespacestd;

  classBase{

  public:

  Voidprint(){cout<<‘B’;}};

  classDerived:publicBase{

  public

  voidprint(){cout<<‘D’;}}

  intmain()

  {

  Derived*pd=newDreived);

  Base*pb=pd;

  pb->print();

  pd->print();

  deletepd;

  return0;

  }

  (12)在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私有继承

  private。已知有如下类定义:

  classBase{

  protected:

  voidfun(){}

  };

  ClassDerived:Base{};

  则Base类中的成员函数fun(),在Derived类中的访问权限是[12](注意:要求填

  写private、protected或public中的一项)。

  (13)在MyClass类的定义中,对赋值运算符=进行重载。请将画线处缺失的部分补充完整。

  [13]MyClass::operator=(constMyClassrhs)

  {

  if(this=&rhs)return*this;

  value=rhs。value;

  return*this;

  }

  

最后更新时间:2008-03-28 12:09:49
文章评论
共有 0 位网友发表了评论
用户名: 新注册) 密码: 匿名评论 [查看所有评论]

评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
您可以用以下几种方式找到此文章

考试全流程