全国计算机二级C++考试真题及答案.docx

上传人:b****8 文档编号:9587699 上传时间:2023-02-05 格式:DOCX 页数:12 大小:20.69KB
下载 相关 举报
全国计算机二级C++考试真题及答案.docx_第1页
第1页 / 共12页
全国计算机二级C++考试真题及答案.docx_第2页
第2页 / 共12页
全国计算机二级C++考试真题及答案.docx_第3页
第3页 / 共12页
全国计算机二级C++考试真题及答案.docx_第4页
第4页 / 共12页
全国计算机二级C++考试真题及答案.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

全国计算机二级C++考试真题及答案.docx

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

全国计算机二级C++考试真题及答案.docx

全国计算机二级C++考试真题及答案

2005年9月全国计算机二级C++考试真题及答案

(考试时间90分钟,满分100分)一、选择题(每小题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)PDL(过程设计语言)

B)PAD图

C)N-S图  

D)DFD图

(7)下列叙述中正确的是

A)软件交付使用后还需要进行维护

B)软件一旦交付使用就不需要再进行维护

C)软件交付使用后其生命周期就结束

D)软件维护是指修复程序中被破坏的指令

(8)数据库设计的根本目标是要解决

A)数据共享问题  

B)数据安全问题

C)大量数据存储问题

D)简化数据维护

(9)设有如下关系表:

则下列操作中正确的是

A)T=R∩S

B)T=R∪S

C)T=R×S

D)T=R/S

(10)数据库系统的核心是

A)数据模型  

B)数据库管理系统

C)数据库  

D)数据库管理员

(11)下列关于C++函数的叙述中,正确的是

A)每个函数至少要具有一个参数

B)每个函数都必须返回一个值

C)函数在被调用之前必须先声明

D)函数不能自己调用自己

(12)下列关于类和对象的叙述中,错误的是

A)一个类只能有一个对象

B)对象是类的具体实例

C)类是对某一类对象的抽象

D)类和对象的关系是一种数据类型与变量的关系

(13)在C++中,用于实现运行时多态性的是

A)内联函数

B)重载函数

C)模板函数

D)虚函数

(14)下列关于运算符重载的叙述中,正确的是

A)通过运算符重载,可以定义新的运算符

B)有的运算符只能作为成员函数重载

C)若重载运算符+,则相应的运算符函数名是+

D)重载一个二元运算符时,必须声明两个形参

(15)下列关于模板的叙述中,错误的是

A)模板声明中的第一个符号总是关键字template

B)在模板声明中用<和>括起来的部分是模板的形参表

C)类模板不能有数据成员

D)在一定条件下函数模板的实参可以省略

(16)对于语句cout<<

A)“cout”是一个输出流对象

B)“endl”的作用是输出回车换行

C)“x”是一个变量  

D)“<<”称作提取运算符

(17)下列字符串中,正确的C++标识符是

A)foo-1

B)2b

C)new

D)_256

(18)已知枚举类型定义语句为:

    enumToken{NAME,NUMBER,PLUS=5,MINUS,PRINT=10};

则下列叙述中错误的是

A)枚举常量NAME的值为1

B)枚举常量NUMBER的值为1

C)枚举常量MINUS的值为6

D)枚举常量PRINT的值为10

(19)执行语句序列

inti=0;while(i><25)i+=3;cout<

输出结果是

A)24

B)25

C)27

D)28

(20)要定义一个具有5个元素的一维数组vect,并使其各元素的初值依次是30,50,-88,0和0,则下列定义语句中错误的是

A)intvect[]={30,50,-88};

B)intvect[]={30,50,-88,0,0};

C)intvect[5]={30,50,-88};

D)intvect[5]={30,50,-88,0,0};

(21)有如下程序:

  #include

voidfun(int&x,inty){intt=x;x=y;y=t;}

intmain()

{

  inta[2]={23,42};

  fun(a[1],a[0]);

  std:

:

cout<

:

endl;

    return0;

}

执行后的输出结果是

A)42,42

B)23,23

C)23,42

D)42,23

(22)有如下类声明:

  classFoo{  intbar;  };

  则Foo类的成员bar是

A)公有数据成员

B)公有成员函数

C)私有数据成员

D)私有成员函数

(23)有如下类声明:

classMyBASE{

  intk;

public:

  voidset(intn){k=n;}

  intget()const{returnk;}

};

classMyDERIVED:

protectedMyBASE{

protected:

  intj;

public:

  voidset(intm,intn){MyBASE:

:

set(m);j=n;}

  intget()const{returnMyBASE:

:

get()+j;}

};

则类MyDERIVED中保护的数据成员和成员函数的个数是

A)4

B)3

C)2

D)1

(24)已知在一个类体中包含如下函数原型:

VOLUMEoperator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是

A)这是运算符-的重载运算符函数

B)这个函数所重载的运算符是一个一元运算符

C)这是一个成员函数

D)这个函数不改变类的任何数据成员的值

(25)有如下函数模板定义:

  template

  Tfunc(Tx,Ty){  returnx*x+y*y;}

在下列对func的调用中,错误的是

A)func(3,5);

B)func(3.0,5.5);

C)func(3,5.5);

D)func(3,5.5);

(26)有如下程序:

#include

  usingnamespacestd;

  intmain()

  {

      cout.fill('*');

      cout.width(6);

      cout.fill('#');

      cout<<123<

      return0;

  }

执行后的输出结果是

