全国计算机等级考试二级CPP.docx

上传人:b****0 文档编号:17153089 上传时间:2023-07-22 格式:DOCX 页数:14 大小:20.81KB
下载 相关 举报
全国计算机等级考试二级CPP.docx_第1页
第1页 / 共14页
全国计算机等级考试二级CPP.docx_第2页
第2页 / 共14页
全国计算机等级考试二级CPP.docx_第3页
第3页 / 共14页
全国计算机等级考试二级CPP.docx_第4页
第4页 / 共14页
全国计算机等级考试二级CPP.docx_第5页
第5页 / 共14页
全国计算机等级考试二级CPP.docx_第6页
第6页 / 共14页
全国计算机等级考试二级CPP.docx_第7页
第7页 / 共14页
全国计算机等级考试二级CPP.docx_第8页
第8页 / 共14页
全国计算机等级考试二级CPP.docx_第9页
第9页 / 共14页
全国计算机等级考试二级CPP.docx_第10页
第10页 / 共14页
全国计算机等级考试二级CPP.docx_第11页
第11页 / 共14页
全国计算机等级考试二级CPP.docx_第12页
第12页 / 共14页
全国计算机等级考试二级CPP.docx_第13页
第13页 / 共14页
全国计算机等级考试二级CPP.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

全国计算机等级考试二级CPP.docx

《全国计算机等级考试二级CPP.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级CPP.docx(14页珍藏版)》请在冰点文库上搜索。

全国计算机等级考试二级CPP.docx

全国计算机等级考试二级CPP

2007年4月全国计算机等级考试二级C++笔试试题及答案

一、选择题(每小题2分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。

请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(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)对下列二叉树

  进行前序遍历的结果为

  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)数据库系统需要操作系统的支持

(11)为了取代C中带参数的宏,在C++中使用

  A)重载函数

  B)内联函数

  C)递归函数

  D)友元函数

(12)下列关于类定义的说法中,正确的是

  A)类定义中包括数据成员和函数成员的声明

  B)类成员的缺省访问权限是保护的

  C)数据成员必须被声明为私有的

  D)成员函数只能在类体外进行定义

(13)下列关于派生类构造函数和析构函数的说法中,错误的是

  A)派生类的构造函数会隐含调用基类的构造函数

  B)如果基类中没有缺省构造函数,那么派生类必须定义构造函数

  C)在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数

  D)在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数

(14)通过运算符重载,可以改变运算符原有的

  A)操作数类型

  B)操作数个数

  C)优先级

  D)结合性

(15)有如下函数模板:

  templateTsouare(Tx)(retumx*x;)

  基中T是

  A)函数形参

  B)函数实参

  C)模板形参

  D)模板实参

(16)使用输入输出操作符setw,可以控制

  A)输出精度

  B)输出宽度

  C)对齐方式

  D)填充字符

(17)下列字符串中,不可以用作C++标识符的是

  A)y_2006

  B)____TEST__H

  C)Retum

  D)switch

(18)字面常量42、4.2、42L的数据类型分别是

  A)long、doubleint

  B)long、float、int

  C)int、double、long

  D)int、float、long

(19)执行下列语句段后,输出字符“*”的个数是

  for(inti=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)①

(21)有如下函数定义:

  voidfunc(inta,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

  usingnamespacestd;

  classA{

  public

  staticinta;

  voidinit(){a=1;}

  A(inta=2){init();a++;}

  };

  intA:

;a=0

  Aobj;

  Intmain()

  {

  cout<

  retum0;

  }

  运行时输出的结果是

  A)0

  B)1

  C)2

  D)3

(23)下列有关继承和派生的叙述中,正确的是

  A)派生类不能访问基类的保护成员

  B)作为虚基类的类不能被实例化

  C)派生类应当向基类的构造函数传递参数

  D)虚函数必须在派生类中重新实现

(24)下列运算符中,不能被重载的是

  A)&&

  B)!

=

  C).

  D)++

