[计算机类试卷]国家二级C++机试(选择题)模拟试卷46及答案与解析.doc

上传人:Iclinic170 文档编号:497854 上传时间:2018-11-30 格式:DOC 页数:24 大小:82.50KB
下载 相关 举报
[计算机类试卷]国家二级C++机试(选择题)模拟试卷46及答案与解析.doc_第1页
第1页 / 共24页
[计算机类试卷]国家二级C++机试(选择题)模拟试卷46及答案与解析.doc_第2页
第2页 / 共24页
[计算机类试卷]国家二级C++机试(选择题)模拟试卷46及答案与解析.doc_第3页
第3页 / 共24页
[计算机类试卷]国家二级C++机试(选择题)模拟试卷46及答案与解析.doc_第4页
第4页 / 共24页
[计算机类试卷]国家二级C++机试(选择题)模拟试卷46及答案与解析.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、国家二级 C+机试(选择题)模拟试卷 46 及答案与解析 一、选择题 1 下列链表中,其逻辑结构属于非线性结构的是 ( A)二叉链表 ( B)循环链表 ( C)双向链表 ( D)带链的栈 2 设循环队列的存储空间为 Q(1: 35),初始状态为 front=rear=35。现经过一系列入队与退队运算后, front=15, rear=15,则循环队列中的元素个数为 ( A) 15 ( B) 16 ( C) 20 ( D) 0或 35 3 下列关于栈的叙述中,正确的是 ( A)栈底元素一定是最后入栈的元素 ( B)栈 顶元素一定是最先入栈的元素 ( C)栈操作遵循先进后出的原则 ( D)以上说法

2、均错误 4 在关系数据库中,用来表示实体间联系的是 ( A)属性 ( B)二维表 ( C)网状结构 ( D)树状结构 5 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是 ( A) 1: 1联系 ( B) m: 1联系 ( C) 1: m联系 ( D) m: n联系 6 有两个关系 R, S如下: 由关系 R通过运算得到关系 S,则所使用的运算为 ( )。 ( A)选择 ( B)投影 ( C)自然连接 ( D)并 7 数据字典( DD)所定义的对象都包含于 ( A)数据流图( DFD图 ) ( B)程序流程图 ( C)软件结构图 ( D)

3、方框图 8 软件需求规格说明书的作用不包括 ( A)软件验收的依据 ( B)用户与开发人员对软件要做什么的共同理解 ( C)软件设计的依据 ( D)软件可行性研究的依据 9 下面属于黑盒测试方法的是 ( A)语句覆盖 ( B)逻辑覆盖 ( C)边界值分析 ( D)路径覆盖 10 下面不属于软件设计阶段任务的是 ( A)软件总体设计 ( B)算法设计 ( C)制定软件确认测试计划 ( D)数据库设计 11 下列字符中,不允许作为 C+ 标识符的是 ( A) a ( B) a ( C) C ( D) 23 12 下列叙述中,错误的是 ( A) false 是一个逻辑型常量 ( B) 0 是一个字符

4、型常量 ( C) 1481 是一个 int常量 ( D) 1.732 是一个 double常量 13 若 x和 y是程序中的两个整型变量,则下列 if 语句中正确的是 ( A) if(x!=0) y=1; else y=2; ( B) if(x!=0) y=1 else y=2; ( C) if(x!=0) then y=1 else y=2; ( D) if x!=0 y=1; else y=2; 14 要定义整型数组 x,使之包括初值均为 1 的三个元素,下列语句正确的是 ( A) static int x3=1; ( B) int x=1; ( C) int x3=1,1,1; ( D)

5、 int x=1,1,1; 15 下列选项中,正确的 C+ 表达式是 ( A) a+b=c ( B) count3+ ( C) zero+9 ( D) 88 = b 16 若已经定义了如下的函数: int f(int i,char c); 则下列函数中可以作为此函数的重载函数的是 ( A) int f(int i, char c, char b=?); ( B) int f(int j, char b); ( C) char f(char c,int i); ( D) char f(int i, char c); 17 下列有关运算符重载的表述中,正确的是 ( A)通过重载运算符时可以改变运算

