全国计算机等级考试二级C历年真题.docx

上传人:b****5 文档编号:29899440 上传时间:2023-08-03 格式:DOCX 页数:49 大小:36.26KB
下载 相关 举报
全国计算机等级考试二级C历年真题.docx_第1页
第1页 / 共49页
全国计算机等级考试二级C历年真题.docx_第2页
第2页 / 共49页
全国计算机等级考试二级C历年真题.docx_第3页
第3页 / 共49页
全国计算机等级考试二级C历年真题.docx_第4页
第4页 / 共49页
全国计算机等级考试二级C历年真题.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

全国计算机等级考试二级C历年真题.docx

《全国计算机等级考试二级C历年真题.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C历年真题.docx(49页珍藏版)》请在冰豆网上搜索。

全国计算机等级考试二级C历年真题.docx

全国计算机等级考试二级C历年真题

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)0B)1C)2D)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)3B)constructor

  destruclor

  C)copyconstructor

  D)3

  dstructordestruclor

(28)若有如下类声明

  classMyClass{

  public:

  MyClass(){cout<<1;}

  };

  执行下列语句

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

  以后,程序的输出结果是

  A)11B)111C)1111D)11111

(29)有如下程序:

  #include

  usingnamespacestd;

  classpoint{

  public:

  staticintnumber;

  public:

  point(){number++;

  ~point(){number-;}

  };

  imtpoint:

:

number=0;

  voidmain(){

  point*ptr;

  printA,B;

  {

  point*ptr_point=newpoint{3};

  ptr=ptr_point;

  }

  pointC;

  cout<

:

NUMBER<

  delete[]ptr;

  }

  运行时输出的结果是

  A)3B)4

  C)6D)7

:

NUMBER<

:

NUMBER<

(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,20B)30,40C)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,2B)12,10 C)12,2D)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)运行时输出1011B)运行时输出1111

  C)运行时输出1112D)编译有错

(34)有如下程序:

  #include

  usingnamespacestd;

  intmain()

  {

  charstr[100],*p;

  cout<<”pleaseinputastring:

”;

  cin>>str;

  p=str;

  for(inti=0;*p!

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

  cout<

  retum0;

  }

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

  abcdefgabcd

  则输出结果是

  A)7B)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-25CCCCA26-30CDBDA30-35CBBBC

填空:

1、63 2、黑盒 3、DBMS  4、开发  5、数据字典  6、false 7、*P  8、fn(5.27)  9、tb

10、myclass&  11、基类 12、AAB  13、1个 14、11333  15、运行

2009年9月全国计算机等级考试二级二级C++笔试试卷

一、选择题(

(1)-(10)、(21)-(40)每题2分,(11)-(20)每题1分,共70分)

  

  

(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)可封装

  D)自顶向下

  C)模块化

  D)逐步求精

(27)有如下程序:

  #include

  usingnamespacestd;

  classToy{

  public:

  Toy(char*_n){strcpy(name,_n);count++;}

  ~Toy(){count--;}

  char*GetName(){returnname;}

  staticintgetCount(){returncount;}

  private:

  charname[10];

  staticintcount;

  };

  intToy:

:

count=0;

  intmail(){

  Toyt1(“Snoopy”),t2(“Mickey”),t3(“Barbie”);

  cout<

  return0;

  }

  运行时的输出结果是

  A)1  B)2  C)3  D)运行时出错

  

  (28)有如下程序

  #include

  usingnamespacestd;

  classA{

  public:

  A(inti):

rl(i){}

  voidprint(){cout<<’e’<

  voidprint()const{cout<<’C’<

  private:

  intrl;

  };

  intmain(){

  Aal

(2);    constAa2(4);

  Al.print();a2.print();

  Return0;

  }

  运行时的输出结果是

  A)运行时出错  B)E2-C16-  C)C4-C16-  D)E2-E4-

(11)已知函数FA调用FB,若要把这两个函数定义在同一个文件中,则

  A)FA必须定义在FB之前

  B)FB必须定义在FA之前

  C)若FA定义在FB之后,则FA的原型必须出现在FB的定义之前

  D)若FB定义在FA之后,则FB的原型必须出现在FA的定义之前

  

  (12)有如下两个类定义

  classAA{};

  classBB{

  AAv1,*v2;

  BBv3;

  Int*v4;

  };

  其中有一个成员变量的定义是错误的,这个变量是

  A)v1  B)v2  C)v3  D)v4

  

  (13)有如下类定义:

  classXX{

  intxdata;

  public:

  XX(intn=0):

 xdata(n){}

  };

  classYY:

publicXX{

  intydata;

  public:

  YY(intm=0,intn=0):

XX(m),ydat

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1