2005年9月全国计算机等级考试二级C++笔试试题及答案
来源:优易学  2010-1-14 16:35:38   【优易学:中国教育考试门户网】   资料下载   IT书店

 

(31)有如下类声明:
  class XA{
   int x;
  public:
   XA(int n){ x=n;}
  };
  class XB: public XA{
   int y;
  public:
   XB(int a,int b);
  };
    在构造函数XB的下列定义中,正确的是
 A)XB::XB(int a,int b): x(a), y(b){ }
 B)XB::XB(int a,int b): XA(a), y(b){ }
 C)XB::XB(int a,int b): x(a), XB(b){ } 
 D)XB::XB(int a,int b): XA(a), XB(b){ }

(32)有如下程序:
#include
using namespace std;
class BASE{
public:
   ~BASE( ){ cout<<"BASE";}
};
class DERIVED: public BASE {
public:
  ~DERIVED( ){ cout<<"DERIVED";}
};
int main( ){DERIVED x; return 0 ;}
执行后的输出结果是
 A)BASE   
 B)DERIVED
 C)BASEDERIVED  
 D)DERIVEDBASE

(33)在表达式 x+y*z中, + 是作为成员函数重载的运算符,* 是作为非成员函数重载的运算符。下列叙述中正确的是
 A)operator+有两个参数,operator*有两个参数
 B)operator+有两个参数,operator*有一个参数
 C)operator+有一个参数,operator*有两个参数
 D)operator+有一个参数,operator*有一个参数

(34)下面关于C++流的叙述中,正确的是
 A)cin是一个输入流对象
 B)可以用ifstream定义一个输出流对象
 C)执行语句序列char *y="PQMN"; cout< D)执行语句序列char  x[80]; cin.getline(x,80); 时,若键入
   Happy  new  year
   则x中的字符串是"Happy"

(35)有如下程序:
  #include
  using namespace std;
  class AA{
   int n;
  public:
   AA(int k):n(k){ }
   int get( ){ return n;}
   int get( )const{ return n+1;}
  };
  int main( )
  {
   AA a(5);
   const AA b(6);
   cout<   return 0;
  }
    执行后的输出结果是
 A)55    
 B)57    
 C)75    
 D)77


二、填空题(每空2分,共30分)
 请将每一个空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。
(1)数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是   【1】   。

(2)算法复杂度主要包括时间复杂度和   【2】   复杂度。

(3)在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中   【3】   的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。

(4)一棵二叉树第六层(根结点为第一层)的结点数最多为   【4】   个。

(5)数据结构分为逻辑结构和存储结构,循环队列属于   【5】   结构。

(6)下列函数的功能是判断字符串str是否对称,对称则返回true,否则返回false。请在横线处填上适当内容,实现该函数。
bool fun(char *str)
{
int i=0, j=0;
while (str[j])   【6】  ;
for(j--; ireturn i    【7】    j;
}
 
(7)执行语句序列
 int x=10, &r=x; 
 cout><<<'-'<< 输出结果为   【8】   。
 
(8)下列程序的输出结果为
 Object id=0
 Object id=1
 请将程序补充完整。
#include
using namespace std;
class Point 
{
public: 
 Point(int xx=0, int yy=0) {X=xx; Y=yy; countP++; } 
 ~Point( ) { countP--; }
 int GetX( ) {return X;}
 int GetY( ) {return Y;}
 static void GetC( ) {cout<<" Object id="<<private: 
 int X,Y;
 static int countP; 
};
   【9】     //静态数据成员的初始化
int main( ) 
{
    Point::GetC( );
 Point A(4,5); 
 A.GetC( ); 
 return 0;
}

(9)非成员函数应声明为类的   【10】  函数才能访问这个类的private成员。
 
(10)派生类中的成员不能直接访问基类中的   【11】  成员。

(11)下列程序的输出结果为2,请将程序补充完整。
#include
using namespace std;
class Base
{
public:
    【12】  void fun( ){ cout<<1; }
};
class Derived:public Base
{
public:
 void fun( ) { cout<<2; }
};
int main( )
{
 Base *p= new Derived;
 p->fun( );
 delete p;
   return 0;
}

(12)请将下列类定义补充完整。
class Base { public: void fun( ){ cout<<"Base::fun"<class Derived : public Base {
public:
void fun( ) {
      【13】       //显式调用基类的fun函数
    cout<<"Derived::fun"<}};

(13)多数运算符既能作为类的成员函数重载,也能作为类的非成员函数重载,但[ ]运算符只能作为类的  【14】  函数重载。

(14)下面是一个栈类的模板,其中push函数将元素i压入栈顶,pop函数弹出栈顶元素。栈初始为空,top值为0,栈顶元素在stack[top-1]中,在下面横线处填上适当语句,完成栈类模板的定义。
template
class Tstack
{
 enum {size=1000};
 T stack[size];
 int top;
public:
 Tstack( ):top(0){ }
 void push(const T &i){
  if(top   stack[top++]=i;
 }
 T pop( ){
        if(top == 0) exit(1);       //栈空时终止运行
  return  【15】  ;
 }
};

上一页  [1] [2] [3] [4] [5] 下一页

责任编辑:cyth

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训