最新国家计算机等级考试二级C++笔试真题.docx

上传人:b****7 文档编号:26627285 上传时间:2023-06-20 格式:DOCX 页数:17 大小:44.51KB
下载 相关 举报
最新国家计算机等级考试二级C++笔试真题.docx_第1页
第1页 / 共17页
最新国家计算机等级考试二级C++笔试真题.docx_第2页
第2页 / 共17页
最新国家计算机等级考试二级C++笔试真题.docx_第3页
第3页 / 共17页
最新国家计算机等级考试二级C++笔试真题.docx_第4页
第4页 / 共17页
最新国家计算机等级考试二级C++笔试真题.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

最新国家计算机等级考试二级C++笔试真题.docx

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

最新国家计算机等级考试二级C++笔试真题.docx

最新国家计算机等级考试二级C++笔试真题

2022年3月国家计算机等级考试二级C++笔试真题

2022年3月计算机等级考试二级C++笔试真题

  一、选择题

  〔1〕以下关于栈表达正确的选项是

  A〕栈顶元素最先能被删除

  B〕栈顶元素最后才能被删除

  C〕栈底元素永远不能被删除

  D〕以上三种说法都不对

  〔2〕以下表达中正确的选项是

  A〕有一个以上根结点的数据结构不一定是非线性结构

  B〕只有一个根结点的数据结构不一定是线性结构

  C〕循环链表是非线性结构

  D〕双向链表是非线性结构

  〔3〕某二叉树共有7个结点,其中叶子结点只有1个,那么该二叉树的深度为〔假设根结点在第1层〕

  A〕3

  B〕4

  C〕6

  D〕7

  〔4〕在软件开发中,需求分析阶段产生的主要文档是

  A〕软件集成测试方案

  B〕软件详细设计说明书

  C〕用户手册

  D〕软件需求规格说明书

  〔5〕结构化程序所要求的根本结构不包括

  A〕顺序结构

  B〕GOTO跳转

  C〕选择〔分支〕结构

  D〕重复〔循环〕结构

  〔6〕下面描述中错误的选项是

  A〕系统总体结构图支持软件系统的详细设计

  B〕软件设计是将软件需求转换为软件表示的过程

  C〕数据结构与数据库设计是软件设计的任务之一

  D〕PAD图是软件详细设计的表示工具

  〔7〕负责数据库中查询操作的数据库语言是

  A〕数据定义语言

  B〕数据管理语言

  C〕0.369

  D〕整数集合{1,2,3,4,5}

  〔11〕为了提高函数调用的实际运行速度,可以将较简单的函数定义为

  A〕内联函数

  B〕重载函数

  C〕递归函数

  D〕函数模板

  〔12〕假设AA为一个类,a为该类的非静态数据成员,在该类的一个成员函数定义中访问a时,其书写格式为

  A〕a

  B〕AA.a

  C〕a()

  D〕AA:

:

a()

  〔13〕当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是

  A〕任何

  B〕公有或保护

  C〕保护或私有

  D〕私有

  〔14〕假设要对Data类中重载的加法运算符成员函数进行声明,以下选项中正确的选项是

  A〕Data+(Data);

  B〕Dataoperator+(Data);

  C〕Data+operator(Data);

  D〕operator+(Data,Data);

  〔15〕以下关于函数模板的描述中,正确的选项是

  A〕函数模板是一个实例函数

  B〕使用函数模板定义的函数没有返回类型

  C〕函数模板的类型参数与函数的参数相同

  D〕通过使用不同的类型参数,可以从函数模板得到不同的实例函数

〔16〕C++系统预定义了4个用于标准数据流的对象,以下选项中不属于此类对象的是

  A〕cout

  B〕cin

  C〕cerr

  D〕cset

  〔17〕Windows环境下,由C++源程序文件编译而成的目标文件的扩展名是

  A〕cpp

  B〕exe

  C〕obj

  D〕lik

  〔18〕字符串“a+b=12\n\t〞的长度为

  A〕12

  B〕10

  C〕8

  D〕6

  〔19〕有如下程序:

  #include  usingnamespacestd;

  intmain(){

  intf,f1=0,f2=1;

  for(inti=3;i<=6;i++){

  f=f1+f2;

  f1=f2;f2=f;

  }

  cout<  return0;

  }

  运行时的输出结果是

  A〕2

  B〕3

  C〕5

  D〕8

  〔20〕有如下程序:

  #include  usingnamespacestd;

  intmain(){

  inta[6]={23,15,64,33,40,58};

  ints1,s2;

  s1=s2=a[0];

  for(int*p=a+1;p

  if(s1>*p)s1=*p;

  if(s2<*p)s2=*p;

  }

  cout<<

  return0;

  }

  运行时的输出结果是

  A〕23

  B〕58

  C〕64

  D〕79

  〔21〕有如下程序:

  #include  usingnamespacestd;

  voidf1(int&x,int&y){intz=x;x=y;y=z;}

  voidf2(intx;inty){intz=x;x=y;y=z;}

  intmain(){

  intx=10,y=26;

  f1(x,y);

  f2(x,y);

  cout<  return0;

  }

  运行时的输出结果是

  A〕10

  B〕16

  C〕26

  D〕36

  〔22〕有如下程序:

  #include  usingnamespacestd;

  classXA{

  inta;

  public:

  staticintb;

  XA(intaa):

a(aa){b++;}

  ~XA(){}

  intget(){returna;}

  };

  intXA:

