2017年12月计算机二级考试习题及答案:C++

  21 [单选题] 某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( )。

  A.3

  B.4

  C.6

  D.7

  参考答案:D

  参考解析:

  根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总比度为2的结点多一个,所以本题中度为2的结点为1-1=0个,所以可以知道本题目中的二叉树的每一个结点都有一个分支,所以共7个结点共7层,即度为7。

  22 [单选题] 如下函数模板:

  templateT square(T x){return x*x;}

  其中T是( )。

  A.函数形参

  B.函数实参

  C.模板形参

  D.模板实参

  参考答案:C

  参考解析:

  本题考查模板函数的基本概念,根据模板函数的定义,T是模板形参,所以答案为C。

  23 [单选题] 下列运算符中,可以重载为非成员函数的是( )。

  A.=

  B.>>.

  C.[]

  D.( )

  参考答案:B

  参考解析:

  赋值操作符=、下标操作符[]和箭头操作符->必须定义为类成员函数,而输入输出操作符可以定义为非成员函数。故本题答案为B选项。

  24 [单选题] 有如下程序:

2017年12月计算机二级C++考试冲刺模拟试卷(1)

  运行后的输出结果是( )。

  A.5:4 20.52

  B.5:4 20:52

  C.5,4 20,52

  D.5,4 20:52

  参考答案:A

  参考解析:

  c++中,eonst对象只能使用eonst成员函数,非eonst对象可以使用任一成员;题意中两个print()函数属于基于cons|的重载函数,所以对于非eonst对象a,调用非eonst的成员函数print(),输出:5:4;对于cons|对象b,输出:20,52。故本题答案为A选项。

  25 [单选题] 下列有关指针的操作中,正确的是( )。

  A.int a=10;void*ptr=&a;cout<<*(ptr);

  B.int * ptr=new int[10];delete ptr;

  C.i.t Array[4];*(Array+3)=10;

  D.int*ptr=new int*[10];

  参考答案:C

  参考解析:

  变量a是整型,所以地址为整型指针,不能赋给void*类型,选项A错误;使用new分配数组空间时,必须使用delete[]来释放数组空间,选项B错误;new int$[10]是分配了l0个整型指针数组,数组的每个元素都是整型指针,它无法赋给整型指针变量ptr,选项D错误。本题答案为C选项。

  26 [单选题] 有如下程序:

2017年12月计算机二级C++考试冲刺模拟试卷(1)

  执行这个程序的输出结果是( )。

  A.CCCC

  B.CCC

  C.CC

  D.C

  参考答案:B

  参考解析:

  本题考查类的析构函数,题目中定义了类的一个对象a,对象指针*b,对象数组d[2],当程序执行完后,析构函数执行了3次,输出“CCC”,对象指针不会执行析构函数。所以本题答案为B。

  27 [单选题] 下列符号中能够作为C++标识符的是( )。

  A.const

  B.2a

  C._shape

  D.-count

  参考答案:C

  参考解析:

  本题考查C++标识符的命名规则,其规则有如下几点:①所有标识符必须由字母、数字或下画线组成,且必须由字母或下画线开头;②所有标识符不能使用C++已有的关键字;③大、小写字母表示不同意义,即代表不同的标识符。选项A是关键字,选项B不能以数字开头,选项D包含了字符”-”,且不能以此字符开头。故答案为C。

  28 [单选题] 下列关于运算符函数的描述中,错误的是( )。

  A.运算符函数的名称总是以operator为前缀

  B.运算符函数的参数可以是对象

  C.运算符函数只能定义为类的成员函数

  D.在表达式中使用重载的运算符相当于调用运算符重载函数

  参考答案:C

  参考解析:

  运算符函数可以定义为类的友元函数。所以C选项错误。

  29 [单选题] 如果派生类以protected方式继承基类,则原基类的protected成员和public成员在派生类中的访问属性分别是( )。

  A.public和public

  B.public和protected

  C.protected和public

  D.protected和protected

  参考答案:D

  参考解析:

  本题考查保护继承中派生类对基类的访问属性,在受保护继承中,基类的公用成员和保护成员在派生类中成了保护成员,其私有成员仍为基类私有,所以本题答案为D。

  30 [单选题] 当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的( )。

  A.公有成员

  B.私有成员

  C.保护成员

  D.友元

  参考答案:B

  参考解析:

  C++中,对于公有继承,基类成员保持自己的访问级别:基类的public成员为派生类的public成员,基类的protected成员为派生类的proteeted成员,基类的private成员对派生类不可见,所以:在公有继承中,基类中的公有成员对派生类对象可见,基类中的私有成员对派生类对象不可见;对于私有继承,基类的public和protected成员在派生类中为private成员,基类的private成员对派生类不可见,选项B正确。本题答案为B选项。

分享

热门关注

计算机二级考试时间一年几次呢

关于计算机二级

计算机二级考试时间分配

关于计算机二级

计算机二级考试内容考些什么

考试内容

计算机二级什么时候出成绩呢

计算机成绩

计算机二级考试主要考哪些内容

计算机二级考试内容

计算机二级考试c语言难不难

计算机二级考试

计算机二级考试难不难

计算机二级考试

计算机二级考试内容难不难?有关计算机二级的考试内容

计算机二级考试内容难不难

计算机二级考试时间多长

关于计算机二级

计算机二级考试考些什么

计算机二级考试考什么