计算机2级C++等级考试word版.docx

上传人:b****8 文档编号:10943959 上传时间:2023-02-23 格式:DOCX 页数:14 大小:36.69KB
下载 相关 举报
计算机2级C++等级考试word版.docx_第1页
第1页 / 共14页
计算机2级C++等级考试word版.docx_第2页
第2页 / 共14页
计算机2级C++等级考试word版.docx_第3页
第3页 / 共14页
计算机2级C++等级考试word版.docx_第4页
第4页 / 共14页
计算机2级C++等级考试word版.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

计算机2级C++等级考试word版.docx

《计算机2级C++等级考试word版.docx》由会员分享,可在线阅读,更多相关《计算机2级C++等级考试word版.docx(14页珍藏版)》请在冰豆网上搜索。

计算机2级C++等级考试word版.docx

计算机2级C++等级考试word版

2010年3月计算机等级考试二级

C++笔试试题

  一、选择题(每小题2分,共70分)

  下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。

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

  

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

  A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n

  B)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)

  C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)

  D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)

  

(2)算法的时间复杂度是指

  A)算法的执行时间B)算法所处理的数据量

  C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数

  (3)软件按功能可以分为:

应用软件、系统软件和支撑软件(或工具软件)。

下面属于系统软件的是

  A)编辑软件B)操作系统C)教务管理系统D)浏览器

  (4)软件(程序)调试的任务是

  A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误

  C)发现并改正程序中的所有错误D)确定程序中错误的性质

  (5)数据流程图(DFD图)是

  A)软件概要设计的工具B)软件详细设计的工具

  C)结构化方法的需求分析工具D)面向对象方法的需求分析工具

  (6)软件生命周期可分为定义阶段,开发阶段和维护阶段。

详细设计属于

  A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段

  (7)数据库管理系统中负责数据模式定义的语言是

  A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言

  (8)在学生管理的关系数据库中,存取一个学生信息的数据单位是

  A)文件B)数据库C)字段D)记录

  (9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的

  A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段

  (10)有两个关系R和T如下:

  则由关系R得到关系T的操作是

  A)选择B)投影C)交D)并

(11)下列关于函数的描述中,错误的是

  A)函数可以没有返回值B)函数可以没有参数

  C)函数可以是一个类的成员D)函数不能被定义为模板

  (12)若MyClass是一个类名,且有如下语句序列

  MyClassc1,*c2;

  MyClass*c3=newMyClass;

  MyClass&c4=c1;

  上面的语句序列所定义的类对象的个数是

  A)1 B)2 C)3 D)4

  (13)下列关于继承方式的描述中,错误的是

  A)如果不显式地指定继承方式,缺省的继承方式是私有(private)

  B)采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员

  C)采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员

  D)采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员

  (14)将前缀运算符“--”重载为非成员函数,下列原型中,能正确用于类中说明的是

  A)Decr&operator--(int);

  B)Decroperator--(Decr&,int);

  C)friendDecr&operator--(Decr&);

  D)frlendDecroperator--(Decr&,int);

  (15)若MyTemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列

  MyTempp2;

  MyTempp3[2];

  编译系统在处理上面的语句序列时,所生成的模板MyTemp的实例的个数是

  A)1B)2C)3D)0

  (16)在C++中,cin是个

  A)类B)对象C)模板D)函数

  (17)在下列字符中,不允许作为C++标识符的是

  A)bB)BC)_D)2

  (18)下列叙述中,错误的是

  A)false是一个逻辑型常量B)"b"是一个字符型常量

  C)365是一个int常量D)3.1415926是一个double常量

  (19)若x和y是程序中的两个整型变量,则下列if语句中正确的是

  A)if(x==0)y=1;elsey=2;B)if(x==0)theny=1elsey=2;

  C)if(x==0)y=1elsey=2;D)ifx==0y=1;elsey=2;

  (20)要定义整型数组x,使之包括初值为O的三个元素,下列语句中错误的是

  A)intx[3]={0,0,0};B)intx[]={0};C)staticintx[3]={0};D)intx[]={0,0,0};

