二级C++真题及答案解析.docx

上传人:b****4 文档编号:3543852 上传时间:2022-11-23 格式:DOCX 页数:48 大小:35.18KB
下载 相关 举报
二级C++真题及答案解析.docx_第1页
第1页 / 共48页
二级C++真题及答案解析.docx_第2页
第2页 / 共48页
二级C++真题及答案解析.docx_第3页
第3页 / 共48页
二级C++真题及答案解析.docx_第4页
第4页 / 共48页
二级C++真题及答案解析.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

二级C++真题及答案解析.docx

《二级C++真题及答案解析.docx》由会员分享,可在线阅读,更多相关《二级C++真题及答案解析.docx(48页珍藏版)》请在冰豆网上搜索。

二级C++真题及答案解析.docx

二级C++真题及答案解析

二级C++真题2017年9月及答案解析

(1/40)单项选择题

第1题

程序流程图中带有箭头的线段表示的是()

A.图元关系

B.数据流

C.控制流

D.调用关系

下一题

(2/40)单项选择题

第2题

结构化程序设计的基本原则不包括()

A.多态性

B.自顶向下

C.模块化

D.逐步求精

上一题下一题

(3/40)单项选择题

第3题

软件设计中模块划分应遵循的准则是()

A.低内聚低耦合

B.高内聚低耦合

C.低内聚高耦合

D.高内聚高耦合

上一题下一题

(4/40)单项选择题

第4题

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

A.可行性分析报告

B.软件需求规格说明书

C.概要设计说明书

D.集成测试计划

上一题下一题

(5/40)单项选择题

第5题

算法的有穷性是指()

A.算法程序的运行时间是有限的

B.算法程序所处理的数据量是有限的

C.算法程序的长度是有限的

D.算法只能被有限的用户使用

上一题下一题

(6/40)单项选择题

第6题

对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是()

A.快速排序

B.冒泡排序

C.直接插入排序

D.堆排序

上一题下一题

(7/40)单项选择题

第7题

下列关于栈的叙述正确的是()

A.栈按“先进先出”组织数据

B.栈按“先进后出”组织数据

C.只能在栈底插入数据

D.不能删除数据

上一题下一题

(8/40)单项选择题

第8题

在数据库设计中,将E-R图转换成关系数据模型的过程属于()

A.需求分析阶段

B.概念设计阶段

C.逻辑设计阶段

D.物理设计阶段

上一题下一题

(9/40)单项选择题

第9题

有三个关系R.S和T如下:

图片

由关系R和S通过运算得到关系T,则所使用的运算为()

A.并

B.自然连接

C.笛卡尔积

D.交

上一题下一题

(10/40)单项选择题

第10题

设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为( )

A.课号,成绩

B.学号,成绩

C.学号,课号

D.学号,姓名,成绩

上一题下一题

(11/40)单项选择题

第11题

下列关于对象初始化的叙述中,正确的是( )

A.定义对象的时候不能对对象进行初始化

B.定义对象之后可以显式地调用构造函数进行初始化

C.定义对象时将自动调用构造函数进行初始化

D.在一个类中必须显式地定义构造函数实现初始化

上一题下一题

(12/40)单项选择题

第12题

下列关于基类和派生类关系的叙述中,正确的是( )

A.每个类最多只能有一个直接基类

B.派生类中的成员可以访问基类中的任何成员

C.基类的构造函数必须在派生类的构造函数体中调用

D.派生类除了继承基类的成员,还可以定义新的成员

上一题下一题

(13/40)单项选择题

第13题

下列关于赋值运算符“=”重载的叙述中,正确的是( )

A.赋值运算符只能作为类的成员函数重载

B.默认的赋值运算符实现了“深层复制”功能

C.重载的赋值运算符函数有两个本类对象作为形参

D.如果己经定义了复制(拷贝)构造函数,就不能重载赋值运算符

上一题下一题

(14/40)单项选择题

第14题

下列关于模板的叙述中,正确的是( )

A.如果一个类中存在纯虚函数,这个类就是类模板

B.函数模板不能有形式参数表

C.类模板是一种参数化类型的类,是类的生成器

D.类模板中不能包含构造函数

上一题下一题

(15/40)单项选择题

第15题