A)###123

B)123###

C)***123

D)123***

(27)在下列函数原型中,可以作为类AA构造函数的是

A)voidAA(int);

B)intAA();

C)AA(int)const;

D)AA(int);

(28)下列关于this指针的叙述中,正确的是

A)任何与类相关的函数都有this指针  

B)类的成员函数都有this指针

C)类的友元函数都有this指针

D)类的非静态成员函数才有this指针

(29)有如下程序:

#include

usingnamespacestd;

classTest{

public:

  Test(){n+=2;}

  ~Test(){n-=3;}

  staticintgetNum(){returnn;}

private:

  staticintn;

};

intTest:

:

n=1;

intmain()

{

  Test*p=newTest;

  deletep;

  cout<<"n="<

:

getNum()<

  return0;

}

执行后的输出结果是

A)n=0

B)n=1

C)n=2  

D)n=3

(30)有如下程序:

#include

usingnamespacestd;

classA{

public:

  A(){cout<<"A";}

};

classB{public:

B(){cout<<"B";}};

classC:

publicA{

  Bb;

public:

  C(){cout<<"C";}

};

intmain(){  Cobj;  return0;}

执行后的输出结果是

A)CBA

B)BAC

C)ACB

D)ABC

(31)有如下类声明:

  classXA{

  intx;

  public:

  XA(intn){x=n;}

  };

  classXB:

publicXA{

  inty;

  public:

  XB(inta,intb);

  };

  在构造函数XB的下列定义中,正确的是

A)XB:

:

XB(inta,intb):

x(a),y(b){}

B)XB:

:

XB(inta,intb):

XA(a),y(b){}

C)XB:

:

XB(inta,intb):

x(a),XB(b){}

D)XB:

:

XB(inta,intb):

XA(a),XB(b){}

(32)有如下程序:

#include

usingnamespacestd;

classBASE{

public:

  ~BASE(){cout<<"BASE";}

};

classDERIVED:

publicBASE{

public:

  ~DERIVED(){cout<<"DERIVED";}

};

intmain(){DERIVEDx;return0;}

执行后的输出结果是

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<

PQMN?

的地址

D)执行语句序列char  x[80];cin.getline(x,80);时,若键入

  Happy  new  year

  则x中的字符串是"Happy"

(35)有如下程序:

  #include

  usingnamespacestd;

  classAA{

  intn;

  public:

  AA(intk):

n(k){}

  intget(){returnn;}

  intget()const{returnn+1;}

  };

  intmain()

  {

  AAa(5);

  constAAb(6);

  cout<

  return0;

  }

  执行后的输出结果是

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。

请在横线处填上适当内容,实现该函数。

boolfun(char*str)

{

inti=0,j=0;

while(str[j])  【6】  ;

for(j--;i

returni  【7】  j;

}

  

(7)执行语句序列

intx=10,&r=x;  

cout><<<'-'<<

输出结果为  【8】  。

(8)下列程序的输出结果为

Objectid=0

Objectid=1

请将程序补充完整。

#include

usingnamespacestd;

classPoint

{

public:

Point(intxx=0,intyy=0){X=xx;Y=yy;countP++;}

~Point(){countP--;}

intGetX(){returnX;}

intGetY(){returnY;}

staticvoidGetC(){cout<<"Objectid="<<

private:

intX,Y;

staticintcountP;

};

  【9】    //静态数据成员的初始化

intmain()

{

  Point:

:

GetC();

PointA(4,5);

A.GetC();

return0;

}

(9)非成员函数应声明为类的  【10】  函数才能访问这个类的private成员。

(10)派生类中的成员不能直接访问基类中的  【11】  成员。

(11)下列程序的输出结果为2,请将程序补充完整。

#include

usingnamespacestd;

classBase

{

public:

  【12】  voidfun(){cout<<1;}

};

classDerived:

publicBase

{

public:

voidfun(){cout<<2;}

};

intmain()

{

Base*p=newDerived;

p->fun();

deletep;

  return0;

}

(12)请将下列类定义补充完整。

classBase{public:

voidfun(){cout<<"Base:

:

fun"<

classDerived:

publicBase{

public:

voidfun(){

    【13】    //显式调用基类的fun函数

  cout<<"Derived:

:

fun"<

}};

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

(14)下面是一个栈类的模板,其中push函数将元素i压入栈顶,pop函数弹出栈顶元素。

栈初始为空,top值为0,栈顶元素在stack[top-1]中,在下面横线处填上适当语句,完成栈类模板的定义。

template

classTstack

{

enum{size=1000};

Tstack[size];

inttop;

public:

Tstack():

top(0){}

voidpush(constT&i){

  if(top

  stack[top++]=i;

}

Tpop(){

      if(top==0)exit

(1);    //栈空时终止运行

  return  【15】  ;

}

};

参考答案:

一、选择题:

01.C02.A03.D04.D05.C06.D07.A08.A09.B10.B11.C12.A13.D14.B15.C

16.D17.D18.A19.C20.A21.B22.C23.B24.B25.C26.A27.D28.D29.A30.D

31.B32.D33.C34.A35.B

二、填空题:

36.数据库系统37.空间38.驱动模块39.3240.存储41.J++;%26gt;=42.10-1043.intpoint:

:

countp=0

44.友元45.私有46.virtual47.Base:

:

fun()48.成员49.stack[--top]

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

当前位置:首页 > 高等教育 > 医学

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

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