(21)关于函数中的<返回类型>,下列表述中错误的是

  A)<返回类型>中有可能包含关键字intB)<返回类型>中有可能包含自定义标识符

  C)<返回类型>中有可能包含字符*D)<返回类型>中可能包含[]

  (22)要定义一个引用变量p,使之引用类MyClass的一个对象,正确的定义语句是

  A)MyClassp=MyClass;B)MyClassp=newMyClass;

  C)MyClass&p=newMyClass;D)MyClassa,&p=a;

  (23)有如下两个类定义

  classXX{

  private:

  doublex1;

  protected:

  doublex2;

  public:

  doublex3;

  };

  classYY:

protectedXX{

  private:

  doubley1;

  protected:

  doubley2;

  public:

  doubley3;

  };

  在类YY中保护成员变量的个数是

  A)1B)2C)3D)4

  (24)下列关于运算符重载的描述中,错误的是

  A)可以通过运算符重载在C++中创建新的运算符

  B)赋值运算符只能重载为成员函数

  C)运算符函数重载为类的成员函数时,第一操作数是该类对象

  D)重载类型转换运算符时不需要声明返回类型

  (25)下列关于类模板的描述中,错误的是

  A)类模板的成员函数都是模板函数

  B)可以为类模板参数设置默认值

  C)类模板描述了一组类

  D)类模板中只允许有一个类型参数

  (26)下列控制格式输入输出的操作符中,能够设置浮点数精度的是

  A)setprecision

  B)setw

  C)setfill

  D)showpoint

(27)下列程序段中包含4个函数,其中具有隐含this指针的是

  intfun1();

  classTest{

  public:

  intfun2();

  friendintfun3();

  staticintfun4();

  };

  A)fun1B)fun2C)fun3D)fun4

  (28)有如下程序

  #include

  usingnamespacestd;

  classTest{

  public:

  Test(){}

  Test(constTest&t){cout<<1;}

  };

  Testfun(Test&u){Testt=u;returnt;}

  intmain(){Testx,y;x=fun(y);return0;}

  运行这个程序的输出结果是

  A)无输出B)1C)11D)111

  (29)有如下程序

  #include

  usingnamespacestd;

  classA{

  public:

  A(inti=0):

r1(i){}

  voidprint(){cout<<'E’<  voidprint()const{cout<<'C'<  voidprint(intx){cout<<'P'<  private:

  intr1;

  };

  intmain(){

  Aa1;

  constAa2(4);

  a1.print

(2);

  a1.print();

  return0;

  }

  运行时的输出结果是

  A)P8-E4B)P8-C16-C)P0-E4-D)P0-C16-

  (30)下列代码声明了3个类

  classPerson{};

  classStudent:

publicPerson{};

  classUndergraduate:

Student{};

  下列关于这些类之间关系的描述中,错误的是

  A)类Person是类Undergraduate的基类

  B)类Undergraduate从类Student公有继承

  C)类Student是类Person的派生类

  D)类Undergraduate是类Person的派生类

(31)有如下程序

  #include

  usingnamespacestd;

  ClassBase{

  public:

  Base(intx=0):

valB(x){cout<  ~Base(){cout<  private:

  intvalB;

  };

  classDerived:

publicBase{

  public:

  Derived(intx=0,inty=0):

Base(x),valD(y){cout<  ~Derived(){cout<  private:

  intvalD;

  };

  intmain(){

  Derivedobj12(2,3);

  retuen0;

  }

  运行时的输出结果是

  A)2332B)2323C)3232D)3223

  (32)下面是类Shape的定义:

  classShape{

  public:

  virtualvoidDraw()=0;

  };

  下列关于Shape类的描述中,正确的是

  A)类Shape是虚基类B)类Shape是抽象类

  C)类Shape中的Draw函数声明有误D)语句“Shapes;”能够建立Shape的一个对象s

  (33)将运算符“+”重载为非成员函数,下列原型声明中,错误的是

  A)MyClockoperator+(MyClock,long);

  B)MyClockoperator+(MyClock,MyClock);

  C)MyClockoperator+(long,long);

  D)MyClockoperator+(long,MyClock);

  (34)打开文件时可单独或组合使用下列文件打开模式

  ①ios_base:

