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

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

1、国家二级( C+)笔试模拟试卷 185及答案与解析 1 下列叙述中错误的是 ( )。 ( A)一种数据的逻辑结构可以有多种存储结构 ( B)数据的存储结构与数据的处理效率无关 ( C)数据的存储结构与数据的处理效率密切相关 ( D)数据的存储结构在计算机中所占的空间不一定是连续的 2 下列数据结构中,能用二分法进行查找的是 ( )。 ( A)顺序存储的有序线性表 ( B)线性链表 ( C)二叉链表 ( D)有序线性表 3 以下关于顺序存储结构的叙述中, ( )是正确的。 ( A)每 个结点中至少包含一个指针域 ( B)逻辑上相邻的结点物理上不必邻接 ( C)可用于栈、队列、树等逻辑结构的存储表

2、示 ( D)插入、删除运算操作不方便 4 结构化分析方法是面向 ( )的自顶向下逐步求精进行需求分析的方法。 ( A)对象 ( B)数据结构 ( C)数据流 ( D)目标 5 在 E-R图中,用来表示属性的图形是 ( )。 ( A)矩形 ( B)椭圆形 ( C)菱形 ( D)平行四边形 6 有 3个结点的二叉树有 ( )。 ( A) 2种形态 ( B) 4种形态 ( C) 7种形态 ( D) 5种形态 7 软件结构设计的图形工具是 ( )。 ( A) DFD图 ( B)结构图 ( C) PAD图 ( D) N-S图 8 下列选项中不属于软件生命周期开发阶段任务的是 ( )。 ( A)软件测试

3、( B)概要设计 ( C)软件维护 ( D)详细设计 9 在一棵二叉树的前序遍历、中序遍历、后序遍历所产生的序列中,所有叶结点的先后顺 ( )。 ( A)都不相同 ( B)完全相同 ( C)前序和中序相同,而与后序不同 ( D)中 序和后序相同,而与前序不同 10 用白盒法设计测试用例的方法包括 ( )。 ( A)错误推测 ( B)因果图 ( C)基本路径测试 ( D)边界值分析 11 关于虚函数,以下说法正确的是 ( )。 ( A)若在重定义虚函数时使用了 virtual,则该重定义函数还是虚函数 ( B)虚函数不能声明为友元 ( C)子类必须重定义父类的虚函数 ( D)虚函数不能是 sta