下列关于C++预定义流对象的叙述中,正确的是( )

A.cin是C++预定义的标准输入流对象

B.cin是C++预定义的标准输入流类

C.cout是C++预定义的标准输入流对象

D.cout是C++预定义的标准输入流类

上一题下一题

(16/40)单项选择题

第16题

下列有关函数重载的叙述中,错误的是( )

A.函数重载就是用相同的函数名定义多个函数

B.重载函数的参数列表必须不同

C.重载函数的返回值类型必须不同

D.重载函数的参数可以带有默认值

上一题下一题

(17/40)单项选择题

第17题

下列有关类成员的叙述中,正确的是( )

A.友元函数是类的成员函数

B.类成员的默认访问权限是私有的

C.类成员函数必须声明为公有的

D.类的静态数据成员不能是常成员

上一题下一题

(18/40)单项选择题

第18题

下列有关类继承的叙述中,错误的是( )

A.继承可以实现软件复用

B.虚基类可以解决由多继承产生的二义性问题

C.派生类构造函数要负责调用基类的构造函数

D.派生类没有继承基类的私有成员

上一题下一题

(19/40)单项选择题

第19题

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

A.运算符重栽是多态性的一种表现

B.C++中可以通过运算符重载创造新的运算符

C.C++中所有运算符都可以作为非成员函数重载

D.重载运算符时可以改变其结合性

上一题下一题

(20/40)单项选择题

第20题

下列有关模板的叙述中,正确的是( )

A.函数模板不能含有常规形参

B.函数模板的一个实例就是一个函数定义

C.类模板的成员函数不能是模板函数

D.用类模板定义对象时,绝对不能省略模板实参

上一题下一题

(21/40)单项选择题

第21题

下列有关C++流的叙述中,错误的是( )

A.C++操作符setw设置的输出宽度永久有效

B.C++操作符endl可以实现输出的回车换行

C.处理文件I/O时,要包含头文件fstream

D.进行输入操作时,eof()函数用于检测是否到达文件尾

上一题下一题

(22/40)单项选择题

第22题

下列符号中能够作为C++标识符的是( )

A.const

B.2a

C.-shape

D.-count

上一题下一题

(23/40)单项选择题

第23题

已知枚举类型声明语句为:

  enumCOLOR{WHITE,YELLOW,GREEN=5,RED,BLACK=10};

  则下列说法中错误的是( )

A.枚举常量YELLOW的值为1

B.枚举常量RED的值为6

C.枚举常量BLACK的值为10

D.枚举常量WHITE的值为1

上一题下一题

(24/40)单项选择题

第24题

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

  for(inti=50;i>1;i-=2)count<´*´;

A.24

B.25

C.26

D.50

上一题下一题

(25/40)单项选择题

第25题

有如下定义:

  inta[5]={1,3,5,7,9},*p=a;

  下列表达式中不能得到数值5的是( )

A.a[2]

B.a[3]

C.*(p+2)

D.*p+4

上一题下一题

(26/40)单项选择题

第26题

已知函数f的原形是voidf(int*a,long&B);,变量v1、v2的定义是:

  intv1;longv2;

  下列调用语句中正确的是( )

A.f(v1,&v2);

B.f(v1,v2);

C.f(&v1,&v2);

D.f(&v1,v2);

上一题下一题

(27/40)单项选择题

第27题

有如下类定义:

  classPoint{

  private:

   staticinthow_many;

  };

  ______how_many=0;

  要初始化Point类的静态成员how_many,下划线处应填入的内容是( )

A.int

B.staticint

C.intPoint:

:

D.staticintPoint

上一题下一题

(28/40)单项选择题

第28题

在下列关键字中,不能用来表示继承方式的是( )

A.private

B.static

C.public

D.protected

上一题下一题

(29/40)单项选择题

第29题

已知Value是一个类,value是Value的一个对象。

下列以非成员函数形式重载的运算符函数原型中,正确的是( )

A.Valueoperator+(Valuev,inti);

B.Valueoperator+(Valuev=value,inti);

C.Valueoperator+(Valuev,inti=0);

D.Valueoperator+(Valuev=value,inti=0);

上一题下一题

(30/40)单项选择题

第30题

下面是一个模板声明的开始部分:

  Template<typenameT>double...

  由此可知( )