:

app②ios_base:

:

binary

  ③ios_base:

:

in④ios_base:

:

out

  若要以二进制读方式打开一个文件,需使用的文件打开模式为

  A)①③B)①④C)②③D)②④

  (35)有如下程序:

  #include

  usingnamespacestd;

  ClassB{

  public:

  B(intxx):

x(xx){++cout;x+=10;}

  virtualvoidshow()const

  {cout<  protected:

  staticintcount;

  private:

  intx;

  };

  classD:

publicB{

  public:

  D(intxx,intyy):

B(xx),y(yy){++count;y+=100;}

  virtualvoidshow()const

  {cout<  private:

  inty;

  };

  intB:

:

count=0;

  intmain(){

  B*ptr=newD(10,20);

  ptr->show();

  deleteptr;

  return0;

  }

  运行时的输出结果是

  A)1_120B)2_120C)1_20D)2_20

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

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

  

(1)一个队列的初始状态为空。

现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为【1】。

  

(2)设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有【2】个元素。

  (3)设二叉树如下:

  

  对该二叉树进行后序遍历的结果为【3】。

  (4)软件是【4】、数据和文档的集合。

  (5)有一个学生选课的关系,其中学生的关系模式为:

学生(学号,姓名,班级,年龄),课程的关系模式为:

课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:

选课(学号,【5】,成绩)。

  (6)若x和y是两个整形变量,在执行了语句序列

  x=5;y=6;y+=x--;

  后,x+y的值为【6】。

  (7)在执行语句序列

  inti=0;doi++;while(i*i<10);

  时,do后面的循环体语句i++被执行的次数为【7】。

  (8)有如下的函数定义:

  intXfun(int*a,intn){

  intx=*a;

  for(int*pa=a+1;pa<>

  if(*pa>x)x=*pa;

  returnx;

  }

  若执行了语句

  intx[5]={23,46,78,55,16};

  后,通过表达式Xfun(x,5)调用该函数,则得到的返回值为【8】。

  (9)有如下的函数定义:

  intXfun(intx){

  inty=x;

  {intx=10;y+=x;}

  returnx+y;

  }

  通过表达式Xfun(5)调用该函数,则得到的返回值为【9】。

  (10)假定Xcs是一个类,该类中一个成员函数的原型为“Xcs*abc();”,则在类外定义时对应的函数头为【10】。

  (11)请将下面的类Date的定义补充完整,使得由语句

  DateFirstDay;

  定义的对象FirstDay的值为2010年1月1日。

  classDate{

  public:

  Date(【11】):

year(y),month(m),day(d){}

  private:

  intyear,month,day;//依次表示年、月、日

  };

  (12)请将下面的程序补充完整,使得程序输出“飘是张娜的书”。

  #include

  usingnamespacestd;

  classBook{

  public:

  Book(char*str){strcpy(title,str);}

  【12】voidPrintInfo(){cout<  protected:

  chartitle[50];

  };

  classMyBook:

publicBook{

  public:

  MyBook(char*s1,char*s2="张娜"):

【13】{strcpy(owner,s2);}

  virtualvoidPrintInfo(){cout<  private:

  charowner[10];

  };

  intmain(){

  Book*prt=newMyBook("飘");

  prt->PrintInfo();

  return0;

  }

  (13)在有理数类Rational中重载插入运算符<<,以便按a/q形式输出。

请将<<运算符函数的定义补充完整。

  classRational{

  public:

  Rational(intaa,intqq):

a(aa),q(qq){}

  friend【14】operator<<(ostream&out,Rational&x)

  {

  return(out<

<

  }

  private:

  inta,q;

  };

  (14)下面的函数定义是某函数模板能够生成的函数实例

  intsquare(intn){returnn*n;}

  doublesquare(doublen){returnn*n;}

  由此可知,该函数模板的定义是【15】

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

当前位置:首页 > 初中教育 > 学科竞赛

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

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