2007年4月全国计算机等级考试二级C++笔试试题
来源: 作者: 发布时间:2008-01-14

一、选择题(每小题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

ynexam.cn[云南考试网]

(1)下列叙述中正确的是 。
  A)算法的效率只与问题的规模有关,而与数据的存储结构无关.
  B)算法的时间复杂度是指执行算法所需要的计算工作量
  C)数据的逻辑结构与存储结构是一一对应的.
  D)算法的时间复杂度与空间复杂度一定相关.

(2)在结构化程序设计中,模块划分的原则是 。
  A) 各模块应包括尽量多的功能
  B) 各模块的规模应尽量大
  C)各模块之间的联系应尽量紧密
  D) 模块内具有高内聚度,模块间具有低耦合度

(3)下列叙述中正确的是 。
  A)软件测试的主要目的是发现程序中的错误.
  B)软件测试的主要目的是确定程序中错误的位置.
  C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作
  D)软件测试是证明软件没有错误

(4) 下面选项中不属于面向对象程序设计特征的是 。
  A)继承性
  B)多态性
  C)类比性
  D)封装性

(5) 下列对列的叙述正确的是 。
  A) 队列属于非线性表
  B) 队列按”先进后出”的原则组织数据
  C)队列在队尾删除数据
  D) 队列按“先进先出”原则组织数据

(6)对下列二叉树 [云南考试网]www_ynexam_cn
  进行前序遍历的结果为
  A)DYBEAFCZX
  B)YDEBFZXCA
  C)ABDYECFXZ
  D)ABCDEFXYZ

(7)某二叉树中有n个度为2的结点则该二叉树中的叶子结点数为
  A)n+1
  B)n-1
  C)2n
  D)n/2

(8)在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是 。
  A)井
  B)交
  C)投影
  D)笛卡儿乘积

(9)在E-R图中,用来表示实体之间是联系的图形是 。
  A) 矩形
  B)椭圆形
  C)菱形
  D)平行四边形

(10)下列叙述中错误的是 。
  A) 在数据库系统中,数据的物理结构必须与逻辑结构一致.
  B)数据库技术的根本目标是要解决数据的共享问题
  C)数据库设计是指在已有数据库管理系统的基础上建立数据库
  D)数据库系统需要操作系统的支持 [云南考试网]网址:http://www.ynexam.cn

11)为了取代C中带参数的宏,在C++中使用
  A)重载函数
  B)内联函数
  C)递归函数
  D)友元函数

(12)下列关于类定义的说法中,正确的是
  A)类定义中包括数据成员和函数成员的声明
  B)类成员的缺省访问权限是保护的
  C) 数据成员必须被声明为私有的
  D)成员函数只能在类体外进行定义

(13)下列关于派生类构造函数和析构函数的说法中,错误的是
  A)派生类的构造函数会隐含调用基类的构造函数
  B)如果基类中没有缺省构造函数,那么派生类必须定义构造函数
  C)在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数
  D)在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数

(14)通过运算符重载,可以改变运算符原有的
  A)操作数类型
  B)操作数个数
  C)优先级
  D)结合性

(15)有如下函数模板:
  template <class T> T souare(T x) (retumx * x ;)
  基中T是
  A)函数形参
  B)函数实参
  C)模板形参
  D)模板实参

(16)使用输入输出操作符setw,可以控制 [云南考试网]ynexam_cn
  A)输出精度
  B)输出宽度
  C)对齐方式
  D)填充字符

(17)下列字符串中,不可以用作C++标识符的是
  A)y_2006
  B)____TEST__H
  C)Retum
  D)switch

(18)字面常量42、4.2、42L的数据类型分别是
  A)long、double int
  B)long、float、int
  C)int、double、long
  D)int、float、long

(19)执行下列语句段后,输出字符“*”的个数是
  for(int i =50;I>1;— i )cout<<”*”
  A)48
  B)49
  C)50
  D)51

(20)有如下程序段
  int i =0, j=1;
  int &r=i ; // ①
 r =j; //②
 int*p=&i ; //③
 *p=&r ; //④
  基中会产生编译错误的语句是
  A)④
  B)③
  C)②
  D)① [云南考试网]ynexam_cn

 

[云南考试网]ynexam_cn

(21)有如下函数定义:
  void func (int a,int&b) {a++; b++;}
  若执行代码段:
  int x=0 ,y=1
  func(x,y);
  则变量x和y值分别是
  A)0和1  
  B)1和1
  C)0和2
  D)1和2

(22)有如下程序:
  #include<iostream>
  using namespace std;
  class A{
  public
  static int a;
  void init(){a=1;}
  A(int a=2) {init();a++;}
  };
  int A:;a=0
  A obj;
  Int main()
  {
  cout<<obj.a;
  retum0;
  }
  运行时输出的结果是
  A)0
  B)1
  C)2
  D)3

(23)下列有关继承和派生的叙述中,正确的是
  A) 派生类不能访问基类的保护成员
  B)作为虚基类的类不能被实例化
  C)派生类应当向基类的构造函数传递参数
  D)虚函数必须在派生类中重新实现

(24)下列运算符中,不能被重载的是
  A)&&
  B)!=
  C).
  D)++

(25)下列函数模板的定义中,合法的是
  A) template<typename T> Tabs(T x) {return x <0 – x: x;} [云南考试网]www_ynexam_cn
  B)template class <T>Tabs(Tx){retumx<0 -x;x;}
  C)template T<class T.>abs(T x){retum x<0 -x;x;}
  D)template T abs(T x){returm x<0 -x;x;}

