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

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

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

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

  A.2351

  B.2531

  C.5354

  D.5534

  参考答案:B

  参考解析:

  main()函数中调用了B的构造函数,参数为5,接下来B类对象b的构造过程如下:①调用基类A的默认构造函数,构造对象b的基类部分:初始化m_i为2。②按照B类中成员的定义顺序,使用成员初始化列表初始化两个A类成员:首先执行m_a1(m_i+1),m_i为基类A中的成员,此时值为2,调用A类的默认构造函数,初始化m_a1.m_i为3;然后执行m_a2(n),调用A类的默认构造函数,初始化m_a2.m_i为5。接着main()执行return语句,此时对象b需要调用析构函数进行释放,释放过程如下:①首先运行B类的析构函数-B(),输出m_i的值为2,然后将m_i自减1,使得m_i的值为1。②按照8类中成员定义顺序的反顺序,首先调用m_a2的析构函数~A(),释放对象m a2,输出m_a2.m_i的值5;再调用m_a1的析构函数~A(),释放对象m_a1,输出m_a1.m_i的值3。③最后调用基类A的析构函数-A(),释放b对象中的基类部分,输出m_i的值1。 由上分析,程序运行结果为:2531。故本题答案为B选项。

  12 [单选题] 有如下程序段:

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

  上述程序使得derived对象中的动态内存空间有可能不被释放,有内存泄漏风险,原因是( )。

  A.base类是抽象类

  B.derived类的析构函数没有释放基类的动态内存

  C.base类的析构函数不是虚函数

  D.derived类的resoulce与公有继承得到的resource同名

  参考答案:C

  参考解析:

  基类base中的数据成员resource为整型指针变量,派生类derived中的数据成员resource与基类base中的同名,但类型为浮点型指针变量,基类base中构造函数使用new为resource(整型指针)分配了内存空间,在析构函数中释放;派生类derived的构造函数在成员初始化类表中调用base的构造函数构造对象的基类部分,然后在构造函数体内使用new为resource(浮点型指针)分配了内存空间,在析构函数中释放浮点型resource指针;由于基类base中的析构函数未定义为虚函数,所以派生类derived中的析构函数在被调用时,不会再调用基类base中的析构函数,导致基类base中的整型指针变量resource无法释放,造成内存泄漏。故本题答案为C选项。

  13 [单选题] 下列关于抽象类的叙述中,错误的是( )。

  A.不能定义抽象类对象

  B.抽象类中一定包含纯虚函数

  C.抽象类的派生类一定不是抽象类

  D.抽象类的构造函可以是protected函数

  参考答案:C

  参考解析:

  含有一个或多个纯虚函数的类是抽象类,不能创建抽象类的对象,选项A、B正确;由于无法创建(也不需要创建)抽象类的对象,所以抽象类的构造函数可以是protected函数,选项D正确;抽象类的派生类,如果也包含纯虚函数,那么该派生类也是抽象类,选项C错误。故本题答案为C选项。

  14 [单选题] 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。

  A.一对一

  B.一对多

  C.多对多

  D.多对一

  参考答案:C

  参考解析:

  因为一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。

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

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

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

  A.1B

  B.1D

  C.2B

  D.2D

  参考答案:B

  参考解析:

  在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数,本题中定义了一个指向派生类对象的基类指针ptr,执行ptr->output后,会执行基类的output函数,输出1,由于Print是虚函数,所以ptr->Print()会执行派生类的Print,即输出D,所以本题答案为B。

  16 [单选题] 层次型、网状型和关系型数据库划分原则是( )。

  A.记录长度

  B.文件的大小

  C.联系的复杂程度

  D.数据之间的联系方式

  参考答案:D

  参考解析:

  层次模型的基本结构是树形结构,网状模型是一个不加任何条件限制的无向图,关系模型采用二维表来表示,所以三种数据库的划分原则是数据之间的联系方式。

  17 [单选题] C++中的模板包括( )。

  A.对象模板和函数模板

  B.对象模板和类模板

  C.函数模板和类模板

  D.变量模板和对象模板

  参考答案:C

  18 [单选题] 现有表示患者和医疗的关系如下:P(P#,Pn,Pg,By),其中P#为患者编号,Pn为患者姓名,Pg为性别,By为出生日期,Tr(P#,D#,Date,Rt),其中D#为医生编号,Date为就诊日期,Rt为诊断结果。检索在1号医生处就诊的病人姓名的表达式是( )。

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

  参考答案:A

  参考解析:

  π表示投影运算,针对属性;σ表示选择运算,针对元组;▷◁表示自然连接。首先在Tr表中选择D#为1的记录σD#=1(Tr),并检索这些记录中患者的编号πp#(σD#=1(Tr)),检索结果与表P进行自然连接生成中间表计πP#(σD#=1(Tr))▷◁P,最后在中间表中检索患者的姓名πPn(πP#(σD#=1(Tr))▷◁P)。故本题答案为A选项。

  19 [单选题] 下列选项中不属于结构化程序设计原则的是( )。

  A.可封装

  B.自顶向下

  C.模块化

  D.逐步求精

  参考答案:A

  参考解析:

  结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。

  20 [单选题] 已知函数模板定义如下:

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

  不能由该函数模板得到的函数实例是( )。

  A.int min(int,int)

  B.char min(char,char)

  C.double min(int,double)

  D.double min(double,double)

  参考答案:C

  参考解析:

  题意中的模板函数min()接收两个参数,参数类型都是T,返回一个T类型的值,所以min()函数的参数、返回值都必须是同一类型,由此可知选项A、B、D可正确得到函数实例,选项C不可以。故本题答案为C选项。

分享

热门关注

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

关于计算机二级

计算机二级考试时间分配

关于计算机二级

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

考试内容

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

计算机成绩

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

计算机二级考试内容

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

计算机二级考试

计算机二级考试难不难

计算机二级考试

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

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

计算机二级考试时间多长

关于计算机二级

计算机二级考试考些什么

计算机二级考试考什么