4、tic的 12 下列关于纯虚函数与抽象类的描述中,错误的是 ( )。 ( A)纯虚函数是一种特殊的虚函数, 它没有具体的实现 ( B)抽象类是指具有纯虚函数的类 ( C)一个基类中说明具有纯虚函数,该基类的派生类一定不再是抽象类 ( D)抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出 13 将: x+y*z中的 “+”用成员函数重载, “*”用友元函数重载应写为 ( )。 ( A) operator+(operator*(y, z) ( B) x.operator+(operator*(y, z) ( C) x.operator+(x*(y, z) ( D) x+(operator*(

5、y, z) 14 以下程序的执行结果是 ( )。 #include iostream.h #include iomanip.h void fun(int n) if(n!=0) fun(n-1); for(int i=1; i(i); ( C) cast(i); ( D) cast(i); 29 阅读下面的程序: #include iostream.h void main() int x; cin x; if(x+ 5) cout x end1; else cout x- end1; 如果两次执行上述程序,且键盘输入分别为 4和 6,则输出结果分别是 ( )。 ( A) 4, 6 ( B) 3

6、, 6 ( C) 4, 7 ( D) 5, 7 30 按照标识符的要求,下列选项中, ( )符号不能组成标识符。 ( A)连接符 ( B)下划线 ( C)大小写字母 ( D)数字字符 31 已知枚举类型定义语句为: enum TokenNUMBER, PLUS=5, MINUS, PRINT=10; 则下列叙述中错误的是 ( )。 ( A)枚举常量 NAME的值为 1 ( B)枚举常量 NUMBER的值为 1 ( C)枚举常量 MINUS的值为 6 ( D)枚举常量 PRINT的值为 10 32 类 MyClass的定义如下: class MyClass public: MyClass()va

7、lue=0; SetVariable(int i)value=i; private: int value; ; 则对下列语句序列正确的描述是 ( )。 MyClass*P, my;p= ( A)语句 p= x=y; y=t; int main() int a2=23,42; fun(a1,a0); std:cout a0 “, “ a1 std:end1; return 0; 执行后的输出结果是 ( )。 ( A) 42, 42 ( B) 23, 23 ( C) 23, 42 ( D) 42, 23 35 有如下程序: #include iostream using namespace std

8、; class A public: static int a; void init()a=1; A(int a=2)init(); a+; ; int A:a=0; A obj; int main() cout obj.a; return 0; 运行时输出的结果是 ( )。 ( A) 0 ( B) 1 ( C) 2 ( D) 3 36 按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于 _。 37 若 D1=a1,a2,a3, D2=b1,b2,b3,则 D1D2集合中共有 _个元组。 38 树中度为零的结点称为 _。 39 测试用例包括输入值集和 _值集。 40 软件生命周期分为软件

9、定义期、软件开发期和软件维护期,详细设计属于_中的一个阶段。 41 有如下程序: #include iostream using namespace std; class Con char ID; public: Con():ID(A)cout 1; Con(char ID) :ID(ID) cout 2; Con(Con char getID()constreturn ID; ; void show(Con C) cout c.getID(); int main() Con c1; show(c1); Con c2(B); show(c2); return 0; 执行上面程序,输出是 _。

10、42 如果表达式 x=y*z 中的 *是作为成员函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为 _。 43 C+中只有两个逻辑常量: true和 _。 44 对基类数据成员的初始化必须在派生类的构造函数中的 _处执行。 45 有如下类声明: class TestClass int i; private:int j; protected:int k; public:int m,n; ; 其中,私有成员的数量为 _。 46 _是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。 47 执行以下程序后,输出结果第二行的内容是 _。

11、 #include iostream using namespace std; class TestClass public: virtual void who()cout “Base Class“ endl; ; class TestClass1:public TestClass public: virtual void who()cout “TestClass1 Class“ endl; ; class TestClass2:public TestClass public: virtual void who()cout “TestClass2 Class“ endl; ; int main

12、(int argc,char*argv) TestClass obj1,*p; TestClass1 obj2; TestClass2 obj3; P=p- who(); p=p- who(); p=p- who(); return 0: 48 有一种只在循环语句或 switch语句中使用的流程控制语句,表示该语句的关键字是 _。 49 程序中有如下语句: for(int i=0;i 5;i+)cout *(p+i) “,“; 能够依次输出 int型一维数组 DATA的前 5个元素。由此可知,变量 p的定义及初始化语句是 _。 50 有如下程序: #include iostream using

13、 namespace std; class Base public; int m,n; ; class Derived1:_Base; class Derived2:public Derivedl public: void SetMN(int M, int N)m=M;n=N; int GetSumMN()return(m+n); ; int main() Derived2 objD; objD.SetMN(3,4); cout “M+N=“ objD.m+bojD.n endl; return 0: 编译时只有 “cout “M+N=“ objD.m+bojD.n endl;”有语法错误,程

14、序的其他地方没有语法错误, 请判断横线处 使用的关键字是 _。 国家二级( C+)笔试模拟试卷 185答案与解析 1 【正确答案】 B 【试题解析】 数据的存储结构分为顺序结构和链式结构,一个数据的逻辑结构可以有多种存储结构。顺序结构中数据元素所占的存储空间是连续的,而链式存储结构中,数据元素所占的存储空间不一定是连续的。数据的存储结构与数据的处理效率密切相关。 2 【正确答案】 A 【试题解析】 要对线性表进行二分法查找,对线性表有两个要求:第一,要求线性表是按顺序方式存储的;第二,要求线性表中的元素是按照从小到大的顺 序排好序。 3 【正确答案】 D 【试题解析】 选项 A)、 B)、 C

15、)叙述的都是链式存储结构具有的特点,顺序结构每个结点只包含自身的信息域,且逻辑上相邻的结点物理上也是相邻的。因此其插入、删除运算操作不方便,需移动大量的结点。 4 【正确答案】 C 5 【正确答案】 B 【试题解析】 E-R图具有三个要素: 实体 (型 )用矩形框表示,框内为实体名称; 属性用椭圆型来表示,并用线与实体连接。属性较多时也可以将实体及其属性单独列表; 实体间的联系用菱形框表示。用线将菱形框与实体相连,并在线上 标注联系的类型。 6 【正确答案】 D 7 【正确答案】 B 【试题解析】 常用的软件结构设计工具是结构图,也称程序结构图。 DFD图 (数据流图 )是以图形的方式描述数据

16、在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,它是需求分析阶段的图形工具。盒式图 (N-S 图 )和问题分析图 (PAD)是详细设计的常用工具。 8 【正确答案】 C 【试题解析】 软件的生命周期可分为软件定义、软件开发及软件运行维护三个阶段。其中软件定义阶段的主要工作有可行性研究与计划制订和需求分析等;软件开发阶段的 主要工作有概要设计、详细设计和测试等;软件运行维护阶段的主要工作是软件的运行及后期的维护等。 9 【正确答案】 B 10 【正确答案】 C 11 【正确答案】 D 12 【正确答案】 C 13 【正确答案】 B 【试题解析】 在定义了重载运算符后的函数后,函数 ope

17、rator+重载了运算符“+”。如果在类以外的其他地方定义了一个函数,在类体中用 friend对该函数进行声明,此函数就称为本类的友员函数。 “*”用友元函数重载就是运算符函数不作为成员函数,而把它放在类外, “*”被改写为 “operator*”。 “+”为成员函数重载,x.operator+。所以 x+y*z被改写为 “x.operator+(operator*(y,z)”。 14 【正确答案】 B 【试题解析】 首先由程序中的主函数 main 入手,调用 fun函数,参数为 3。fun(n)函数在其内部,当 n 不等于 0 时,递归调用 fun(n-1)。当参数为 3 时, fun(3)

18、调用 fun(2) ,然后利用 for循环输出 i 值,当 n=1时,只输出 1,输出回车后,就跳入 fun(2),输出 1, 2,最后输出是 1, 2, 3。 15 【正确答案 】 A 16 【正确答案】 A 【试题解析】 其中 “x=x ”, “/”重载为 “operator/”。另外重载不能改变运算的优先级, -x/y计算 -x后,除以 y,所以表达式改写为: operator/(operator-(x),y);。 18 【正确答案】 B 19 【正确答案】 A 【试题解析】 enum枚举类型名 枚举元素表 ;其中:关键词 enum表示定义的是枚举类型,枚举类型名由标识符组成,而枚举元素

19、表由枚举元素或枚举常量组成。其中 enumMonday, Tuesday, Wednesday, Thrusday, Friday=2的值由0开 始,即 0, 1, 2, 3。 D中的本题中的枚举类型中的数据值 Wednesday为 2,而 Friday的值赋值为 2,所以判断 Wednesday 等于 Friday的表达式值为真,即true。即选择 A)。 20 【正确答案】 D 【试题解析】 如果函数实参是数组名,形参也应为数组名,函数 swap 中形参进行了交换,实际卜也是实参进行了交换。而且数组名代表数组首元素的地址,并不代表数组的全部元素。所以, swap(b, 2)是数组 b第一个

20、元素与第二个元素进行交换,即 b0与 b1,根据题干,知道答案为 2, 1。 21 【正确答案】 A 【试题解析】 函数 fun 中首先定义整型变量 k 用来存放返回最大值的下标,并将其首先指向第一个元素,即 k=j。然后在 for循环中依次将当前元素 ai与标识为最大值的元素进行比较,如果当前元素大于这个标识元素,那么将最大值标识为当前元素,即 k=i。 22 【正确答案】 A 23 【正确答案】 B 24 【正确答案】 D 25 【正确答案】 D 26 【正确答案】 C 【试题解析】 运算符函数有两种调用形式,第一种是像一般函数那样用函数名调用,即 y.operator*(z)或者 ope

21、rator*(y, z);另一种是通过运算符构成表达式,即y*z。因为 “+”运算符既可以作为前缀运算符,又可以作为后缀运算符,所以重载这个运算符时,重载后缀 “+”时必须多一个虚拟参数: int。 27 【正确答案】 A 【试题解析】 类 YY公有派生于类 XX,派生类对象可以替代基类对象向基类埘象的引用进行赋值初始化, XX class A public: static int a; void init()a=1; A(int a=2)init(); a+; ; int A:a=0; A obj; int main() cout obj.a; return 0; 运行时输出的结果是( )。

22、 36 【正确答案】 线性结构 【试题解析】 数据的逻辑结构,是指数据元素之间的逻辑关系,分为线性结构和非线性结构,常见的线性结构有线性表、栈和队列等;常见的非线性结构有树、二叉树等。 37 【正确答案】 9 38 【正确答案】 叶子结点 39 【正确答案】 输出 40 【正确答案】 软件开发 【试题解析】 软件生命周期分为三个时期共八个阶段:软件定义期 (问题定义、可行性研究和需求分析阶段 )、软件开发期 (系统设计、 详细设计、编码和测试阶段 )、软件维护期 (即运行维护阶段 )。 41 【正确答案】 13A23B 【试题解析】 Con c1定义 c1 对象,调用 Con 的无参数构造函数

23、,输出 1, ID值变为 A,执行 show(c1)时会调用拷贝构造函数,将 c1 对象的值拷贝给 show()函数的形参,此时输出 3,然后在 show()里面输出 c1 的 ID值 A, con c2(B)定义 c2对象,调用 Con(char ID) 构造函数,输出 2, c2 的 ID值为 B, show(c2)执行时先调用拷贝构造函数输出 3,然后输出 B。因此程序输出结 果为 “13A23B”。 42 【正确答案】 x=y.operator*(z) 【试题解析】 此题考查的是 “*”运算符的重载。运算符函数的调用有两种形式,第一种是像一般函数那样用函数名调用,即 y.operato

24、r*(z);另一种是通过运算符构成表达式,即 y*z。 43 【正确答案】 false 44 【正确答案】 成员初始化列表 【试题解析】 派生类是基类的具体化,而基类则是派生类的抽象。派生类也就是基类的具体实现,所以对基类数据成员的初始化是在派生类的构造函数中成员初始化列表执行的。 45 【正确答案】 2 46 【正确答案】 构造函数 47 【正确答案】 TestClass1 Class 【试题解析】 TestClass 为基类, TestClass1 和 TestClass2都是 TestClass 的派生类。本题从 main 主函数入手,首先定义了 TestClass 类型的对象 obj1

25、和指针 p,然后又分别定义了 TestClass1和 TestClass2 的对象 obj2和 obj3。指针分别指向对象 obj1、 obj2和 obj3,然后分别调用其成员函数 who(),分别输出: “Base Class”, “TestClass1 Class”, “TestClass2 Class”。 48 【正确答案】 break 49 【正确答案】 int *p=DATA 【试题解析】 此题考查的是指针变量的定义及初始化。题目中要求输出 int型数组 DATA的前五个元素,由表达式 *(p+0)和 *(p+4)可知变量 p是一个指向 DATA首地址的 int型指针,故它的定义及初始化语句是 int*p=DATA。 50 【正确答案】 private 【试题解析】 此题考查的是类的继承方式。类的继承方式有公 有、保护和私有三种。分析题目可以得到,若横线处填入的是 private,即类 Derived1 私有继承类Base将导致 objD.m和 objD.n 出错,符合题目要求。

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

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

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