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

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

1、国家二级( C+)机试模拟试卷 20及答案与解析 一、选择题 1 4种基本结构中,能简化大量程序代码行的是 ( )。 ( A)顺序结构 ( B)分支结构 ( C)选择结构 ( D)重复结构 2 下列关于栈的描述正确的是 ( )。 ( A)在栈中只能插入元素而不能删除元素 ( B)在栈中只能删除元素而不能插入元素 ( C)栈是特殊的线性表,只能在一端插入或删除元素 ( D)栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素 3 下列有关数据库的叙述,正确的是 ( )。 ( A)数 据处理是将信息转化为数据的过程 ( B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变 ( C

2、)关系中的每一列称为元组,一个元组就是一个字段 ( D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字。 4 概要设计中要完成的事情是 ( )。 ( A)系统结构和数据结构的设计 ( B)系统结构和过程的设计 ( C)过程和接口的设计 ( D)数据结构和过程的设计 5 下面排序算法中,平均排序速度最快的是 ( )。 ( A)冒泡排序 法 ( B)选择排序法 ( C)交换排序法 ( D)堆排序法 6 两个或两个以上模块之间关联的紧密程度称为 ( )。 ( A)耦合度 ( B)内聚度 ( C)复杂度 ( D)数据传输特性 7 下列描述中正确的是

3、( )。 ( A)软件工程只是解决软件项目的管理问题 ( B)软件工程主要解决软件产品的生产率问题 ( C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 ( D)软件工程只是解决软件开发中的技术问题 8 关系模型允许定义 3类数据约束,下列不属于数据约束的是 ( )。 ( A)实体完整性约束 ( B)参照完整性约束 ( C)属性完整性约束 ( D)用户自定义完整性约束 9 下列描述中正确的是 ( )。 ( A)程序就是软件 ( B)软件开发不受计算机系统的限制 ( C)软件既是逻辑实体,又是物理实体 ( D)软件是程序、数据与相关文档的集合 10 用树型结构表示实体之间联系的模型

4、是 ( )。 ( A)关系模 ( B)网状模型 ( C)层次模型 ( D)以上三个都是 11 在深度为 5的满二叉树中,叶子结点的个数为 ( )。 ( A) 32 ( B) 31 ( C) 16 ( D) 15 12 软件生命周期中所花费用最多的阶段是 ( )。 ( A)详细设计 ( B)软件编码 ( C)软件测试 ( D)软件维护 13 下列数据结构中,能用二分法进行查找的是 ( )。 ( A)顺序存储的有序线性表 ( B)线性链表 ( C)二叉链表 ( D)有序线性链表 14 以下叙述中错误的是 ( )。 ( A)对于 double类型数组,不可以直接用数组名对数组进行整体输人或输出 (

5、B)数组名代表的是数组所占存储区的首地址,其值不可改变 ( C)当 程序执行时,若数组元素的下标超出所定义的下标范围,系统将给出 “下标越界 ”的出错信息 ( D)可以通过赋初值的方式确定数组元素的个数 15 对下列二叉树进行中序遍历的结果是 ( )。 ( A) ACBDFEG ( B) ACBDFGE ( C) ABDCGEF ( D) FCADBEG 16 下列叙述中正确的是 ( )。 ( A)全局变量的作用域一定比局部变量的作用域范围大 ( B)静态类别变量的生存期贯穿于整个程序的运行期间 ( C)函数的形参都属于全局变量 ( D)未在定义语句中赋初值的 auto变量和 static变量

6、的初值都是随机值 17 假定 MyClass为一个类,则执行 MyClass a, b(2), *p;语句时,自动调用该类构造函数 ( )次。 ( A) 2 ( B) 3 ( C) 4 ( D) 5 18 能正确表示逻辑关系 ”a10或 a0”的 C+语言表达式是 ( )。 ( A) a)=10 or a =0 ( B) a =0 a =10 ( C) a =10&a = ( D) a =10 a =0 19 若执行下面的程序时,从键盘上输入 5和 2,则输出结果是 ( )。 #include void main() int a, b, k; cin a b; k=a; if(a b) k=a

7、 b; else k=b a; cout void sub(int x, int y, int*z) *z=y-x; ) void main() int a, b, C; sub(10, 5, &a); sub(7, a, &b); sub(a, b, &c); coutab; cout using namespace std; class A public: A()cout template class FF TT a1, a2, a3; public: FF(TT b1, TT b2, TT b3)a1=b1; a2=b2; a3=b3; TT Sum()return a1+a2+a3;

8、; void main() FF int x(int(1 1), 2, 3), y(int(4 2), 5, 6); eout class TC * * * * * * * * error* * * * * * * * TC(int i) m_i=i; void print() cout #include int fun(int n) int main() int i=1357: cout class Date public: *1* Date(int y, int m, int d) *2* void print()const; private: data member *3* ; void

9、 Date: print()const *4* int main() Date Olympic_BJ(2008, 8, 8); Olympic_BJ print(); return 0; 国家二级( C+)机试模拟试卷 20答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 重复结构又称为循环结构,它根据给定的 条件,判断是否需要重复执行某一相同或类似的程序段,利用重复结构可以简化大量的程序行。 2 【正确答案】 C 【试题解析】 根据数据结构对栈的定义及其特点可知:栈是限定只在表尾进行插入或删除操作的线性表,因此栈是先进后出的线性表,对栈的插入与删除操作,不需要改变栈底元素。 3 【

10、正确答案】 D 【试题解析】 数据处理是指将数据转换成信息的过程,故选项 A叙述错误;数据的物理独立性是指数据的物理结构的改变不会影响数据库的逻辑结构,故选项B叙述错误;关系中的行称为元组,对应存储文件中的记录,关系 中的列称为属性,对应存储文件中的字段,故选项 C叙述错误。 4 【正确答案】 A 【试题解析】 软件概要设计的基本任务是:设计软件系统结构、数据结构及数据库设计、编写概要设计文档、概要设计文档评审。 5 【正确答案】 D 【试题解析】 在各种排序方法中,快速排序法和堆排序法的平均速度是最快的,因为它们的时间复杂度都是 O(nlog2n),其他的排序算法的时间复杂度大都是O(n2)

11、。 6 【正确答案】 A 【试题解析】 耦合是指模块之间的关联程度,内聚是指模块内部各部分的聚合程度。 7 【正确答案】 C 【试题解析】 软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法来开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。软件工程的目标是生产具有正确性、可用性及开销合宜的产品,它的主要思想是强调在软件开发过程中需要应用工程化原则。 8 【正确答案】 C 【试题解析】 关系模型允许定义 3类数据约束,即实体完整性约束、参照完整性约束和用户自定义完整性约束。其中前两种完整性约束由关系数据库系统支持,用户自定义完整性约

12、束 则由关系数据库系统提供完整性约束语言,用户利用该语言给出约束条件,运行时由系统自动检查。 9 【正确答案】 D 【试题解析】 软件是程序、数据与相关文档的集合,它是一个逻辑实体。软件的开发要受计算机系统的限制,例如硬件系统的限制、软件操作系统的限制等。 10 【正确答案】 C 【试题解析】 层次模型是数据库系统中最早出现的数据模型,它用树型结构来表示各类实体及实体间的联系。在现实世界中事物之间的联系更多的是非层次关系的,用层次模型表示非树型结构很不直接,网状模型则用来表示非树型结构。关系 模型是目前最重要的一种数据模型,它建立在严格的数学概念基础上。关系模型由关系数据结构、关系操作系统和关

13、系完整性约束 3部分组成。 11 【正确答案】 C 【试题解析】 根据二叉树的性质及定义,一棵深度为 k且有 2k-1个结点的二叉树为满二叉树。满二又树的叶子结点为最后一层的结点数,又根据满二叉树的性质,在满二叉树的第 i层上至多有 2i-1个结点。因此深度为 5的满二又权的叶子结点数为 25-1=16个。 12 【正确答案】 D 【试题解析】 本题考查对软件生命周期的理解。软件生命周期整体上可分为定义阶 段、开发阶段和维护阶段。其中,定义阶段包括可行性研究、计划制订和需求分析;开发阶段包括概要设计、详细设计、开发和测试;维护阶段是一个单独阶段,不包含在开发阶段内,它是所花费用最多的一个阶段。

14、 13 【正确答案】 A 【试题解析】 二分法查找只用于顺序存储的有序线性表;而顺序查找则用于顺序存储的非有序线性表和线性链表。 14 【正确答案】 C 【试题解析】 数组下标从 O开始,当数组元素的下标超出了定义的范围时,系统不会给出 “下标越界 ”的信息,运行会因此出错,因此在编程时必须检查下标是否越界 。 15 【正确答案】 A 【试题解析】 二叉树的遍历有 3种:前序、中序和后序。中序遍历首先遍历左子树或左子结点,然后访问根结点,最后遍历右子树或右子结点。分析本题二叉树,对其进行中序遍历的结果为 ACBDFEG。 16 【正确答案】 B 【试题解析】 本题考查的是变量的作用域及其生存周

15、期。一个全局变量的生存周期从它被声明开始,直到程序结束;一个局部变量的生存周期从它被声明开始,直到包含它的最近的一个程序块结束。静态变量的生存周期将延续到整个程序的终止。 17 【正确答案】 A 【试题解析】 C+在创建一个对象时,会调用类的构造函数。执行 MyClass a b, (2), *p;创建了两个对象 a、 b和指针 p,在创建对象 a和 b会调用构造函数,而创建指针 p时,由于 p本身不是对象,所以不调用类的构造函数。 18 【正确答案】 D 【试题解析】 逻辑运算符 “ ”表示或的意思。 19 【正确答案】 C 【试题解析】 本题考查简单的 ifelse 语句。先执行条件 if

16、(a(b),显然不成立,则执行 else语句。 20 【正确答案】 D 【试题解析】 C+语言中析构 函数为符号 “ ”加类名,且析构函数没有返回值和参数,故前不加 void关键字。所以正确的形式应该是 MyClass()。 21 【正确答案】 C 【试题解析】 C+中,类是用户自定义的一种数据类型,对象是类的实例,类定义了属于该类的所有对象的共同特性。一个类作为一种数据类型,它可以定义多个对象。 22 【正确答案】 A 【试题解析】 选项 A中,重载函数中是允许使用默认参数的;为了使重载函数有意义,不要使用重载函数来描述毫不相干的函数;重载函数中编译是根据参数表进行选择的,包括参数的个数和

17、类型。 23 【正确答案】 B 【试题解析】 在 C+语言中,调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。 24 【正确答案】 B 【试题解析】 本题思路巧妙,分析时可以发现 b=(a+b)-b,则此时 b中放的是a,完成交换工作的一半,然后要将 b放到 a中,将表达式展开,则为 a=(a+b)-a,此时正好把 b放到 a中。此时完成全部的交换。 25 【正确答案】 A 【试题解析】 从循环语句中可以看出,是在 0到 4的循环中输出数组 a中的前 5个元素,输出的值为 *(p+i),即为指针 p向后移动指向的元素。所以初始化要将指针 p指向数组 a,即 int*p=

18、a;。 26 【正确答案】 A 【试题解析】 本来 while中的表达式应为 k=1,而本题却为 k=1,是赋值表达式而不是逻辑表达式。因此,编译器将其值一直认为是 1,因此表达式一直为真,陷入无限次的循环。 27 【正确答案】 C 【试题解析】 本题考查在 C+语言中,字符串的存放规则。即字符串存放在字符数组中,而且在字符的后面自动插入标识字符串结束的标识符 0,因此,共 6个字符,每个字符占用 1字节,故 正确答案为 C。 28 【正确答案】 D 【试题解析】 本题考查的是无格式输入输出流对象中的 getline函数。该函数的功能是允许从输入流中读取多个字符,并且允许指定输入终止字符 (默

19、认是换行符 ),在读取完成后,从读取的内容中删除该终止字符。 29 【正确答案】 A 【试题解析】 本题采用递归函数的方式将数组中的元素进行倒置,正确答案为A。 30 【正确答案】 B 【试题解析】 本题考查关于 C+语言基类中虚函数的继承问题。 C+语言中基类的虚函数是可以被派生类继承的。 31 【正确答案】 C 【试题解析】 while中表达式值一直为 0,故循环一次也不执行。 32 【正确答案】 B 【试题解析】 本题考查的是类的构造函数和析构函数。派生类构造函数的执行顺序:首先调用基类的构造函数,调用顺序按它们被继承时说明的顺序;然后调用子对象的构造函数,调用顺序按它们在类中说明的顺序

20、;最后是派生类构造函数中的内容。因此本题中,首先调用基类构造函数输出 A,然后调用子对象的构造函数输出 B, p=new A再调用类 A的构造函数输出 A;析构函数的调用顺序和构造函数的调用顺序相反。 33 【正确答案】 B 【试题解析】 派生类对象的数据结构是由基类中说明的数据成员和派生类中说明的数据成员共同构成的,所以不能继承基类的构造函数,必须重新定义。 34 【正确答案】 A 【试题解析】 本题考查的是含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次调用虚基类的构造函数,最后调用派生类自己的构造函数。 35 【正确答案】 C 【试题解析

21、】 基类中说明的虚函数,在派生类中自然就是虚函数,所以类 B中funcl()是虚函数;而类 A中的 func2()没有被关键字 virtual修饰,所以不是虚函数。 36 【正确答案】 C 【试题解析】 例如 “: ”运算符就不能被重载;通过重载可以创造新的运算方式,但是不能臆造新的运算符;定义的时候必须使用关键字 operator,而调用时可直接使用运算符。 37 【正确答案】 D 【试题解析】 题干表示的是回车换行,选项 A、 B和 C都表示回车换行。而 D是字符串的结尾标志。 38 【正确答案】 C 【试题解析】 for循环执行 2次,所以第一次 for循环为 result=1*a1=4

22、,第二次 for循环为 result=4*a2=20。 39 【正确答案】 C 【试题解析】 应该先做 +运算,然后进行运算,最后比较不等式,实际上最后输出的结果就是被 3除,余数为 2的不大于 8的数。 40 【正确答案】 B 【试题解析】 本题考查模板函数的应用,表达式 int(1 1)和 int(4 2)是将 1 1和 4 2强制转换为整型。 二、基本操作题 41 【正确答案】 (1)应添加 “public: ”。 (2)“int i()”应改为 “int i(10); ”。 (3)“i+; ”应改为 “i-; ”。 【试题解析】 本题主要考查的是成员的访问属性。成员的访问属性有公有、保

23、护和私有 3种,而默认的访问属性为私有,只有公有成员才能通过类的对象被访问。故应在构造函数前添加 “public: ”,否则该类无法被实例化。变量的初始化可以通过 “=”号,也可以和初始化对象一样添加构造参数,题目已要求使用后者。本题要求输出 5个数, while的循环变量 i每次减 1,在 i5时循环,故 i初始化应为10。若循环中 i每次增 1,则循环永远不会退出。 三、简单应用题 42 【正确答案】 int i, a4, t; a1=n 10; 取整型 n的第 1位数字 a1=n 100 10; 取整型 n的第 2位数字 a2=n 1000 100; 取整型 n的第 3位数字 a3=n

24、1000; 取整型 n的第 4位数字 for(i=0; i(=3; i+) 每位数字加 3,取余 ai+=3; ai =9; t=a0; 根据加密算法交换 a0=a3; a3=t; t=a1; a1=a2; a2=t; return a3*1000+a2*100+a1*10+a0; 重组,返回加密数字 【试题解析】 本题首先取得要加密整数的每一位数字,并存入数组。根据加密算法,利用循环实现每位数字加 3,再除以 9取余。根据加密算法进行数字交换,最后重组,返回密码。 四、综合应用题 43 【正确答案】 (1)应添加 “Date()year=1; month=1; day=1; ”或 “Date

25、():year(1), month(1), day(1)”。 (2)应添加 “year=y; month=m; day=d; ”。 (3)应添加 “int year, month, day; ”。 (4)应添加 “coutyear“=“month“-“dayend1; ”或 “coutyear-month-dayend1; ”。 【试题解析】 本题考查了类的定义。根据题意,此处应定义 3个 int型数据成员year、 month和 day。根据题意,第 2处应添加默 认构造函数,并初始化 3个变量,这里既可以使用赋值语句来实现,也可以使用初始化列表。第 3处只能通过赋值语句初始化 3个成员,因为注释 3位于函数中,无法在此处使用初始化列表。添加输出语句,注意题目头包含的头文件是 iostream h,不能添加 std:前缀。

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

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

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