A.这可能是一个函数模板的声明

B.这可能是一个类模板的声明

C.这既可能是一个函数模板的声明,也可能是一个类模板的声明

D.这肯定是一个错误的模板声明

上一题下一题

(31/40)单项选择题

第31题

有如下4个语句:

  ①count<<´A´<<setfill(´x´)<<left<<setw(7)<<´B´<<endl;

  ②count<<setfill(´x´)<<left<<setw(7)<<´A´<<´B´<<endl;

  ③count<<´A´<<setfill(´*´)<<right<<setw(7)<<´B´<<endl;

  ④count<<setfill(´x´)<<right<<setw(7)<<´A´<<´B´<<endl;

其中能显示A******B的是( )

A.①和③

B.①和④

C.②和③

D.②和④

上一题下一题

(32/40)单项选择题

第32题

有如下类定义:

  ClassMyClass{

   intvalue;

  public:

   MyClass(intn):

value(n){}

   intgetValue()const{returnvalue;}

  };

  则类MyClass的构造函数的个数是( )

A.1个

B.2个

C.3个

D.4个

上一题下一题

(33/40)单项选择题

第33题

有如下类和对象的定义:

  classConstants{

  public:

   staticdoublegetPI(){return3.1416;}

  };

  Constantsconstants;

  下列各组语句中,能输出3.1416的是( )

A.cout<<constants->getPI();和cout<<Constants:

:

getPI();

B.cout<<constants.getPI();和cout<<Constants.getPI();

C.cout<<constants->getPI();和cout<<Constants->getPl();

D.cout<<constants.getPI();和cout<<Constants:

:

getPI();

上一题下一题

(34/40)单项选择题

第34题

有如下程序:

  #includc<iostream>

  usingnamespacestd;

  classVAC{

  public:

   intf()const{return3;}

   intf(){return5;}

  };

  intmain(){

   VACv1;

   constVACv2;

   cout<<v1.f()<<v2.f();

   return0;

  }

  运行时的输出结果是( )

A.53

B.35

C.55

D.33

上一题下一题

(35/40)单项选择题

第35题

有如下类的声明:

  classBase{

  protected:

   intamount;

  public:

   Base(intn=0):

amount(n){}

   intgetAmount()const{returnamount;}

  };

  classDerived:

publicBase{

  protected:

   intvalue

  public:

   Derived(intm,intn):

value(m),Base(n){}

   intgetData()const{returnvalue+amount;}

  };

已知x是一个Derived对象,则下列表达式中正确的是( )

A.x.value+x.getAmount()

B.x.getData()-x.getAmount()

C.x.getData()-x.amount

D.x.value+x.amount

上一题下一题

(36/40)单项选择题

第36题

有如下程序:

  #include<iostream>

  usingnamespacestd;

  classBase{

   intx;

  public:

   Base(intn=0):

x(n){cout<<n;)

   intgetX()const{returnx;}

  };

  classDerived:

publicBase{

   inty;

  public:

   Derived(intm,intn):

y(m,)Base(n){cout<<m;}

   Derived(intm):

y(m){cout<<m;}

  };

  intmain(){

   Derivedd1(3),d2(5,7)

   return0;

  }

运行时的输出结果是( )

A.375

B.357

C.0375

D.0357

上一题下一题

(37/40)单项选择题

第37题

下列有关抽象类和纯虚函数的叙述中,错误的是

A.拥有纯虚函数的类是抽象类,不能用来定义对象

B.抽象类的派生类若不实现纯虚函数,它也是抽象类

C.纯虚函数的声明以“=0;”结束

D.纯虚函数都不能有函数体

上一题下一题

(38/40)单项选择题

第38题

有如下程序:

  #include<iostream>

  usingnamespacestd;

  classAmount{

   intamount;

  public:

   Amount(intn=0):

amount(n){}

   intgetAmount()const{returnamount;}

   Amount&operator9=(Amounta){

    amount+=

A.amount;

    return______;

   }

  };

  intmain(){

   Amountx(3),y(7);

   x+=y,

   cout<<x.getAmount()<<endl;

   return0;

  }

已知程序的运行结果是10,则下划线处缺失的表达式是( )

[A].*this

B.this

C.&amount

D.amount

上一题下一题