(26)在语句cin>>data;中,cin是
  A)C++的关键字
  B)类名
  C)对象名
  D)函数名

(27)有如下程序:
  #include<iostream>
  using namespace std;
  class test {
  private:
  int a;
  public:
  test(){cout<<”constructor”<<endl;}
  test(int a){cout<<a<<endl;}
  test(const test&_test)
  {
  a=_testa;
  cout<<”copy constructor”<<endl;
  }
  test(){cout<<”destructor”<<endl;}
  };
  int main()
  }
  test A(3)
  return0;
 运行时输出的结果是
  A)3
  B)constructor
  destruclor
  C)copy constructor
  D)3
  dstructor destruclor

(28)若有如下类声明
  class My Class {
  public: [云南考试网]ynexam_cn
  MyClass() {cout<<1;}
  };
  执行下列语句
  MyClass a,b[2],*P[2];
  以后,程序的输出结果是
  A)11
  B)111
  C)1111
  D11111

(29)有如下程序:
  #include<iostream>
  using namespace std;
  class point {
  public:
  static int number;
  public:
  point(){number++;
  ~point(){number-;}
  };
  imt point::number=0;
  void main(){
  point*ptr;
  printA,B;
  {
  point*ptr_point=new point{3};
  ptr=ptr_point;
  }
  pointC;
  cout<<point::number<<endl;
  delete[]ptr;
  }
  运行时输出的结果是
  A)3
  B)4
  C)6
  D)7

(30)如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员,有如下程序,没有使用多态机制。
  #include<iostream>
  using namespace std;
  class Base{
  int a,b;
  public:
  Bace(int x ,int y) { a=x; b=y;} ynexam.cn[云南考试网]
  Void show(){ cout<<a<<’,’<<b<<endl;}
  }
  clsaa Derived:public Base {
  int c ,d;
  public:
  Derived(int x,int y,int z,int m):Base(x,y){c=z; d=m;}
  Void show(){ cout<<c<<’,’d<<endl;}
  };
  int main()
  {
  Base B1(50,50),*pb;
  Derived DI(10,20,30,40);
  Pb=&D1;
  Pb->show();
  Return 0;
  }
  运行时输出的结果是
  A)10,20
  B)30,40
  C)20,30
  D)50,50

[云南考试网]ynexam_cn

 

[云南考试网]网址:http://www.ynexam.cn

(31)有如下程序:
  #include<iostream>
  using namespace std;
  class A
  {
  public;
  A(int i ){x= i ;}
  Void sispa(){cout<<x<<’,’;}
  Private:
  int x ;
  };
  class B;publicA
  {
  public;
  B(int i):A(i +10) {x =i ;}
  voud dispb() {dispa();cout<<x<,endl;}
  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<iostream>
  using namespace std;
  class Base
  {
  public:
  virtual void f(){cout<<”f0+”;}
  void g() {cout<<”g0+”;}
  };
    class Derived:public Base www.ynexam.cn[云南考试网]
  {
  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<iostream>
  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<<a++.GetX();
  retum();
  }
  编译和运行情况是
  A)运行时输出1011
  B)运行时输出1111
  C)运行时输出1112
  D)编译有错

(34)有如下程序:
  #include<iostream>

www.ynexam.cn[云南考试网]


  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 <<endl;
  retum 0;
  }
  运行这个程序时,若输入字符串为
  abcdefg abcd
  则输出结果是
  A)7
  B)12
  C)13
  D)100

(35)有如下程序::
  #include<iostream>
  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<<sum;
  retum 0;
  }
  运行时输出的结果是
  A)120
  B)16
  C)154
  D)34 [云南考试网]ynexam_cn


共2页: 上一页 1 [2] 下一页
上一篇:2006年9月全国计算机等级考试二级C++笔试试题及参考答案   下一篇:2007年9月全国计算机等级考试二级C++笔试试题及参考答案
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]
用户名: 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
§最新评论





 热门文档
·2007年国家公务员考试《行政职业能力测验》试卷及答案
·2007年湖南省公务员考试行政能力测试真题
·2005年江苏省公务员考试公共基础知识试题(B类)及解析
·2006年湖南省公务员录用考试《行政职业能力测验》试卷
·2005年江苏省公务员考试公共基础知识试题(A类)及解析
·2007年上半年软件水平考试网络工程师上午试题
·2008年国家公务员考试行测试题及参考答案
·2004年——2007年湖南公务员录用考试《行政能力测试》
·2005年江苏省公务员考试公共基础知识试题(C类)及解析
·上海2007年(上半年)会计从业考试《会计基础》试题及
·江苏省会计从业资格考试试题汇总
·2008年国家公务员面试真题汇总(持续更新)
·2007年上半年程序员考试上午试题
·2004年湖南省公务员考试行政职业能力测试题
·江苏省2006年会计从业资格《会计基础》试题及参考答案
·2007年上半年软件水平考试网络工程师下午试题
·2006年国家公务员考试《行政职业能力测验》(一)试卷
·2007年上半年信息系统管理工程师考试上午试题
·2006——2008年国家公务员《行政能力测试》真题汇总
·2003年——2007年湖南公务员录用考试《申论》真题汇总

联系方式:8201816#gmail.com(把"#"替换成"@")
备案号:滇ICP备05003043号
Copyright © 2006-2008 云南考试网 All rights reserved.