6、符的结合性 ( B)通过运算符重载可以创造新的运算符 ( C) C+ 中所有运算符都可以重载为非成员函数 ( D)运算符重载是多态性的一种表现 18 已知 int型变量 y 的初值是 5,但在执行语句 “f(y);“后, y 的值被改变,因此该语句所调用函数的原型是 ( A) void f(int x); ( B) void f(int *x); ( C) void f(const int *x); ( D) void f(int 19 要将前缀运算符 - 重载为 Incr 的非成员函数,下列原型中,可作为该重载函数原型的是 ( A) Incr ( B) Incr operator -(int

7、); ( C) Incr ( D) Incr operator -(Incr 20 下列函数原型声明中,错误的是 ( A) int function( int , int); ( B) int function( int = 3, int = 0); ( C) int function( int m = 3, int n); ( D) int function( int 21 若要重载 +、 =、 using namespace std; void f(int x, int x=y; y=z; int main() int x=0,y=1; f(x,y); cout #include usin

8、g namespace std; class MyBag public: friend int NancyShow(MyBag MyBag(string br=“ABC“):brand(br) private: string brand; ; int NancyShow(MyBag else return 0; int main() int count=0; MyBag arrays3=MyBag(“CityLife“),MyBag(“Coach“); for(int i=0; i #include using namespace std; class TV public: TV(int s=

9、41):size(s) cout using namespace std; class Point public: Point(int xx=0,int yy=0):x(xx),y(yy) void SetXY(int xx,int yy) x=xx; y=yy; protected: int x,y; ; class Circle:Point public: Circle(int r):radius(r) void Set(int r,int x,int y) radius=r; SetXY(x,y); / void Print() const cout #include using nam

10、espace std; class Appliance public: Appliance(string t=“A“):type(t) Appliance() cout #include using namespace std; class Instrument public: Instrument(string t=“乐器 “,string n=“无名 “):type(t),name(n) string GetType() const return “乐器 “; string GetName() const return “无名 “; protected: string type,name;

11、 ; class Piano:public Instrument public: Piano(string n,string t=“钢琴 “):Instrument(t,n) string GetType() const return “钢琴 “; string GetName() const return name; ; int main() Instrument *pi=new Piano(“星空 “); coutGetType()GetName(); delete pi; return 0; 运行时的输出结果是 ( A)乐器 -星空 ( B)乐器 -无名 ( C)钢琴 -星空 ( D)钢

12、琴 -无名 37 若 MyTemp 是一个只有一个虚拟类型参数的类模板,且有如下语句序列 MyTemp p2; MyTemp p33; 编译系统在处理上钢琴 -无名面的语句序列时,所生成的模板 MyTemp 的实例的个数是 ( A) 1 ( B) 2 ( C) 3 ( D) 4 38 下列关于类模板的表述中,错误的是 ( A)类模板的成员函数都是模板函数 ( B)可以为类模板参数设置默认值 ( C)类模板表述了一组类 ( D)类模板中只允许有一个类型参数 39 使用输入输出操作符 setw,可以控制 ( A)输出精度 ( B)输出宽度 ( C)对齐方式 ( D)填充字符 40 在语句 “cin

13、data;“中, cin 是 ( A) C+ 的关键字 ( B)类名 ( C)对象名 ( D)函数名 国家二级 C+机试(选择题)模拟试卷 46 答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 在定义的 链表中,若只含有一个指针域来存放下一个元素地址,称这样的链表为单链表或线性链表。带链的栈可以用来收集计算机存储空间中所有空闲的存储结点,是线性表。在单链表中的结点中增加一个指针域指向它的直接前件,这样的链表,就称为双向链表(一个结点中含有两个指针),也是线性链表。循环链表具有单链表的特征,但又不需要增加额外的存贮空间,仅对表的链接方式稍做改变,使得对表的处理更加方便灵活,属于线性链

14、表。二叉链表是二叉树的物理实现,是一种存储结构,不属于线性结构。答案为 A选项。 2 【正确答案】 D 【试题解析】 在 循环队列中,用队尾指针 rear指向队列中的队尾元素,用排头指针 front指向排头元素的前一个位置。在循环队列中进行出队、入队操作时,头尾指针仍要加,朝前移动。只不过当头尾指针指向向量上界时,其加操作的结果是指向向量的下界。由于入队时尾指针向前追赶头指针,出队时头指针向前追赶尾指针,故队空和队满时,头尾指针均相等。答案为 D选项。 3 【正确答案】 C 【试题解析】 栈顶元素总是后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除

15、的元素。栈的修改是按后进 先出的原则进行的。因此,栈称为先进后出表,或 “后进先出 “表,所以选择C。 4 【正确答案】 B 【试题解析】 关系模型实体间的联系采用二维表来表示,简称表。选项 C为网状模型实体间的联系,选项 D为层次模型实体间的联系,选项 A属性刻画了实体 5 【正确答案】 C 【试题解析】 两个实体集间的联系实际上是实体集间的函数关系,主要有一对一联系( 1:1)、一对多联系( 1:m)、多对一联系( m:1)、多对多联系( m:n)。对于每一个实体部门,都有多名职员,则其对应的联系为一对多联系( 1:m),答案选 C。 6 【正确答案】 A 【试题解析】 由关系 R到关系

16、S为一元运算,排除 C和 D。关系 S是关系 R的一部分,是通过选择之后的结果,因此选 A。 7 【正确答案】 A 【试题解析】 在数据流图中,对所有元素都进行了命名,所有名字的定义集中起来就构成了数据字典。因此选 A,而 B, C, D都不符合。 8 【正确答案】 D 【试题解析】 软件需求规格说明书是需求分析阶段的最后成果,是软件开发的重要文档之一。软件需求规格说明书有以下几个方面的作用。 便于用户、开发人员进行理解和交流, B正确; 反 映出用户问题的结构,可以作为软件开发工作的基础和依据, C正确; 作为确认测试和验收的依据, A正确。 9 【正确答案】 C 【试题解析】 黑盒测试不关

17、心程序内部的逻辑,只是根据程序的功能说明来设计测试用例。在使用黑盒测试法时,手头只需要有程序功能说明就可以了。黑盒测试法分等价类划分法、边界值分析法和错误推测法,答案为 C。而 A、 B、 D均为白盒测试方法。 10 【正确答案】 C 【试题解析】 从技术观点上看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。所以 A、 B、 D正确, C为软件测 试阶段的任务。 11 【正确答案】 D 【试题解析】 用来表示变量、符号常量、函数、数组类型等实体名字的有效字符序列称为标识符,标识符由字母、数字、和下划线 3种字符组成,且第一个字符必须为字母或者下划线。所以 D选项错误。 12 【正确

18、答案】 B 【试题解析】 本题主要考查了常量的类型,其中 B选项中 “0“中由于是双引号,所以是字符串,单引号表示字符常量,所以 B选项错误。 13 【正确答案】 A 【试题解析】 本题考查 if语句, if语句一种形式为: if(表达式 1)语句 1 else 语句 2 只有 A选项是正确的 14 【正确答案】 C 【试题解析】 本题考查一维数组及其初始化, A选项中为静态一维数组,三个元素必须全部初始化, B选没有指明是三个元素, D选项赋值错误, C选项正确。 15 【正确答案】 D 【试题解析】 本题考查 C+基本的表达式用法,属于基本知识,可以看出只有 D选项正确。 16 【正确答案

19、】 C 【试题解析】 本题考查函数重载相关知识,重载函数是函数的一种特殊情况,为方便使用, C+允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的 形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个运算符完成不同的运算功能。 A选项的形参有三个,且前两个形参与题目中的函数相同, B、 D选项参数个数和类型都与题目中相同,所以不能作为重载函数。 C选项总函数的参数类型与题目中不同,所以可以作为重载函数。 17 【正确答案】 D 【试题解析】 本题考查运算符重载,重载不能改变运算符运算对象的个数;不能改变运算符的优先级别;不能改变运算符的结合性;重载运算符的函数不能有默认

20、值,否则就改变了运算符参数的个数;不能定义新的运算符,某些运算符不能重 载。所以答案为 D。 18 【正确答案】 D 【试题解析】 参数传递有三种: 传值 (value),传址 (address),和传引用 (reference) 传值时子函数(被调用者)复制父函数(调用者)传递的值,这样子函数无法改变父函数变量的值, A选项属于此类。 传址时父函数将变量的地址传递给子函数,这样子函数可以能过改写地址里的内容改变父函数中的变量 传引用则是一种看起来像传值调用,而实际上功能同传址一样的传递方式。子函数可以改写父函数的变量值。 D选项属于此类,所以 D选项正确。 19 【正确答案】 C 【试题解析

21、】 本题考查重载运算符,题目中要求将运算符 - 重载为 Incr 的非成员函数,只有 C选项能够将运算符重载为非成员函数。 20 【正确答案】 C 【试题解析】 在函数原型中指定默认参数值时,如果函数中有多个参数,则默认参数应从右至左定义,否则就是无效的,故本题选 C。 21 【正确答案】 C 【试题解析】 本题考查重载运算符, C+规定有的运算符(如赋值运算符、下标运算符、函数调用运算符)必须定义为类的成员函数。所以本题选 C。 22 【正确答案】 A 【试 题解析】 参数传递有三种: 传值 (value),传址 (address),和传引用 (reference) 传值时子函数(被调用者)

22、复制父函数(调用者)传递的值,这样子函数无法改变父函数变量的值。 传址时父函数将变量的地址传递给子函数,这样子函数可以能过改写地址里的内容改变父函数中的变量。传引用则是一种看起来像传值调用,而实际上功能同传址一样的传递方式。子函数可以改写父函数的变量值。本题中函数 f 中第一个参数为传值调用,第二个参数为传引用,其中 y的值在执行完函数 f就变为了 x值,所以输出 00, A选项正确。 23 【正确答案】 B 【试题解析】 本题考查对象的定义,定义一个类对象就需要占用空间,其中c1、 c3 都占用了空间, c2、 c4 为指针只占一个指针空间,所以 B选项正确。 24 【正确答案】 A 【试题

23、解析】 本题考查运算符重载,重载不能改变运算符运算对象的个数;不能改变运算符的优先级别;不能改变运算符的结合性;重载运算符的函数不能有默认值,否则就改变了运算符参数的个数;不能定义新的运算符,某些运算符不能重载。所以 A选项错误。 25 【正确答案】 A 【试题解析】 本题考查类和对象的定义, 本题中定义类 AA的时候,数据成员有BB类型的对象,而类 BB在在之前没有定义,所以 A选项错误。 26 【正确答案】 D 【试题解析】 本题考查继承与派生,派生类中的成员访问基类中的成员由派生方式决定,派生类保护继承基类,那么基类中的私有成员不可访问,基类的保护成员和公用成员变成了派生类的保护成员。所

24、以 D选项正确。 27 【正确答案】 C 【试题解析】 作为虚基类的类可以被实例化,派生类公用继承和保护继承基类,都可以访问基类的保护成员。如果派生类没有对虚函数重新定义,那么就调用基类的虚函数。 所以 C选项正确。 28 【正确答案】 A 【试题解析】 本题考查派生类对基类成员的访问属性,派生类公用继承基类,所以派生类可以直接使用基类的公用成员,所以只有 A选项正确。 29 【正确答案】 D 【试题解析】 本题考查如何引用类的成员函数,一般形式为:对象名 .成员名。 D选项是正确的引用方式,所以本题 D选项错误。 30 【正确答案】 B 【试题解析】 本题考查默认析构函数,题中定义了一个对象

25、、包含 2个元素的一维对象数组,所以析构函数执行 3次,而对象指针数组并没有实际占用空间,所以 不执行析构函数。 31 【正确答案】 C 【试题解析】 本题考查构造函数,可以看出本题中是要统计对象数组 arrays中有多少个 brand 不为的 Coach 元素,定义的对象数组中有两个不是 Coach 元素,所以答案为 2, C选项正确。 32 【正确答案】 A 【试题解析】 本题考查构造函数相关知识,本题中定义一个对象 room1,输出C,定义 room2时输出 CC,然后执行 room3.Print时,输出 54,最后执行三个析构函数输出 DDD,所以答案为 A。 33 【正确答案】 B

26、【试题解 析】 在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。一般形式如下: class virtual ()=0; ; 所以 B选项正确。 34 【正确答案】 C 【试题解析】 选项中 SetXY为基类的成员函数,派生类也继承下来,但是SetXY的参数为两个,而 调用时是 3个参数,所以错误。 35 【正确答案】 D 【试题解析】 执行派生类构造函数的顺序是: 1、调用 基类构造函数, 2、调用子对象构造函数, 3、再执行派生类析构函数,4、执行基类的析构函数,所以本题中定义分别定义了 room1, room2后,调用构造函

27、数后没有输出,而调用析构函数的顺序依次为 room2的析构函数,输出 41,然后执行 Appliance的析构函数输出 T,然后执行 room1的析构函数输出 0,最后执行 Appliance的析构函数输出 A,所以 D选项正确。 36 【正确答案】 B 【试题解析】 本题考查派生类的应用,本题中基类 Instrument,派生类 Piano,当定义 Instrument *pi=new Piano(“星空 “)时, pi为指向基类的指针,那么执行 pi-GetType()时调用基类的 GetType函数,得到 type为乐器, name 为无名,所以输出乐器 -无名。选项 B 正确。 37 【正确答案】 B 【试题解析】 编译时没有实例化,只是申明了一个 double型的类 p2,以及 long型的类 p3,并且 p3是一个数组类,含有 2个元素,即 2个 long类。 38 【正确答案】 D 【试题解析】 本题考查模板的相关知识,一个类模板可以有多个类型参数。所以D选项错误。 39 【正确答案】 B 【试题解析】 本题考查 setw,表示控制输入输出宽度。 B选项正确。 40 【正确答案】 C 【试题解析】 本题考查提取运算符 , cin为对象名,所以 C选项正确。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1