(39/40)单项选择题

第39题

下列语句分别是不同程序中的第一个输入输出语句。

若去掉其中的“<<left”,输出效果将发生变化的是( )

A.cout<<left<<setfill(´*´)<<357;

B.cout<<left<<setw(5)<<357;

C.cout<<left<<setw(5)<<"ABCDE";

D.cout<<left<<"ABCDE";

上一题下一题

(40/40)单项选择题

第40题

有如下程序

  #include<iostream>

  usingnamespacestd;

  classGA{

  public:

   virtualintf(){return1;}

  };

  classGB:

publicGA{

  public:

   virtualintf(){return2;}

  };

  voidshow(GAg){cout<<g.f();}

  voiddisplay(GA&g){cout<<g.f();}

  intmain(){

   GAa;show(A);display(A);

   GBb;show(B);display(B);

  return0;

  }

运行时的输出结果是( )

A.1111

B.1211

C.1112

D.1212

上一题下一题

(1/1)基本操作题

第41题

使用VC6打开考生文件夹proj1下的工程proj1,其中有“沙发”类Sofa和主函数main的定义。

程序中位于每个//ERROR**********found**********下的语句行有错误,请加以更正。

更正后程序的输出应该是:

  座位数:

3

  颜色:

红色

  注意:

只能修改每个//ERROR**********found**********下的那一行,不要改动程序中的其他内容。

  #include<iostream>

  usingnamespacestd;

  classSofa{ //“沙发”类

  intseats; //座位数

  charcolor[10]; //颜色

  public:

  //ERROR******found******

  Sofa(ints,constchar*co)

  {

  //ERROR******found******

  if(co=NULL)

  color[0]=´\0´;

  else

  strcpy(color,co);

  }

  //ERROR******found******

  constchar*getSeats()const{returnseats;}

  constchar*getColor()const{returncolor;}

  };

  intmain(){

  Sofasafa(3);

  cout<<"座位数:

"<<sara.getSeats()<<endl;

  cout<<"颜色:

"<<sara.getColor()<<endl;

  return0;

  }_______

上一题下一题

(1/1)简单应用题

第42题

使用VC6打开考生文件夹proj2下的工程proj2,其中有元素类Element和队列类Queue的定义。

请在程序中的横线处填写适当的代码,然后删除横线,以实现上述类定义。

此程序的输出结果应为:

  3850

  507

  注意:

只能在横线处填写适当的代码,不要改动程序中的其他内容。

  #include<iostream>

  #include<cmath>

  #include<cstdlib>

  usingnamespacestd;

  #defineMaxLength100

  classElement{ //"元素"类

  public:

  intn;

  Element(inti=0):

n(i){}

  };

  classQueue{ //"队列"类

  Element{*element; //指向存储元素的数组的指针

  inttail; //队尾元素的下标

  public:

  Queue():

element(newElement[100]),tail(-1){}

  ~Queue(){delete[]element;}

  voidpush(Elementele); //在队列尾端添加一个元素

  Elementpop(); //在队列首端删除一个元素,返回被删元素

  Elementfront()const{returnelement[0];) //返回队首元素,但不从队列中删除该元素

  //******found******

  intsize()const{return(______);)//返回元素个数

  voidshow()const; //显示集合中所有元素

  };

  voidQueue:

:

push(Elementele){

  if(tail==MaxLength-1)

  return; //空间满,不做任何处理

  //******found******

  ______;

  }

  ElementQueue:

:

pop(){

  if(size()==0)exit

(1); //队列空,不做任何处理

  Elementtmp=element[0];

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

  element[i]=element[i+1];

  //******found******

  ______;

  returntmp;

  }

  voidQueue:

:

show()const{

  //******found******

  for(______)

  cout<<element[i].n<<´´;

  cout<<endl;

  }

  intmain(){

  Queueq;

  q.push(3);

  q.push(8);

  q.push(5);

  q.push(0);

  q.show();

  q.pop();

  q.pop();

  q.push(7);

  q.show();

  return0;

  }_______

上一题下一题

(1/1)综合应用题

第43题

使用VC6打开考生文件夹proj3下的工程proj3,其中声明了MyString类,它是一个用于表示字符串的

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

当前位置:首页 > 表格模板 > 合同协议

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

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