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

 

(31)有如下程序:
  #include
  using namespace std;
  class A
  {
  public;
  A(int i ){x= i ;}
  Void sispa(){cout<  Private:
  int x ;
  };
  class B;publicA
  {
  public;
  B(int i):A(i +10) {x =i ;}
  voud dispb() {dispa();cout<  Private:
  Int x;
  };
  int main()
  {
  B b(2);
  b.dispb()
  retum 0:
  }
  运行时输出的结果是
  A)10,2
  B)12,10
  C)12,2
  D)2,2

(32)虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,,被调用的是指针所指的实际对象的虚函数,而非虚函数不支持多态调用。有如下程序:
  #include
  using namespace std;
  class Base
  {
  public:
  virtual void f(){cout<<”f0+”;}
  void g() {cout<<”g0+”;}
  };
    class Derived:public Base
  {
  public:
  void f() {cout<<”f+”;}
  void g() {cout<<”g+”;}
  };
  int main()
  {
  Derived d;
  Base*p=&d;
  p->f(); p->g();
  return 0:
  }
  运行时输出的结果是
  A)f+g+
  B)f0+g+
  C)f+g0+
  D)f0+g0+

(33)下面程序中对一维坐标点类Point进行运算符重载
  #include
  using namespace std;
  class point {
  public:
  point (int vaI) {x=val;}
  point& operator++(){x++;retum*this;}
  print operator++(int) {point old=*this,++(*this);retum old;}
  int GetX() const {retum x;}
  private:
  int x;
  };
  int main()
  {
  point a(10);
  cout<<(++a).GetX();
  cout<  retum();
  }
  编译和运行情况是
  A)运行时输出1011
  B)运行时输出1111
  C)运行时输出1112
  D)编译有错

(34)有如下程序:
  #include
  using namespace std;
  int main()
  {
  char str[100],*p;
  cout<<”please input a string:”;
  cin>>str;
  p=str;
  for(int i =0;*p!=”\0”;p++, i ++);
  cout<< i <  retum 0;
  }
  运行这个程序时,若输入字符串为
  abcdefg abcd
  则输出结果是
  A)7
  B)12
  C)13
  D)100

(35)有如下程序::
  #include
  using namespace std:
  class Sample
  {
  friend long fun (Sample s);
  public:
  Sample (long a ){x=a;}
  Private:
  long x;
  };
  long fun (Sample s)
  {
  if(s.x<2)retum 1;
  retum s.x*fun(Sample(s.x-a));
  }
  int main()
  {
  int sum=0
  for(int i =0; i <6; i ++) { sum+=fun(Sample( i );) }
  cout<  retum 0;
  }
  运行时输出的结果是
  A)120
  B)16
  C)154
  D)34

上一页  [1] [2] 

责任编辑:cyth

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