(25)下列函数模板的定义中,合法的是

  A)templateTabs(Tx){returnx<0–x:

x;}

  B)templateclassTabs(Tx){retumx<0-x;x;}

  C)templateTabs(Tx){retumx<0-x;x;}

  D)templateTabs(Tx){returmx<0-x;x;}

(26)在语句cin>>data;中,cin是

  A)C++的关键字

  B)类名

  C)对象名

  D)函数名

(27)有如下程序:

  #include

  usingnamespacestd;

  classtest{

  private:

  inta;

  public:

  test(){cout<<”constructor”<

  test(inta){cout<

  test(consttest&_test)

  {

  a=_testa;

  cout<<”copyconstructor”<

  }

  test(){cout<<”destructor”<

  };

  intmain()

  }

  testA(3)

  return0;

 运行时输出的结果是

  A)3

  B)constructor

  destruclor

  C)copyconstructor

  D)3

  dstructordestruclor

(28)若有如下类声明

  classMyClass{

  public:

  MyClass(){cout<<1;}

  };

  执行下列语句

  MyClassa,b[2],*P[2];

  以后,程序的输出结果是

  A)11

  B)111

  C)1111

  D11111

(29)有如下程序:

  #include

  usingnamespacestd;

  classpoint{

  public:

  staticintnumber;

  public:

  point(){number++;}

  ~point(){number-;}

  };

  intpoint:

:

number=0;

  voidmain()

{

  point*ptr;

  printA,B;

  {

  point*ptr_point=newpoint{3};

  ptr=ptr_point;

  }

  pointC;

  cout<

:

number<

  delete[]ptr;

  }

  运行时输出的结果是

  A)3

  B)4

  C)6

  D)7

(30)如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员,有如下程序,没有使用多态机制。

  #include

  usingnamespacestd;

  classBase{

  inta,b;

  public:

  Bace(intx,inty){a=x;b=y;}

  Voidshow(){cout<

  }

  clsaaDerived:

publicBase{

  intc,d;

  public:

  Derived(intx,inty,intz,intm):

Base(x,y){c=z;d=m;}

  Voidshow(){cout<

  };

  intmain()

  {

  BaseB1(50,50),*pb;

  DerivedDI(10,20,30,40);

  Pb=&D1;

  Pb->show();

  Return0;

  }

  运行时输出的结果是

  A)10,20

  B)30,40

  C)20,30

  D)50,50

(31)有如下程序:

  #include

  usingnamespacestd;

  classA

  {

  public;

  A(inti){x=i;}

  Voidsispa(){cout<

  Private:

  intx;

  };

  classB;publicA

  {

  public;

  B(inti):

A(i+10){x=i;}

  vouddispb(){dispa();cout<

  Private:

  Intx;

  };

  intmain()

  {

  Bb

(2);

  b.dispb()

  retum0:

  }

  运行时输出的结果是

  A)10,2

  B)12,10

  C)12,2

  D)2,2

(32)虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,,被调用的是指针所指的实际对象的虚函数,而非虚函数不支持多态调用。

有如下程序:

  #include

  usingnamespacestd;

  classBase

  {

  public:

  virtualvoidf(){cout<<”f0+”;}

  voidg(){cout<<”g0+”;}

  };

    classDerived:

publicBase

  {

  public:

  voidf(){cout<<”f+”;}

  voidg(){cout<<”g+”;}

  };

  intmain()

  {

  Derivedd;

  Base*p=&d;

  p->f();p->g();

  return0:

  }

  运行时输出的结果是

  A)f+g+

  B)f0+g+

  C)f+g0+

  D)f0+g0+

(33)下面程序中对一维坐标点类Point进行运算符重载

  #include

  usingnamespacestd;

  classpoint{

  public:

  point(intvaI){x=val;}

  point&operator++(){x++;retum*this;}

  printoperator++(int){pointold=*this,++(*this);retumold;}

  intGetX()const{retumx;}

  private:

  intx;

  };

  intmain()

  {

  pointa(10);

  cout<<(++a).GetX();

  cout<

  retum();

  }

  编译和运行情况是

  A)运行时输出1011

  B)运行时输出1111

  C)运行时输出1112

  D)编译有错