:

b=0;

  intmain(){

  XAd1

(2),d2(3);

  cout<  return0;

  }

  运行时的输出结果是

  A〕5

  B〕6

  C〕7

  D〕8

  〔23〕有如下程序:

  #include  usingnamespacestd;

  classPoint{

  intx,y;

  public:

  Point(intx1=0,inty1=0):

x(x1),y(y1){}

  intget(){returnx+y;}

  };

  classCircle{

  Pointcenter;

  intradius;

  public:

  Circle(intcx,intcy,intr):

center(cx,cy),raaius(r){}

  intget(){returncenter.get()+radius;}

  };

  intmain(){

  Circlec(3,4,5);

  cout<<

  return0;

  }

  运行时的输出结果是

  A〕5

  B〕7

  C〕9

  D〕12

  〔24〕假设要对类BigNumber中重载的类型转换运算符long进行声明,以下选项中正确的选项是

  A〕operatorlong()const;

  B〕operatorlong(BigNumber);

  C〕longoperatorlong()const;

  D〕longoperatorlong(BigNumber);

  〔25〕有如下函数模板定义:

  template  T1FUN(T2n){returnn*5.0;}

  假设要求以int型数据9作为函数实参调用该模板,并返回一个double型数据,那么该调用应表示为

  A〕FUN(9)

  B〕FUN<9>

  C〕FUN(9)

D〕FUN<9>(double)

 〔26〕以下语句都是程序运行时的第1条输出语句,其中一条语句的输出效果与其他三条语句不同,该语句是

  A〕cout<<12345;

  B〕cout<<12345;

  C〕cout<<12345;

  D〕cout<  〔27〕以下关于析构函数的描述中,错误的选项是

  A〕析构函数可以重载

  B〕析构函数由系统自动调用

  C〕每个对象的析构函数只被调用一次

  D〕每个类都有析构函数

  〔28〕以下关于构造函数的描述中,错误的选项是

  A)构造函数名与类名相同

  B〕构造函数可以有返回值

  C)构造函数可以重载

  D〕每个类都有构造函数

  〔29〕假设PAT是一个类,那么程序运行时,语句“PAT(*ad)[3];〞调用PAT的构造函数的次数是

  A〕0

  B〕1

  C〕2

  D〕3

  〔30〕以下描述中,错误的选项是

  A〕公有继承时基类中的公有成员在派生类中仍是公有成员

  B〕公有继承时基类中的保护成员在派生类中仍是保护成员

  C〕保护继承时基类中的公有成员在派生类中仍是公有成员

  D〕保护继承时基类中的保护成员在派生类中仍是保护成员

  〔31〕生成派生类对象时,派生类构造函数调用基类构造函数的条件是

  A〕无需任何条件

  B〕基类中显式定义了构造函数

  C〕派生类中显式定义了构造函数

  D〕派生类构造函数明确调用了基类构造函数

  〔32〕以下关于派生类和基类的描述中,正确的选项是

  A〕派生类成员函数只能访问基类的公有成员

  B〕派生类成员函数只能访问基类的公有和保护成员

  C〕派生类成员函数可以访问基类的所有成员

  D〕派生类对基类的默认继承方式是公有继承

  〔33〕有如下类模板定义:

  template  classBigNumber{

  longn;

  public:

  BigNumber(Ti):

n(i){}

  BigNumberoperator+(BigNumberb){

  returnBigNumber(n+b.n);

  }

  };

  己知b1、b2是BigNumber的两个对象,那么以下表达式中错误的选项是

  A〕bl+b2

  B〕b1+3

  C〕3+b1

  D〕3+3

  〔34〕以下关于文件流的描述中,正确的选项是

  A〕文件流只能完成针对磁盘文件的输入输出

  B〕建立一个文件流对象时,必须同时翻开一个文件

  C〕假设输入流要翻开的文件不存在,将建立一个新文件

  D〕假设输出流要翻开的文件不存在,将建立一个新文件

  〔35〕有如下程序:

  #include  usingnamespacestd;

  classPair{

  intm,n;

  public:

  Pair(intj,intk):

m(j),n(k){}

  intget(){returnm;}

  intget()const{returnm+n;}

  };

  intmain(){

  Paira(3,5);

  constPairb(3,5);

  cout+a.get()<  return0;

  }

  运行时的输出结果是

  A〕33

  B〕38

  C〕83

  D〕88

 二、填空题

  〔1〕有序线性表能进行二分查找的前提是该线性表必须是【1】存储的。

  〔2〕一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF。

