2017年12月计算机等级考试即将来临,出国留学网为考生们准备了2017年12月计算机二级考试习题及答案,希望能帮到大家,小编在这里预祝考生们考试顺利!
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项的函数定义如下:
若执行函数调用表达式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 [单选题] 有如下程序:
运行时的输出结果是( )。
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 [单选题] 有如下程序:
执行这个程序的输出结果是( )。
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 [单选题] 下列程序的运行结果是( )。
A.00
B.23
C.34
D.25
参考答案:B
参考解析:
本题考查的是对构造函数的掌握,另外“++”运算符是右结合的,所以在进行输出的时候都是先把原来的输出后再自加1。
9 [单选题] 关系数据模型的三个组成部分中不包括( )。
A.关系的完整性约束
B.关系的数据操纵
C.关系的数据结构
D.关系的并发控制
参考答案:D
参考解析:
关系数据模型的三个组成部分:数据结构,操作集合(数据操纵),完整性约束。故本题答案为D选项。
10 [单选题] 关于函数重载,下列叙述中错误的是( )。
A.重载函数的函数名必须相同
B.重载函数必须在参数个数或类型上有所不同
C.重载函数的返回值类型必须相同
D.重载函数的函数体可以有所不同
参考答案:C
参考解析:
所谓函数重载是指同一个函数名可以对应多个函数的实现。每种实现对应一个函数体,这些函数的名字相同,其参数类型或个数不同,但不能出现函数返回值类型不同而参数类型和个数完全相同的重载。所以本题答案为C。