(34)有如下程序:

  #include

  usingnamespacestd;

  intmain()

  {

  charstr[100],*p;

  cout<<”pleaseinputastring:

”;

  cin>>str;

  p=str;

  for(inti=0;*p!

=”\0”;p++,i++);

  cout<

  retum0;

  }

  运行这个程序时,若输入字符串为

  abcdefgabcd

  则输出结果是

  A)7

  B)12

  C)13

  D)100

(35)有如下程序:

  #include

  usingnamespacestd:

  classSample

  {

  friendlongfun(Samples);

  public:

  Sample(longa){x=a;}

  Private:

  longx;

  };

  longfun(Samples)

  {

  if(s.x<2)retum1;

  retums.x*fun(Sample(s.x-a));

  }

  intmain()

  {

  intsum=0

  for(inti=0;i<6;i++){sum+=fun(Sample(i);)}

  cout<

  retum0;

  }

  运行时输出的结果是

  A)120

  B)16

  C)154

  D)34

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

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

  

(1)在深度为7的满二叉树中,度为2的结点个数为【1】。

  

(2)软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于【2】测试。

  (3)在数据库系统中,实现各种数据管理体制功能的核心软件称为【3】。

  (4)软件生命周期可分为多个阶段,一般分为定义阶段、开发和维护阶段。

编码和测试属于【4】阶段。

  (5)在结构化分析使用的数据流图(DFD)中,利用【5】对其中的图形元素进行确切解释。

  (6)C++中只有两个逻辑常量:

true和【6】。

  (7)若要访问指针变量p所指向的数据,应使用表达式【7】。

  (8)已知一个函数的原型是:

  intfn(doublex);

  若要以5.27为实参调用该函数,应使用表达式【8】。

  (9)有如下定义:

  classMA{

  intvalue;

  public:

   MA(intn=0):

valut(n){}

  };

  MA*ta,tb;

  其中MA类的对象名标识符是【9】。

  (10)如下类定义中包含了构造函数和拷贝数的原型声明请在横线处写正确的内容,使拷贝构造函数的声明完整。

  ClassmyClass{

  Private:

  Intdata:

  Public:

  MyClass(intvalue);//构造函数

  MyClass(const【10】anotherObject);//拷贝构造函数

  }

  (11)用来派生新类的称为【11】,而派生出的新类称为它的子类或派生类。

  (12)有如下程序:

  #include

  usingnamespacestd;

  clsaaCA{

  public:

  CAD{cout<

  };

  classCB;privateCA{

  public;

  CB(){cout<

  };

  intmain(){cout<

  };

  intmain(){

  CAa;

  CBb; 

  retum0;

  }

  这个程序的输出结果是【12】。

  (13)若将一个二元运算符重载为类的成员函数,其形参个数应该是【13】个。

  (14)有如下程序:

  #include

  usingnamespacestd;

  classDA{

  intk;

  public:

  DA(intx=1):

k(x){}

  ~DA(){cout<

  };

  intmain(){

  DAd[]={DA(3),DA(3),DA(3)};

  DA*p=newDA[2];

  delete[]p;

  return0;

  }

  这个程序的输出结果是【14】。

  (15)C++语言中的多态性分为编译时的多态性和【15】时的多态性。

 

2007年4月计算机等级考试C++考试答案

选择题:

1-5BDACD6-10CABCA11-15BADAC16-20BCDBA21-25CCCCA

26-30CDBDA30-35CBBBC

填空:

1、63   2、黑盒 3、DBMS  4、开发  5、数据字典  6、false 7、*P  

8、fn(5.27)  9、tb10、myclass&   11、基类 12、AAB  13、1个 

14、11333  15、运行

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2