计算机等级 百分网手机站

最新计算机二级C++上机试题及答案(2)

时间:2017-08-27 18:02:21 计算机等级 我要投稿

2016最新计算机二级C++上机试题及答案

  A.并B.自然连接C.笛卡尔积D.交

  参考答案:D

  参考解析:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以8错误。笛卡尔积是用R集合中元素为第一元素,s集合中元素为第二元素构成的有序对,所以C错误。根据关系T可以很明显地看出是从关系R 与关系s中取得相同的关系组所以取得是交运算,选择D。

  9下列符号中,正确的c++标识符是( )。

  A.enumB.2bC.f00一9D._32

  参考答案:D

  参考解析:本题考查c++标识符的命名规则,规定如下:①所有标识符可以由字母、数字和下画线组成,且必须以字母或F画线开头;②c++的关键字不能作为标识符;③大、小写字母表示不同意义,即代表不同的标识符,如mun和Mu0。A选项是C++的关键字,B选项不能以数字开头,C选项“一”不能用于组成标识符。

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

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

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

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

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

  参考答案:A

  参考解析:cin是C++预定义的标准输入流对象,tOUt是C++预定义的标准输出流对象。

  11下列情况中,不会调用拷贝构造函数的是(  )。

  A.用一个对象去初始化同一类的另一个新对象时

  B.将类的一个对象赋值给该类的另一个对象时

  C.函数的形参是类的对象,调用函数进行形参和实参结合时

  D.函数的返回值是类的对象,函数执行返回调用时

  参考答案:B

  参考解析:本题考查复制构造函数,在以下3种情况下使用:①程序中需要新建立一个对象,并用另一个对象对它初始化;②函数的参数为类的对象;③函数的返回值是类的对象。其中B选项是由赋值运算符重载实现的。

  12下列叙述中正确的是( )。

  A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的

  B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构

  C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构

  D.线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性

  参考答案:B

  参考解析:线性链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以一般要多于顺序存储结构。

  13类的析构函数的作用是( )。

  A.一般成员函数的初始化B.类的初始化C.对象的初始化D.删除类创建的对象

  参考答案:D

  参考解析:析构函数就是用来释放对象的.它的调用完成之后,对象也就消失了,相应的内存空间也被释放了。

  14下列运算符不能重载为友元函数的是( )。

  A.=()( )->B. + - ++ --C.> < >= <=D.+= -= *=/=

  参考答案:A

  参考解析:关于运算符重载为友元函数有如下规定:①一般情况下,单目运算符最好重载为类的成员函数,双目运算符则最好重载为类的友元函数;②双目运算符“=、()、[]、->”不能重载为类的友元函数。所以本题答案为A。

  15下面关于运算符重载的描述错误的是( )。

  A.运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构

  B.不是所有的运算符都可以进行重载

  C.运算符函数的调用必须使用关键字operat。

  D.在C+十语言中不可通过运算符重载创造出新的运算符

  参考答案:C

  参考解析:例如“::”运算符就不能被重载;通过重载可以创造新的运算方式,但是不能臆造新的运算符;定义的时候必须使用关键字0perator,而调用时可直接使用运算符。

  16当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。

  A.ios::inB.ios::0utC.ios::in I ios::0utD.以上都不对

  参考答案:D

  参考解析:

  使用fstream类建立文件流必须定义打开方式,否则编译器无法判断该文件流是读还是写。

  17由于常对象不能被更新,因此( )。

  A.通过常对象只能调用它的常成员函数

  B.通过常对象只能调用静态成员函数

  C.常对象的成员都是常成员

  D.通过常对象可以调用任何不改变对象值的成员函数

  参考答案:A

  参考解析:本题考查常对象的基本知识,常对象只能调用它的常成员函数,而不能调用非const函数,常对象的成员函数不一定都是常成员函数,只需保证其数据成员是常数据成员即可。所以本题选A。

  18支持子程序调用的数据结构是(  )。

  A.栈B.树C.队列D.二叉树

  参考答案:A

  参考解析:栈支持子程序调用栈是一种只能在一端进行插入或删除的线性表,在主程序凋用子函数时要首先保存主程序当前的状态,然后转去执行子程序.最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A。

  19有如下类定义:

  class B

  {

  public:void funl(){}

  private:void fun2(){}

  protected:void fun3(){}

  };

  class D:public B

  j

  protected:void fun4(){}

  };

  若obj是类D的对象,则下列语句中不违反访问控制权限的是(  )。

  A.obj.fun1();B.obj.fun2();C.obj.tim3();D.ohj.fun4();

  参考答案:A

  参考解析:本题考查公用继承对基类成员的访问属性。在公用继承中,基类的公用成员和保护成员在派生类中保持原有的访问属性,其私有成员仍为基类私有。所以在本题中,在类外引用成员函数时,派生对象只能引用基类的公用成员函数fun1,故本题答案为A。