2015年计算机二级《C++》考前冲刺模拟试卷
参考解析:
对二叉树的前序遍历是指:先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树。
【知识拓展】什么是“遍历”?遍历就是不重复地访问二叉树的所有结点。二叉树遍历的方法有三种:前序遍历、中序遍历和后序遍历。记住三种遍历的顺序:
①前序,访问根一按前序遍历左子树一按前序遍历右子树。
②中序,按中序遍历左子树一访问根一按中序遍历右子树。
③后序,按后序遍历左子树一按后序遍历右子树一访问根。
2下列选项中,作为是数据库系统的核心的是( )。
A.数据库B.数据模型C.软件工具D.数据库管理系统
参考答案:D
参考解析:数据库管理系统DBMS是数据库系统的核心。DBMS是负责数据库的建立、使用和维护的软件。DBMS建立在操作系统之上,实施对数据库的统一管理和控制。
3
A.12,l0,14B.12,18,30C.12,6,18D.12,14,30
参考解析:
4下面表示引用的方法中正确的是( )。已知:int n=10;
A.int &x=nB.int &zC.int &y=10D.float &t=&n
参考答案:A
参考解析:C++中的引用作是给变量起个别名,引用定义形式为:类型 &引用名 = 变量名。
5( )使一个函数可以定义成对许多不同数据类型完成同一个任务。
A.函数模板B.重载函数C.递归函数D.模板函数
参考答案:A
参考解析:函数模板是一系列相关函数的模型或样板,这些函数的源代码形式相同,只是所针对的数据类型不同。因此,函数模板使一个函数可以定义成对许多不同数据类型完成同一个任务。
6建立E-R模型的工作,属于软件生命周期中的( )。
A.需求分析阶段B.设计阶段C.编码阶段D.测试阶段
参考解析:建立E-R模型是数据库概念设计的重要内容,而概念设计是设计阶段的组成部分。
7设栈S和队列O的初始状态为空,元素a、b、c、d、e和f依次通过栈S,一个元素出栈后即进入队列O,若6个元素出队的顺序是b、d、c、f、e、a,则栈S的容量至少应该是( )。
A.6B.4C.3D.2
参考答案:C
参考解析:栈的操作规则是后进先出,队列的运算规则是先进先出。对于本题,出队顺序也就是入队顺序,同样也是出栈顺序,为了得到b、d、c、f、e、a出栈顺序,则入栈顺序应该是a进、b进、b出、c进、d进、d出、c出、e进、f进、f出、e出、a出。可以看作最多只有3个元素在栈内,所以栈的容量最少应为3。
8内部格式控制操作函数是在头文件( )中定义的。
A.
B.
C.
D.
参考解析:
9下面的符号中可以用作C++标识符的是( )。
A.3testB.fcc~otherC.elseD.radius
参考答案:D
参考解析:C++标识符是以字母、下划线开头的,由字母、数字及下划线组成的,不与关键字相同的字符串。选项C)中else为关键字。
10下面关于派生类的描述中错误的是( )。
A.派生类中至少有一个基类
B.一个派生类可以作为另一个派生类的基类
C.派生类只继承了基类中的公有成员和保护成员
D.派生类的缺省继承方式是私有
参考答案:C
参考解析:
11数据管理技术发展的三个阶段中,( )没有专门的软件对数据进行管理。
Ⅰ.人工管理阶段 Ⅱ.文件系统阶段 Ⅲ.数据库阶段
A.仅ⅠB.仅ⅢC.Ⅰ和ⅡD.Ⅱ和Ⅲ
参考答案:A
参考解析:数据管理技术发展的三个阶段中,只有人工管理阶段,没有操作系统,没有管理数据的软件,数据处理方式是批处理。在文件系统阶段,操作系统中已经有了专门数据管理软件,一般称为文件系统。在数据库系统阶段,出现了统一管理数据的专门软件系统,即数据库管理系统。
12在进行任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流状态的操作函数名称是( )。
A.failB.eofC.badD.good
参考解析:可以用文件流对象的成员函数来判别文件流当前的状态:fail,刚进行的操作失败时返回true,否则返回false; eof,进行输入操作时,若文件到达文件尾返回true,否则返回false; bad,如果进行了非法操作返回true,否则返回false good,刚进行的操作成功时返回true,否则返回false。
13有如下类的定义。横线处的语句是( )。
class MyClass
{
public:
MyClass(int a = 0,int b = 0)
{
X=a;
Y=b;
}
void Change() const
{
X-=10;
Y+=10;
}
private:
int X,Y;
};
A.staticB.constC.mutableD.不需要填内容
参考答案:C
参考解析:C++中const关键字用来表示一个常量,同时const也用来修饰函数。这两个概念需要明确:const所修饰的函数只能是类的成员函数,因为const所修饰的函数中,要由编译器负责保护类的成员变量不被修改。而相对的,mutable则是用来修饰类的成员变量,让该变量在const所修饰的成员函数中可以被修改。而且const修饰的函数只能是类的成员函数,mutable修饰的变量只能是类的成员变量。
14下列选项中不属于软件生命周期开发阶段任务的是( )。
A.软件测试B.概要设计C.软件维护D.详细设计
参考答案:C
参考解析:软件的生命周期可分为软件定义、软件开发及软件运行维护三个阶段。其中软件定义阶段的主要工作有可行性研究与计划制订和需求分析等;软件开发阶段的主要工作有概要设计、详细设计和测试等:软件运行维护阶段的主要工作是软件的运行及后期的维护等。
15关于模板,下列说法不正确的是( )。
A.用类模板定义一个对象时,不能省略实参
B.类模板只能有虚拟类型参数C.类模板本身在编译中不会生成任何代码
D.类模板的成员函数都是模板函数
参考解析: 类模板不是一个实实在在的类,本身在编译中不会生成任何代码;用类模板定义一个对象时,不能省实参;类模板的成员函数都是模板函数。C++中可以为类模板的参数设置默认值,所以选项B)错误。
16下列哪一条不属于数据库设计的任务?( )
A.设计数据库应用结构
B.设计数据库概念结构
C.设计数据库逻辑结构
D.设计数据库物理结构
参考答案:A
参考解析:数据库设计工作量大而且过程复杂,既是一项数据库工程也是一项庞大的软件工程。考虑数据库及其应用系统开发全过程,将数据库设计分为以下6个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库的运行和维护。
17
A.m=3B.m=4C.m=5D.m=6
参考答案:C
参考解析:
18在函数中,可以用auto、extern、register和static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是( )。
A.autoB.extrnC.registerD.static
参考答案:A
参考解析:
19下面关于友元的说法中错误的是( )。
A.友元函数可以访问类中的所有数据成员
B.友元函数不可以在类内部定义
C.友元类的所有成员函数都是另一个类友元函数
D.友元函数必须声明在public区
参考答案:D
参考解析:友元提供了不同类或对象的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制。类可以利用friend将一般函数、其他类成员函数或者其他类声明为友元。友元的声明可以放在类的任何一个区域。但是友元的实现不可以在类内部。
20
A.55B.57C.75D.77
参考解析:
21设有以下定义程序:
#include
class A1
{
public:
void show1()
{
cout << "class A1" << endl;
}
};
class A2:public A1
{
public:
void show2()
{
cout<<"class A2"<
}
};
class A3:protected A2
{
public:
void show3()
{
cout<<"class A1"<
}
};
void main()
{
A1 obj1;
A2 obj2;
A3 obj3;
}
则以下不合法的调用语句是( )。
A.obj1.show1();B.obj2.show1();C.obj3.show1();D.obj2.show2();
参考答案:C
参考解析:由于 class A3:protected A2,所以类 A3 的对象 obj3 不能直接访问基类 A1 的成员函数 show1(),所以选项 C 是错误的;其他选项均有访问的权限,正确。
22有如下程序:
#include
using namespace std;
class A
{
public:
A(){cout<<"A";}
};
class B{public:B(){cout<<"B";}
};
class C:public A
{
B b;
public:C(){cout<<"C";}
};
int main()
{
C obj;
return 0;
}
执行后的输出结果是( )。
A.CBAB.BACC.ACBD.ABC
参考答案:D
参考解析:语句C obj 对象初始化首先调用基类的构造函数 A(),输出“A”,其次是C类中对象的构造函数的调用,即调用B(),输出“B”;最后是调用自身的构造函数 C(),输出“C”。
23下面的描述中,不属于面向对象方法的是( )。
A.多态B.继承C.类D.过程调用
参考答案:D
参考解析:面向对象方法是运用对象、类和实例、消息、继承、多态等概念来构造。