首页 - 网校 - 万题库 - 美好明天 - 直播 - 导航
您现在的位置: 考试吧 > 计算机等级考试 > 计算机二级考试 > C加加 > 模拟试题 > 正文

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

来源:考试吧 2017-11-26 19:08:49 要考试,上考试吧! 万题库
“2017年12月计算机二级C++考试冲刺模拟试卷(1)”供考生参考。更多计算机等级考试模拟试题等信息请访问考试吧计算机等级考试网。
第 1 页:选择题
第 2 页:基本操作题
第 3 页:简单应用题

  点击查看:2017年12月计算机二级C++考试冲刺模拟试卷汇总

  一、选择题(每小题1分,共40分)

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

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

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

  A.3

  B.5

  C.6

  D.编译出错

  参考答案:C

  参考解析:

  题意中,add()函数接收3个double类型的参数,最后一个形参e具有默认值1,函数将三个参数相加,返回相加的结果;main()函数中,调用add()函数,传人两个参数,所以形参c使用默认值1,对应参数的值为:2,3,1,函数将a、b、c转换为double类型后,相加,并将结果6.0作为函数值返回,返回值转换为int赋给result,最终输出result的值。本题答案为C选项。

  2 [单选题] 下列关于类定义的说法中,正确的是( )。

  A.类定义中包括数据成员和函数成员的声明

  B.类成员的缺省访问权限是保护的

  C.数据成员必须被声明为私有的

  D.成员函数只能在类体外进行定义

  参考答案:A

  参考解析:

  类的成员的缺省访问权限是私有的,数据成员可以是私有,可以是公用的,也可以是受保护的。类的成员函数可以在类内定义。

  3 [单选题] 必须用一对大括号括起来的程序段是( )。

  A.switch语句中的case标号语句

  B.if语句的分支

  C.循环语句的循环体

  D.函数的函数体

  参考答案:D

  参考解析:

  本题考查C++基本控制结构,A、B、C三个选项中的大括号不是必须的,而D选项中的函数体必须使用大括号。

  4 [单选题] 计算数列第n项的函数定义如下:

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

  若执行函数调用表达式fa(4)时,返回的函数值为( )。

  A.53

  B.17

  C.23

  D.49

  参考答案:A

  参考解析:

  题意中fa()函数是一个递归函数,当参数n大于1时,函数返回值为3*fa(n-1)+2,当n等于1时,函数返回值为1,所以fa(4)=3*fa(3)+2=3*(3$fa(2)+2)+2=3*(3*(3*fa(1)+2)+2)+2=3*(3*(3+2)+2)+2=53。本题答案为A选项。

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

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

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

  A.Book:C++

  B.Book:Unknown

  C.Unknown:C++

  D.Unknown:Unknown

  参考答案:A

  参考解析:

  C++中,多态调用必须满足两个条件:被调用的成员函数是虚函数;必须通过基类类型的引用或指针进行函数调用。 题意的main()函数中首先定义一个Book类对象,对象名为book,在构造book对象时,程序过程如下:首先调用Book类的构造函数,传人参数“C++”,在构造函数执行函数体前,再调用基类Publication的默认构造函数:传入字符串“C++”,基类构造函数在成员初始化列表中,使用传人的参数“C++”为name赋值;此时继承于基类的成员:name存放字符串“C++”。

  然后main()函数调用showPublication()函数,传人book对象:showPublication()函数接收Publication类对象的引用p,然后调用p.getType()和p.getName()输出。由于getType()成员函数属于虚函数,p属于基类对象的引用,所以通过p调用getType()函数满足多态调用,执行p实际引用对象类型的getType(),即Book类的getType(),输出:“Book”;而getName()不是成员函数,所以不满足多态调用,执行基类的成员函数getName(),输出name:“c++”。综上,程序输出:Book:C++。本题答案为A选项。

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

  

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


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

  A.375

  B.357

  C.0375

  D.0357

  参考答案:C

  参考解析:

  本题考查派生类的构造函数和析构函数,在定义一个派生类的对象时,先调用基类的构造函数,然后再执行派生类的构造函数,对象释放时,先执行派生类的析构函数,再执行基类的析构函数。本题中定义了一个对象d1,先执行基类的构造函数输出0,再执行派生类的构造函数输出3,然后定义了一个对象d2(5,7),其中需要调用基类的构造函数输出7,最后输出5,所以答案为C。

  7 [单选题] 软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )。

  A.学生成绩管理系统

  B.C语言编译程序

  C.UNIX操作系统

  D.数据库管理系统

  参考答案:A

  参考解析:

  软件按功能可以分为:应用软件、系统软件、支撑软件。操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件。所以B、C、D都是系统软件,只有A是应用软件。

  8 [单选题] 下列程序的运行结果是( )。

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

  A.00

  B.23

  C.34

  D.25

  参考答案:B

  参考解析:

  本题考查的是对构造函数的掌握,另外“++”运算符是右结合的,所以在进行输出的时候都是先把原来的输出后再自加1。

  9 [单选题] 关系数据模型的三个组成部分中不包括( )。

  A.关系的完整性约束

  B.关系的数据操纵

  C.关系的数据结构

  D.关系的并发控制

  参考答案:D

  参考解析:

  关系数据模型的三个组成部分:数据结构,操作集合(数据操纵),完整性约束。故本题答案为D选项。

  10 [单选题] 关于函数重载,下列叙述中错误的是( )。

  A.重载函数的函数名必须相同

  B.重载函数必须在参数个数或类型上有所不同

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

  D.重载函数的函数体可以有所不同

  参考答案:C

  参考解析:

  所谓函数重载是指同一个函数名可以对应多个函数的实现。每种实现对应一个函数体,这些函数的名字相同,其参数类型或个数不同,但不能出现函数返回值类型不同而参数类型和个数完全相同的重载。所以本题答案为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选项。

  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选项。

  31 [单选题] 有如下枚举类型定义:

  enum DAY{SUN,MON=10,TUE,WED,THU,FRI=20,SAT};

  执行下列程序段

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

  输出字符'a'的个数是( )。

  A.13

  B.16

  C.19

  D.22

  参考答案:A

  参考解析:

  枚举类型中,如果当前枚举成员的值显示初始化,那么后一个枚举成员的值比当前枚举成员的值大1,所以枚举类型DAY中,SUN的值为0,NON的值显示为10,TUE的值为11,WED的值为12,THU的值为13,FR1的值显示初始化为20,SAT的值为21,所以for循环会执行13次,输出13个字符'a'。本题答案为A选项。

  32 [单选题] 要建立文件流并打开当前目录下的文件file.dat用于输入,下列语句中错误的是( )。

  A.ifstream fin=ifstream.open(”file.dat”);

  B.ifstream*fin=new ifstream(”file.dat”);

  C.ifstream fin;fin.open(”file.dat”);

  D.ifstream*fin=new ifstream( );fin->open(”file.dat”);

  参考答案:A

  参考解析:

  本题考查对文件流输入的操作,可以调用文件流的成员函数pen,一般形式如下:文件流对象.open(磁盘文件名,输入/输出方式)。根据以上格式,可以判断A选项错误。

  33 [单选题] 下列有关继承和派生的叙述中,正确的是( )。

  A.派生类不能访问基类的保护成员

  B.作为虚基类的类不能被实例化

  C.派生类应当向基类的构造函数传递参数

  D.虚函数必须在派生类中重新实现

  参考答案:C

  参考解析:

  派生类可以访问基类的保护成员,而不能访问基类的私有成员。作为虚基类的类可以被实例化。虚函数如果没有派生类中重新实现,那么仍然使用基类的成员函数。

  34 [单选题] 已知Value是一个类,value是Value的一个对象。下列以非成员函数形式重载的运算符函数原型中,正确的是( )。

  A.Value operator+(Value v,int i);

  B.Value operator+(Value v=value,int i);

  C.Value operator+(Value v,int i=0);

  D.Value operator+(Value v=value,int i=0);

  参考答案:A

  参考解析:

  本题考查运算符重载,其中重载运算符的函数不能有默认的参数,所以本题答案为A。

  35 [单选题] 下列关于虚函数的说明中,正确的是( )。

  A.从虚基类继承的函数都是虚函数

  B.虚函数不得是静态成员函数

  C.只能通过指针或引用调用虚函数

  D.抽象类中的成员函数都是虚函数

  参考答案:B

  参考解析:

  在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数。虚函数必须是基类的非静态成员函数,其访问权限可以是protected或public。如果一个类包含了纯虚函数,称此类为抽象类。所以本题答案为B。

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

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

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

  A.1111

  B.1211

  C.1112

  D.1212

  参考答案:C

  参考解析:

  本题主要考察虚函数。虚函数指在某基类中声明为viltual并在一个或多个派生类中被重新定义的成员函数,本题中定义类GA的对象a,执行show(a)、display(a),输出11,定义了类GB的对象b,执行show(b),仍然输出1,display(b)执行会调用派生类的f函数,因为f函数为虚函数,输出2,所以本题答案为C。

  37 [单选题] 一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是( )。

  A.1:1联系

  B.1:m联系

  C.m:1联系

  D.m:n联系

  参考答案:D

  参考解析:

  因为一个教师可讲授多门课程,而一门课程又能由多个老师讲授,所以他们之间是多对多的关系,可以表示为m:n。

  38 [单选题] 下列关于类模板的模板参数的叙述中,错误的是( )。

  A.模板参数可以作为数据成员的类型

  B.模板参数可以作为成员函数的返回类型

  C.模板参数可以作为成员函数的参数类型

  D.模板参数不能作为成员函数的局部变量的类型

  参考答案:D

  参考解析:

  本题考查类模板的概念和定义,模板参数可以作为成员函数的局部变量的类型。

  39 [单选题] 下面对于友元函数描述正确的是( )。

  A.友元函数的实现必须在类的内部定义

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

  C.友元函数破坏了类的封装性和隐藏性

  D.友元函数不能访问类的私有成员

  参考答案:C

  参考解析:

  友元函数的定义既可以在类内部进行,也可以在类外部进行。它提高了程序的运行效率,但破坏了类的封装性和隐藏性,使得类的非成员函数可以访问类的私有成员。

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

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

  已知其执行后的输出结果为:

  Base::fun

  Derived::fun

  则程序中下画线处应填入的语句是( )。

  A.Base.fun( );

  B.Base::fun( );

  C.Base->fun( );

  D.fun( );

  参考答案:B

  参考解析:

  本题考查公用继承对基类成员的访问属性。在公用继承中,基类的公用成员和保护成员在派生类中保持原有的访问属性,其私有成员仍为基类私有。本题中想要输出Base::fun,则必须调用基类的公用成员函数fun,所以使用Base::fun();来调用基类的成员函数fun。

扫描/长按二维码帮助考试通关
2017等考成绩查询时间
2017等考各科通关技巧
2017各科最新预测试卷
等考成绩评定及管理

微信搜索"考试吧"了解更多考试资讯、下载备考资料

1 2 3 下一页

  相关推荐:

  【考试吧整理】计算机等级考试各科目历年真题

  全国计算机等级考试证书体系(2018版)

  全国计算机等级考试课程、教材列表(2018版)

  全国计算机等级证书分几级?哪个级别最高?

  各地计算机等级考试报名入口及官方网站汇总

  【考试吧整理】计算机等级考试报考完全指南

0
收藏该文章
0
收藏该文章
文章搜索
万题库小程序
万题库小程序
·章节视频 ·章节练习
·免费真题 ·模考试题
微信扫码,立即获取!
扫码免费使用
版权声明:如果计算机等级考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本计算机等级考试网内容,请注明出处。
Copyright © 2004- 考试吧计算机等级考试网 出版物经营许可证新出发京批字第直170033号 
京ICP证060677 京ICP备05005269号 中国科学院研究生院权威支持(北京)
在线模拟试题
考证通关杀器
考试最新资讯
一次通关技巧