资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
参考答案及解析考点1 数据结构与算法(1) 【答案】 D) 【解析】算法是指解题方案的准确而完整的描述,算法既不等于程序,也不等于计算方法,因此A)错误。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构,因此B)和C)错误。(2) 【答案】 A) 【解析】算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。算法的有穷性是指算法程序的运行时间是有限的,因此本题答案为A)。(3) 【答案】 A) 【解析】算法的空间复杂度是指算法在执行过程中所需要的内存空间,因此本题答案为A)。(4) 【答案】 B) 【解析】线性结构应满足:有且只有一个根结点与每个结点最多有一个前件,也最多有一个后件,因此B)正确。因为有一个以上根结点的数据结构一定是非线性结构,所以A)错误。循环链表和双向链表都是线性结构的数据结构。(5) 【答案】 A) 【解析】栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子程序时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,然后继续向下执行,这种调用方式符合栈的特点,因此本题的答案为A)。(6) 【答案】 B) 【解析】栈是只允许在同一端进行插入和删除运算的线性表,按“先进后出”组织数据,因此本题答案为B)。(7) 【答案】 B) 【解析】栈按后进先出的原则组织数据,因此入栈最晚的最先出栈,因此本题答案为B)。(8) 【答案】 B) 【解析】栈是按先进后出的原则组织数据的;队列是按先进先出的原则组织数据的,因此本题答案为B)。(9) 【答案】 A) 【解析】栈是先进后出的数据结构,因此栈顶元素最后入栈却最先被删除,栈底元素最先入栈却最后被删除,所以本题答案为A)。(10) 【答案】 C) 【解析】栈是先进后出的数据结构,在对栈操作的整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来完成,因此本题答案C)。(11) 【答案】 D) 【解析】栈是先进后出的线性表,因此A)错误;队列是先进先出的线性表,因此B)错误;循环队列是线性结构的线性表,因此C)错误,故本题答案为D)。(12) 【答案】 D) 【解析】栈是一种先进后出的线性表,队列是一种先进先出的线性表,栈与队列都是线性结构,因此本题答案为D)。(13) 【答案】 D) 【解析】循环队列有队头和队尾两个指针,但是循环队列仍是线性结构,因此A)错误;在循环队列中需要队头与队尾两个指针来共同反映队列中元素的动态变化情况,因此B)与C)错误,故本题答案为D)。(14) 【答案】 D) 【解析】循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。因为是循环利用的队列结构,所以对头指针有时可能大于队尾指针有时也可能小于队尾指针,故本题答案为D)。(15) 【答案】 B) 【解析】在实际应用中,队列的顺序存储结构一般采用循环队列的形式,循环队列是线性结构,因此本题答案为B。(16) 【答案】 A) 【解析】链式存储结构既可以针对线性结构也可以针对非线性结构,因此B)与C)错误。链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,因此D)错误。本题答案为A)。(17) 【答案】 B) 【解析】线性链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,因此一般要多于顺序存储结构,选项B)正确。(18) 【答案】 C) 【解析】一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。线性链表中数据的插入和删除都不需要移动表中的元素,只需改变结点的指针域即可。因此,本题答案为C)。(19) 【答案】 C) 【解析】树是简单的非线性结构,因此二叉树作为树的一种属于非线性结构,答案C)正确。(20) 【答案】 C) 【解析】根据总体结构图可以看出该树的深度为3,比如:XY系统功能2功能2.1,就是最深的度数的一个表现,因此本题答案为C)。(21) 【答案】 C) 【解析】根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个,因此本题答案是516,故选择C)。(22) 【答案】 D) 【解析】根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总比度为2的结点多一个,因此本题中度为2的结点为1-10个,据此可以知道本题目中的二叉树的每一个结点都有一个分支,所以共7个结点共7层,即深度为7,选择D)。(23) 【答案】 B) 【解析】根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个,因此答案为B)。(24) 【答案】 A) 【解析】根据二叉树的性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个,所以本题中度为2的结点是5-14个,所以度为1的结点的个数是25-5-416个,选择A)。(25) 【答案】 C) 【解析】当有序线性表为顺序存储时才能用二分法查找。可以证明的是对于长度为n的有序线性表,在最坏情况下,二分法查找只需要比较log2n 次,而顺序查找需要比较n次,因此本题答案为C)。(26) 【答案】 D) 【解析】快速排序、冒泡排序和直接插入排序在最坏情况下,比较次数都是n(n-1)/2,堆排序在最坏情况下的比较次数最少,是O(nlog2n),因此本题答案为D)。(27) 【答案】 D) 【解析】冒泡排序、直接插入排序与简单选择排序法在最坏情况下均需要比较n(n-1)/2次,而堆排序在最坏情况下需要比较的次数是nlog2n,因此本题答案为D)。考点2 程序设计基础(1) 【答案】 A) 【解析】结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,多态性是面向对象的程序设计的思想,因此本题答案为A)。(2) 【答案】 A) 【解析】结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,因此本题答案为A)。(3) 【答案】 B) 【解析】1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复(循环)三种基本控制结构就足以表达出各种其他形式的结构化程序设计方法,因此本题答案为B)。(4) 【答案】 A) 【解析】面向对象设计方法的基本概念有对象、类和实例、消息、继承与多态性,因此选择A)。(5) 【答案】 A) 【解析】在面向对象方法中,对象的基本特点包括:标识唯一性、分类性、多态性、封装性、模块独立性好。一致性不属于对象的基本特点,因此本题答案为A)。(6) 【答案】 B) 【解析】只有B)选项369可以用无符号整数来表示和存储。A)选项-369有负号,选项C)0.369是小数,它们都不能用无符号整数类存储。选项D)是一个整数集合需要用数组来存储。(7) 【答案】 D) 【解析】继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,因此继承是指类之间共享属性和操作的机制,选项D)正确。考点 3 软件工程基础(1) 【答案】 A) 【解析】软件按功能可以分为:应用软件、系统软件、支撑软件。操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件,因此B)、C)、D)都是系统软件,只有A)是应用软件。(2) 【答案】 C) 【解析】编译程序、操作系统、汇编程序都属于系统软件,只有教务管理系统才是应用软件,因此本题答案为C)。(3) 【答案】 A) 【解析】软件危机主要表现在:软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。因此本题答案为A)。(4) 【答案】 A) 【解析】通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期,因此本题答案为A)。(5) 【答案】 A) 【解析】软件生命周期可以分为软件定义、软件开发与软件运行维护三个阶段。主要活动包括:可行性研究与计划、需求分析、软件设计、软件实现、软件测试、运行和维护,因此本题答案为A)。(6) 【答案】 B) 【解析】A)错误,可行性分析阶段产生可行性分析报告。C)错误,总体设计阶段产生概要设计说明书。D)错误,集成测试计划是在概要设计阶段编写的文档。B)正确,需求规格说明书是需求分析阶段产生的主要文档,是后续工作如设计、编码等需要的重要参考文档。(7) 【答案】 D) 【解析】需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面,因此本题答案为D)。(8) 【答案】 D) 【解析】需求分析阶段的工作包括:需求获取、需求分析、编写需求规格说明书、需求评审,因此本题答案为D)。(9) 【答案】 D) 【解析】数据流图中带箭头的线段表示的是数据流,即沿箭头方向传送数据的通道,一般在旁边标注数据流的名称,因此本题答案为D)。(10) 【答案】 B) 【解析】软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。模块的划分应遵循一定的准则,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。模块之间的耦合应尽可能的低,模块的内聚应尽可能的高,因此本题答案为B)。(11) 【答案】 B) 【解析】模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。一般较优秀的软件设计应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,因此A)错误,B)正确。耦合性是模块间互相连接的紧密程度的度量,内聚性是指一个模块内部各个元素间彼此结合的紧密程度,因此C)与D)错误。(12) 【答案】 B) 【解析】一般较优秀的软件设计应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,因此本题答案为B)。(13) 【答案】 B) 【解析】在需求分析阶段可以使用的工具有数据流图(DFD图),数据字典(DD),判定树与判定表,因此本题答案为B)。(14) 【答案】 A) 【解析】详细设计的任务是为软件结构图中而非总体结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节,因此A)描述错误。(15) 【答案】 C) 【解析】系统结构图是对软件系统结构的总体设计的图形显示。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的。PAD图是在详细设计阶段用到的。程序流程图是对程序流程的图形表示,在详细设计过程中用到。数据流图(DFD图)是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,因此它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以本题答案为C)。(16) 【答案】 C) 【解析】在数据流图中,用标有名字的带箭头线段表示数据流。在程序流程图中,用标有名字的带箭头线段表示控制流,因此本题答案为C)。(17) 【答案】 C) 【解析】N-S图提出了用方框图来代替传统的程序流程图,因此A)不对。PAD图是问题分析图,它是继承程序流程图和方框图之后提出的又一种主要用于描述软件详细设计的图形表示工具,因此B)不对。E-R图是数据库中用于表示E-R模型的图示工具,因此D)不对。根据图中所示表示方法可以得知该图是进行软件详细设计时使用的程序流程
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号