那么后序遍历结果为【2】。

  〔3〕对软件设计的最小单位(模块或程序单元)进行的测试通常称为【3】测试。

  〔4〕实体完整性约束要求关系数据库中元组的【4】属性值不能为空。

  〔5〕在关系A(S,SN,D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,那么称【5】是关系A的外码。

  〔6〕假设有定义语句“intx=10,y=20,z=20;〞,那么表达式x>z&&y==z的值为【6】。

  〔7〕有如下语句序列:

  intx=-10;while(++x){}

  运行时while循环体的执行次数为【7】。

  〔8〕有如下语句序列:

  intarr[2][2]={{9,8},{7,6}};

  int*p=arr[0]+1;cout<<*p<  运行时的输出结果是【8】。

  〔9〕函数fun的功能是将一个数字字符串转换为一个整数,请将函数补充完整。

  intfun(char*str){

  intnum=0;

  while(*str){

  num*=10;

  num+=【9】;

  str++;

  }

  returnnum;

  }

  〔10〕假设要将函数“voidFriFun();〞声明为类MyClass的友元函数,那么应在类MyClass的定义中参加语句【10】。

  〔11〕以下程序的输出结果为012,请根据注释将横线处的缺失局部补充完整。

  #include  usingnamespacestd;

  classTest{

  public:

  Test(inta){data=a;}

  ~Test(){}

  voidprint(){cout<  private:

  intdata;

  };

  intmain(){

  Testt[3]={【11】};//对有3个元素的Test类对象数组t初始化t[i].print();

  for(inti=0;i<3;i++)

  return0;

  }

  〔12〕请在横线处填写派生类Derived的继承方式,使得程序的输出结果为Base。

  #include  usingnamespacestd;

  classBase{

  public:

  voidprint(){cout<<"Base";}

  };

  classDerived:

【12】Base{};

  intmain(){

  Derivedd;

  d.print();

  return0;

  }

  〔13〕以下程序的输出结果为12.324.6,请将横线处的缺失局部补充完整。

  #include  usingnamespacestd;

  classBase{

  public:

  Base(inta):

idata(a){}

  voidprint(){cout<<'';}

  private:

  intidata;

  };

  classDerived:

publicBase{

  public:

  Derived(inta;doubleb):

【13】,ddata(b){}

  voidprint(){Base:

:

print();cout<<'';}

  private:

  doubleddata;

  };

  intmain(){

  Deriveddl(1,2.3),d2(2,4.6);

  d1.print();

  d2.print();

  return0;

  }

  〔14〕以下程序的输出结果为-5/8-3/4,请将横线处的缺失局部补充完整。

  #include  usingnamespacestd;

  classFraction{//“分数〞类

  public:

  Fraction(doublea,doubleb):

num(a),den(b){}

  ~Fraction(){}

  //重载取负运算符“-〞,返回一个分数对象,其分子是原来分子的相反数。

  Fractionoperator-(){

  【14】

  returnf;

  }

  voidprint(){cout<<'

<

?

;>  private:

  doublenum;//分子

  doubleden;//分母

  };

  intmain(){

  Fractionf1(5;8),f2(3,4);

  (-f1).print();(-f2).print();

  return0;

  }

  〔15〕函数Min的功能是返回具有n个元素的数组array中的最小值。

请将横线处的缺失局部补充完整,使得程序的输出结果为1.24。

  #include  usingnamespacestd;

  template  TMin(T*array,intn){

  Tmin=array[0];

  for(inti=1;i  if(array[i]  returnmin;

  }

  intmain(){

  doublearr[8]={5.2,48.45,41.01,42,51.2,1.24,14.12,42};

  cout<<【15】;

  return0;

  }

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

当前位置:首页 > 自然科学 > 物理

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

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