1、 计算机二级选择题答案 考点 1答案:数据结构与算法 ( 1) B)【解析】算法的时间复杂度是指算法在计算机内执行时所需时间的度量;与时间复杂度类似,空间复杂度是指算法在计算机内执行时所需存储空间的度量。因此,选项 B)的说法是正确的。 ( 2) D)【解析】时间复杂度是指一个算法执行时间的相对度量;空间复杂度是指算法在运行过程中临时占用所需存储空间大小的度量。人们都希望选择一个既省存储空间、又省执行时间的算法。然而,有时为了加快算法的运行速度,不得不增加空间开销;有时为了能有效地存储算法和数据,又不得不牺牲运行时间。时 间和空间的效率往往是一对矛盾体,很难做到两全。但是,这不适用于所有的情况
2、,也就是说时间复杂度和空间复杂度之间虽然经常矛盾,但是二者不存在必然的联系。因此,选项 A)、 B)、 C)的说法都是错误的。故本题的正确答案是 D)。 ( 3) C)【解析】数据处理的最小单位是数据项;由若干数据项组成数据元素;数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。 ( 4) D)【解析】一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等。而采用不同的 存储结构,其数据处理的效率是不同的。故本题答案为 D)。 ( 5) C)【解析】数据结构概念一般包括数据的逻辑结构、存储结构及数据上的运算集合
3、等。数据的逻辑结构只抽象地反映数据元素之间的逻辑关系,而不管它在计算机中的存储形式。 ( 6) A)【解析】数据结构作为计算机的一门学科,主要研究和讨论以下三个方面的问题: 数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构; 在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构; 对各种数据结构进行的运算。 ( 7) A)【解析】根据数据结构中各数据 元素之间前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。 如果一个非空的数据结构满足下列两个条件: 有且只有一个根结点; 每一个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构,又称
4、线性表。 所以线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。 ( 8) D)【解析】线性表可以为空表;第一个元素没有直接前件,最后一个元素没有直接后件;线性表的定义中,元素的排列并没有规定大小顺序。 ( 9) A)【解析】如果一个非空的数据结构满足下列两个条件:第一,有且只有一个 根结点;第二,每一个结点最多有一个前件,也最多有一个后件,则称该数据结构为线性结构。线性结构又称线性表。 ( 10) B)【解析】顺序存储结构中,数据元素存放在一组地址连续的存储单元中,每个数据元素地址可通过公式 LOC(ai)=LOC(a1)+(i-1)L计算得到,从而实现了随机存取。对于链式存储结
5、构,要对某结点进行存取,都得从链的头指针指向的结点开始,这是一种顺序存取的存储结构。 ( 11) D)【解析】栈是限定在一端进行插入与删除的线性表。 栈是按照“先进后出”的或“后进先出”的原则组织数据的,因此,栈也被称为 “先进后出”表或“后进先出”表。 ( 12) B)【解析】本题考查的是栈。栈是一种特殊的线性表,线性表可以顺序存储,也可以链式存储,而栈是一种线性表,也可以采用链式存储结构。故本题答案为 B)。 ( 13) B)【解析】本题主要考查对于栈的理解。栈是限定在一端进行插入与删除的线性表。在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插
6、入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素,即栈是按照“先进后出”或“后进先出”的原则组织 数据的。 ( 14) A)【解析】和线性表类似,栈也有两种存储方法,一是顺序栈,二是链式栈。栈的顺序存储结构是利用一组地址连续的存储单元一次存储自栈底到栈顶的数据元素,同时附设指针 top指示栈顶元素的位置,由于栈的操作是线性表操作的特例,相对而言,链式栈的操作更易于实现。 ( 15) B)【解析】由栈“后进先出”的特点可知: A)中 e1不可能比 e2先出, C)中 e1不可能比 e2先出,D)中栈是先进后出的,所以不可能是任意顺序。 B)中出栈过
7、程如下图所示: ( 16) B)【解析】栈操作原则上“后进先出”,栈底至栈顶依次存 放元素 A、 B、 C、 D,则表明这 4个元素中 D是最后进栈, B、 C处于中间, A最早进栈,所以出栈时一定是先出 D,再出 C,最后出 A。 ( 17) C)【解析】队列是一种操作受限的线性表。它只允许在线性表的一端进行插入操作,另一端进行删除操作。其中,允许插入的一端称为队尾( rear),允许删除的一端称为队首( front)。队列具有先进先出的特点,它是按“先进先出”的原则组织数据的。 ( 18) C)【解析】考查栈和队列概念的掌握。栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和
8、删除。二者的区别是:栈只允许在表 的一端进行插入或删除操作,是一种“后进先出”的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种“先进先出”的线性表。 ( 19) A)【解析】本题考查的是线性单链表、双向链表与循环链表的结构及其基本运算。在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。 故本题答案为 A)。 ( 20) A)【解析】链式存储结构克服了顺序存储结构的缺点:它的结点空间可以动态申请和释放;它的数据元素的逻辑次序 靠结点的指针来指示,不需要移动数据元素。故链
9、式存储结构下的线性表便于插入和删除操作。本题答案为 A)。 ( 21) A)【解析】将题中所述的树用图形表示即可得到叶子结点的数目,另外还可用公式 n0=1n2+2n3+3n4+1来计算,其中 n0表示叶子结点; 1n2中的 n2表示度为 2的结点。此题中度为 1的结点有 4个;度为 2的结点有 2个;度为 3的结点有 1个;度为 4的结点有 1个,计算过程如下: n0=1n2+2n3+3n4+ +1 n0=1 2+2 1+3 1+1 n0=8 ( 22) D)【解析】具有 3个结点的二叉树有以 下的几种形态: ( 23) D)【解析】本题考查了二叉树的基本概念。在二叉树中,叶子节点的度是 1
10、;当该二叉树为空树时,根节点的度为 0;为非空树时,根节点的度最大为 2。 ( 24) B)【解析】本题考查二叉树的遍历。所谓二叉树的前序遍历 (DLR)是指在访问根结点、遍历左子树与遍历右子树这 3者中,首先访问根结点,然后遍历左子树,最后遍历右子树,并且,在遍历左右子树时,上述规则同样适用,即“根左右”,故该二叉树的前序遍历结果为“ ATBZXCYP”。 ( 25) D)【解析】前序遍历的第一个结点 a为树的根结点;中序遍历 中 a的左边的结点为 a的左子树, a右边的结点为 a的右子树;再分别对 a的左右子树进行上述两步处理,直到每个结点都找到正确的位置。 ( 26) B)【解析】对有序
11、线性表进行顺序查找,首先用被查找的数据和线性表的第一个数据元素进行比较,若相等,则查找成功;否则,继续进行比较,即和线性表的第二个数据元素进行比较。同样,若相等,则查找成功;否则,继续进行比较。依次类推,直到在线性表中查找到该数据或查找到线性表的最后一个元素,算法才结束。因此,在长度为 64的有序线性表中进行顺序查找,最坏的情况下需要比较 64次。 ( 27) A) 【解析】二分法查找只适用于顺序存储的有序表。在此所说的有序表是指线性表中的元素按值非递减排列(即从小到大,但允许相邻元素值相等)的。选项 A)正确。 ( 28) A)【解析】从平均时间性能而言,快速排序最佳,其所需时间最少,但快速
12、排序在最坏情况下的时间性能不如堆排序和归并排序。当序列中的记录基本有序或元素个数较少时,冒泡排序和简单选择排序为最佳排序方法。 考点 2答案:程序设计基础 ( 1) D)【解析】结构化程序设计方法的主要原则是:自顶向下,逐步求精,模块化,限制使用 goto语句。可复用性是指软件元素不加修改和稍加 修改可在不同的软件开发过程中重复使用的性质。软件可复用性是软件工程追求的目标之一,是提高软件生产效率的最主要方法。面向对象的程序设计具有可复用性的优点。 ( 2) D)【解析】滥用 goto 语句将使程序流程无规律,可读性差,因此 A)不选;注解行有利于对程序的理解,不应减少或取消, B)也不选;程序
13、的长短要依照实际情况而论,而不是越短越好, C)也不选。 ( 3) B)【解析】本题考查了程序的基本结构。程序由一些基本结构组成。任何一个大型的程序都由 3种基本结构组成,由这些基本结构构成一个结构化的程序。这 3种基本结构为:顺 序结构、选择结构和循环结构。 ( 4) D)【解析】结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化及限制使用 goto语句,总的来说可使程序结构良好、易读、易理解、易维护。 ( 5) C)【解析】面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是,使用现实世界的概念抽象地思考问题从而自然地解决问题。它强调模拟现实世界中的概念而不强调
14、算法,它鼓励开发者在软件开发的绝大部分中都用应用领域的概念去思考。本题答案为 C)。 ( 6) D)【解析】面向对象的世界是通过对象与对象间彼此的相互合作来推动 的,对象间的这种相互合作需要一个机制协助进行,这样的机制称为消息。消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。本题答案为 D)。 ( 7) D)【解析】面向对象程序设计方法并不强调自顶向下的构造程序,而常常是自底向上的,而自顶向下、逐步求精是结构化程序设计的特点。 ( 8) D)【解析】面向对象思想中的三个主要特征是:封装性、继承性和多态性。 ( 9) A)【解析】面向
15、对象程序由若干个对象构成;结构化程序由数据和相应算法构成。 ( 10) A)【解析】对象是由 数据和容许的操作组成的封装体,与客观实体有直接的对应关系,对象之间通过传递消息互相联系,从而模拟现实世界中不同事物彼此之间的联系, B)、 C)、 D)是正确的,对象的思想广泛应用于 C+、 Java等语言中,因此 A)错误。 ( 11) C)【解析】对象的基本特点:标识唯一性、分类性、多态性、封装性和模块独立性。 ( 12) C)【解析】在面向对象程序设计中所使用的对象,其数据和操作是作为平等伙伴出现的。因此,对象具有很强的自含性,此外,对象所固有的封装性,使得对象之间不相互影响。 ( 13) D)
16、【解析】面向对象方法是一种运 用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。面向对象方法从对象出发,发展出对象、类、消息、继承等概念。 考点 3答案:软件工程基础 ( 1) D)【解析】本题考查软件的定义。软件是计算机系统中与硬件相互依存的另一部分,它包括程序、相关数据及其说明文档的总和。因此,本题的正确答案是选项 D)。 ( 2) C)【解析】软件工程学是研究软件开发和维护的普遍原理与技术的一门工程学科。所谓软件工程是指采用工程的概念、原理、技术和方法指导软件的开发与维护。软件工程学的主要研究对象包括软件开发与维护的技术、 方法、工具和管理等方面。由此可见,选项 A)
17、、选项 B)和选项 D)的说法均不正确,选项 C)正确。 ( 3) D)【解析】软件工程包括 3个要素,即方法、工具和过程。 ( 4) C)【解析】软件工程概念的出现源自于软件危机。为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径,逐步形成了软件工程的概念。 ( 5) A)【解析】本题考核软件维护的概念。维护是软件生命周期的最后一个阶段,也是持续时间最长、付出代价最大的阶段。在软件交付使用后,还需要进行维护。软件维护通常有以下四类:为纠正 使用中出现的错误而进行的改正性维护;为适应环境变化而进行的适应性维护;为改进原有软件而进行的完善性维护;为将
18、来的可维护和可靠而进行的预防性维护。软件维护不仅包括程序代码的维护,还包括文档的维护。综上所述,本题的正确答案是选项 A),其余选项的说法错误。 ( 6) D)【解析】软件生命周期分为软件定义、软件开发及软件运行维护 3个阶段。本题中,详细设计、软件编码和软件测试都属于软件开发阶段;维护是软件生命周期的最后一个阶段,也是持续时间最长、花费代价最大的一个阶段,软件工程学的一个目的就是提高软件的可维护性,降低维护 的代价。 ( 7) A)【解析】通常将软件产品从提出、实现、使用维护到停止使用的过程称为软件生命周期。它可以分为软件定义、软件开发及软件运行维护 3个阶段。 ( 8) C)【解析】软件生
19、命周期由软件定义、软件开发和软件维护 3个时期组成。软件开发时期是具体设计和实现在前一时期定义的软件,它通常由下面五个阶段组成:概要设计、详细设计、编写代码、组装测试和确认测试。 ( 9) D)【解析】通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整 个时期都属于软件生命周期。 软件生命周期的主要活动阶段为: 可行性研究和计划制定。确定待开发软件系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等方面的可能方案,制定完成开发任务的实施计划。 需求分析。对待开发软件提出的需求进行分析并给出详细定
20、义,即准确地确定软件系统的功能。编写软件规格说明书及初步的用户手册,提交评审。 软件设计。系统设计人员和程序设计人员应该在反复理解软件需求的基础上,给出软件的结构、模块的划分、功能的分配以及处理流程。 软件实现。把软件设计转换成计算机可以接 受的程序代码。即完成源程序的编码,编写用户手册、操作手册等面向用户的文档,编写单元测试计划。 软件测试。在设计测试用例的基础上,检验软件的各个组成部分。编写测试分析报告。 运行和维护。将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。 ( 10) D)【解析】需求分析是软件定义时期的最后一个阶段,它的基本任务就
21、是详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。选项 A)软件开发方 法是在总体设计阶段需完成的任务;选项 B)软件开发工具是在实现阶段需完成的任务;选项 C)软件开发费用是在可行性研究阶段需完成的任务。 ( 11) C)【解析】常见的需求分析方法有:结构化分析方法和面向对象的分析方法。结构化分析就是使用数据流图( DFD)、数据字典( DD)、结构化语言、判定表和判定树等工具,来建立一种新的、称为结构化规格说明的目标文档。 ( 12) B)【解析】软件开发阶段包括需求分析、总体设计、详细设计、编码和测试 5个
22、阶段。其中需求分析阶段常用的工具是数据流图和数据字典。本题答案为 B)。 ( 13) A) 【解析】数据流图中的主要图形元素有加工、数据流、存储文件、源和潭。 ( 14) D)【解析】软件需求规格说明书( Software Requirement Specification, SRS)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它具有以下几个方面的作用: 便于用户、开发人员进行理解和交流; 反映出用户问题的结构,可以作为软件开发工作的基础和依据; 作为确认测试和验收的依据。 ( 15) B)【解析】软件设计包括软件结构设计、数据设计、接口设计和过程设计。其中,结构设计是定义软件系统各
23、主要部件之 间的关系;数据设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软件内部、软件和操作系统之间及软件与人之间如何通信;过程设计则是把系统结构部件转换成软件的过程性描述。 ( 16) D)【解析】在结构化程序设计中,一般较优秀的软件设计尽量做到高内聚、低耦合,这样有利于提高软件模块的独立性,也是模块划分的原则。 ( 17) C)【解析】软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念,它们具有抽象、模块化、信息隐蔽和数据独立性。自底向上是集成测试中增量测试 的一种。 ( 18) C)【解析】模块的独立程序是评价设计好坏的重
24、要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。一般较优秀的软件设计,应尽量做到高内聚,低耦合。 ( 19) B)【解析】系统设计的质量主要反映在模块的独立性上。评价模块独立性的主要标准有两个:一是模块之间的耦合,它表明两个模块之间互相独立的程度;二是模块内部之间的关系是否紧密,称为内聚。一般来说,要求模块之间的耦合尽可能地弱,即模块尽可能独立,而要求模块的内聚程度尽量地高。综上所述,选项 B)的答案正确。 ( 20) B)【解析】利 用信息隐蔽,可以确保每一个模块的独立性。 ( 21) C)【解析】模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照
25、耦合程度从强到弱分别是:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合和非直接耦合,没有异构耦合这种方式。 ( 22) C)【解析】总体设计过程通常由两个主要阶段组成:系统设计,确定系统的具体实现方案;结构设计,确定软件结构。为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。分析员结合算法描述仔细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的 功能适当地分解成一系列比较简单的功能。 ( 23) C)【解析】程序流程图是人们对解决问题的方法、思路或算法的一种图形方式的描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容;流程线表示操作的先后次
26、序。带箭头的线段在数据流程图中表示数据流;带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。 ( 24) B)【解析】 N-S图是由 Nassi 和 Shneiderman 提出的一种符合程序化结构设计原则的图形描述工具。 它的提出是为了改进流程图在描述程序逻辑时的不灵活性。 ( 25) D)【解析】数据流图 DFD是结构化分析方法最主要的一种图形工具,不属于过程设计工具。 ( 26) C)【解析】软件测试是为了发现错误而执行程序的过程,且为了达到好的测试效果,应该由独立的第三方来构造测试,程序员应尽量避免检
27、查自己的程序。 ( 27) D)【解析】使用人工或自动手段来运行或测定某个系统的过程,目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。软件测试是为了发现错误而执行程序的过程。测试以查找错误为目的,而不是为了演示软件 的正确功能。 ( 28) D)【解析】软件测试过程中,辅助资源包括测试用例(测试数据)、测试计划、出错统计和最终分析报告等。 ( 29) A)【解析】确认测试的任务是验证软件的功能和性能,以及其他特性是否满足需求规格说明中确定的各种需求;集成测试的主要目的是发现与接口有关的错误。 ( 30) D)【解析】因为测试的目的在于发现错误,从心理学角度讲,由程序的编写
28、者自己进行测试是不合适的,为了达到最好的测试效果,应该由独立的第三方进行测试工作,所以选项 A)错误;程序调试,修改一个错误的同时可能引入了新的错误,解决的办法是在 修改了错误之后,必须进行回归测试,所以选项 B)错误;所谓软件维护,就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程,可见选项 C)也是错误的。 ( 31) B)【解析】本题考查软件工程调试。调试与测试是两个不同的过程,有着根本的区别:调试是一个随机的、不可重复的过程,它用于隔离和确认问题发生的原因,然后修改软件来纠正问题;测试是一个有计划的、可以重复的过程,它的目的是为了发现软件中的问题。因此,软件调试的目
29、的是为了改正软件中的错误。本题的正确答案是选项 B)。 考点 4答案:数据库设计基础 ( 1) C)【解析】数据库( DataBase, DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,可以被各个应用程序所共享。数据库中的数据具有“集成”、“共享”的特点。 ( 2) B)【解析】由于数据的集成性使得数据可被多个应用程序共享,特别是在网络发达的今天,数据库与网络的结合扩大了数据库的应用范围,所以数据库技术的根本问题是解决数据的共享问题。 ( 3) B)【解析】数据库管理系统( Database Management System, DBMS)是数据库的机构
30、,它是一种系统软件,负 责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,数据库管理系统是数据库系统的核心。 ( 4) C)【解析】数据库管理系统 DBMS是数据库系统中实现各种数据管理功能的核心软件。它负责数据库中所有数据的存储、检索、修改以及安全保护等,数据库内的所有活动都是在其控制下进行的。所以,DBMS包含数据库 DB。操作系统、数据库管理系统与应用程序在一定的硬件支持下就构成了数据库系统。所以, DBS包含 DBMS,也就包含 DB。综上所述,选项 C)正确。 ( 5) D)【解析】文件系统所管理的数据文件基本上是分散的、相 互独立的,因此相对于数据库系统,文件系统数
31、据处理存在 3个缺点,即数据冗余大、数据的不一致性、程序与数据的相互依赖(简称为数据依赖)。 ( 6) C)【解析】数据库技术的主要目的是有效地管理和存取数据资源,包括提供数据的共享性,使多个用户能够同时访问数据库中的数据;减少数据的冗余度,以提高数据的一致性和完整性;提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价。 ( 7) A)【解析】数据库系统的数据具有高共享性和低冗余性,但不能完全避免数据冗余;数据的一致性是指在系统中同一数据的不同出现应保持相同的值。 ( 8) D)【解析】数据具有两方面的独立性:一是物理独立性,即由于数据的存储结构与逻辑结构之间由系统提供映象,使得当数
32、据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改;二是逻辑独立性,即由于数据的局部逻辑结构(它是总体逻辑结构的一个子集,由具体的应用程序所确定,并且根据具体的需要可以作一定的修改)与总体逻辑结构之间也由系统提供映象,使得当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序也可以不必修改。综上所述,本题的正确答案是 D)。 ( 9) A)【解析】 选项 A)正确,外模式是用户的数据视图,也就是用户所见到的数据模式;选项 B)不正确,全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;选项 C)不正确,物理存储数据视图的描
33、述称为内模式,即数据库在物理存储方面的描述;选项 D)不正确,存储模式即为内模式。 ( 10) C)【解析】数据模型所描述的内容有 3个部分,它们是数据结构、数据操作和数据约束。其中,数据模型中的数据结构主要描述数据的类型、内容、性质,以及数据库的联系等;数据操作主要是描述在相应数据结构上的操作类型与操作方式。本题答案为 C)。 ( 11) A)【解析】两个实体之间的联系实际上是实体集间的函数关系,这种函数关系可以有下面几种,即一对一的联系、一对多(或多对一)的联系和多对多的联系;概念模型便于向各种模型转换。由于概念模型不依赖于具体的数据库管理系统,因此,容易向关系模型、网状模型和层次模型等各
34、种模型转换。 ( 12) A)【解析】属性 (Attribute):实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。 ( 13) D)【解析】两个实体间的联系可以归纳为 3种类型: 一对一联系:一对一的联系表现为主表中的每一条记录只与相关表中的一 条记录相关联。 一对多联系或多对一联系:一对多的联系表现为主表中的每一条记录与相关表中的多条记录相关联。 多对多联系:多对多的联系表现为一个表中的多个记录在相关表中同样有多个记录与其匹配。 一个教师可讲授多门课程,一门课程可由多个教师讲授,所以实体教师和课程间的联系是多对多的联系。 ( 14) B)【解析】实体之间的联系类型主要有一对一
35、、一对多、多对多,按题意可知部门与职员之间的联系类型是一对多 (1:m),所以本题应选 B)。 ( 15) A)【解析】在 E-R图中,用矩形框表示实体,框内标明实体名;用椭圆框表示实体的 属性,框内标明属性名;用菱形框表示实体间的联系,框内标明联系名。 ( 16) B)【解析】层次模型是最早发展出来的数据库模型。它的基本结构是树形结构,这种结构方式在现实世界中很普遍,如家族结构、行政组织机构,它们自顶向下、层次分明。 ( 17) C)【解析】关系模型较之格式化模型(网状模型和层次模型)有以下几方面的优点,即数据结构比较简单、具有很高的数据独立性、可以直接处理多对多的联系,以及有坚实的理论基础
36、。 ( 18) C)【解析】在关系模型数据库中,基本结构是二维表,这种二维表称为关系。关系的列称为属性,一个具有 N个属性的关系称为 N元关系。 ( 19) A)【解析】关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为一个属性,对应表中的一个字段;在二维表中能唯一标识元组的最小属性集称为该表的键或码。 ( 20) A)【解析】在关系数据库中,一个表就是一个关系,关系数据库管理系统管理的关系就是多个二维表。 ( 21) D)【解析】数据模型用来表示实体间的联系,但不同的数据库管理系统支持不同的数据模型。常用的数据模型有层次模型、网状模型和关系模型,层次模型不能表示多对多联系,网状模型
37、和关系模型都能表示任意一种联系。 ( 22) C)【解析】软件开发模型包括瀑布模型、快速原型法模型和螺旋模型。 ( 23) A)【解析】关系运算中的选择运算是从关系中找出满足给定条件的元组的操作;投影运算是从关系中选择若干个属性组成新的关系的操作;连接运算是关系的横向结合。 ( 24) B)【解析】两个相同结构关系的“并”是由属于这两个关系的元组组成的集合。 ( 25) C)【解析】选择运算是一个一元运算,关系 R通过选择运算(并由该运算给出所选择的逻辑条件)后仍为一个关系。这个关系是由 R中那些满足逻辑条件的元组所组成。如果关系的逻辑条件为 f,则 R满足 f的选择运算可 以写成: f(R)
38、。本题答案为 C)。 ( 26) C)【解析】关系运算分为: 传统的关系运算(集合运算) 进行并、差、交集合运算的两个关系必须具有相同的关系模式,即相同结构。在 Access中没有提供传统的集合运算,可以通过其他操作或编写程序来实现。 专门的关系运算 选择:从关系中找出满足给定条件的元组的操作称为选择。 投影:从关系模式中指定若干个属性组成新的关系称为投影。 连接:连接是关系的横向结合。连接运算将两个关系模式拼接成一个更宽的关系模式,生成的新关系中包含满足连接条件的元组。 ( 27) A)【解 析】本题考查集合运算。在关系数据库理论中,两个关系的并是由属于这两个关系的元组组成的集合,故选项 A
39、)正确。两个关系的交是由既属于一个关系又属于另一个关系的元素组成的集合,两个集合的差运算是由从一个集合中去掉另一个集合中有的元素组成。两个集合的交运算是由既属于前一个集合又属于后一个集合的元素组成。 ( 28) B)【解析】本题考查数据库的关系运算。两个关系的并运算是指将第一个关系的元组加到第二个关系中,生成新的关系。因此,并运算不改变关系表中的属性个数,也不能减少元组个数。两个关系的交运算是包含同时出现在第一个和 第二个关系中的元组的新关系。因此,交运算不改变关系表中的属性个数,但能减少元组个数。投影是一元关系操作。投影操作选取关系的某些属性,这个操作是对一个关系进行垂直分割,消去某些属性,
40、并重新安排属性的顺序,再删除重复的元组。因此,投影运算既可以减少关系表中的属性个数,也可以减少元组个数。两个关系的笛卡儿积会增加属性个数。 ( 29) B)【解析】关系数据库管理系统能实现的专门关系运算,包括选择运算、投影运算、连接运算。 ( 30) A)【解析】 R-S表示属于 R但不属于 S, R-(R-S)表示既属于 R又属于 S,即相当于 R S。 ( 31) D)【解析】关系 R与 S经交运算后所得到的关系 T是由那些既在 R内又在 S内的有序元组所组成。 ( 32) C)【解析】对于两个关系的合并操作可以用笛卡儿积表示。设有 n元关系 R和 m元关系 S,它们分别有 p和 q个元组
41、,则 R与 S的笛卡儿积记为 R S,它是一个 m+n元关系,元组个数是 p q,由题意可得,关系T是由关系 R与关系 S进行笛卡儿积运算得到的。 ( 33) D)【解析】数据库的生命周期可以分为两个阶段:一是数据库设计阶段;二是数据库实现阶段。数据库的设计阶段又分为 4个子阶段:即需求分析、概念设计、逻辑设计和物 理设计。因此,本题的正确答案是 D)。 ( 34) A)【解析】本题考查数据库系统的基本概念和知识。数据的逻辑结构,是数据间关系的描述,它只抽象地反映数据元素之间的逻辑关系,而不管其在计算机中的存储方式。数据的存储结构,又叫物理结构,是逻辑结构在计算机存储器里的实现。这两者之间没有
42、必然的联系。因此,选项 A)的说法是错误的。 数据库可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。因此,数据库具有为各种用户所共享的特点。不同的用户可以使用同一个数据库,可以取出它们所需要的子集,而且容许子集任意重叠 。数据库的根本目标是要解决数据的共享问题。因此,选项 B)的说法正确。 ( 35) C)【解析】 E-R图向关系模型的转换原则: 一个实体型转换为一个关系模型,实体的属性就是关系的属性,实体的键就是关系的键; 一个联系转换为一个关系模式,与该联系相连的每个实体型的键以及联系的属性都转换为关系的属性。这个关系的键分为以下三种不同的情况: 若联系为 1:1,则相
43、连的每个实体型的键均是该关系模式的候选键。 若联系为 1:n,则联系对应的关系模式的键取 n端实体型的键。 若联系为 m:n,则联系对应的关系模式的键为参加联系 的诸实体型的键的组合。 考点 5答案:程序设计基本概念 ( 1) B)【解析】本题考核的知识点是 C程序的基本概念。 C语言一种高级语言, C语言源程序经过 C语言编译程序编译之后,生成一个后缀为 .obj的二进制文件(称为目标文件),最后还要由称为“连接程序”(Link)的软件,把此 .obj文件与 C语言提供的各种库函数连接在一起,生成一个后缀 .exe的可执行文件。显然 C语言不能立即执行,故选项 A)错误。根据以上定义,选项
44、C)和选项 D)错误,所以, 4个选项中选项 B)符合题意。 ( 2) D)【解析】本题考查的是 C程序的基本概念 。 C语言是一种高级语言, C语言源程序经过 C语言编译程序编译之后,生成一个后缀为 .obj的二进制文件(称为目标程序),最后还要由称为“连接程序”( Link)的软件,把此 .obj文件与 C语言提供的各种库函数连接在一起,生成一个后缀 .exe的可执行程序。显然 C语言源程序不能立即执行,故选项 A)错误。根据以上定义,选项 B)和选项 C)错误。故本题应该选择 D)。 ( 3) D)【解析】一个 C 语言的源程序(后缀名为 . c)在经过编译器编译后,先生成一个汇编语言程
45、序,然后由编译程序再将汇编语言程序翻译成机器指令程序,即目标程 序(后缀为 .obj),目标程序不可以直接运行,它要和库函数或其他目标程序连接成可执行文件(后缀名为 . exe)后方可运行。 ( 4) B)【解析】本题考查的是算法的特性。一个算法应当具有以下 5个特性:有穷性;确定性;可行性;有零个或多个输入;有一个或多个输出。简洁性不属于这 5个特性,所以本题应该选择 B)。 ( 5) B)【解析】本题考核的知识点是算法的性质。算法是为解决某个特定问题而采取的确定的且有限的步骤,一个算法应当具有以下 5个基本特性: 有穷性,就是指一个算法应当包含有限个操作步骤。 确定性,就是说算法中 每一条
46、指令必须有确切的含义,不能有二义性,对于相同的输入必能得出相同的执行结果。 有零个或多个输入。 可行性,就是说算法中指定的操作,都可以通过已经实现的基本运算执行有限次实现,有一个或多个输出。由此可知选项 B)不正确,所以, 4个选项中选项 B)符合题意。 ( 6) C)【解析】一个算法应当具有 5个特性,即有穷性、确定性、可行性、有零个或多个输入以及有一个或多个输出。算法的确定性是指:算法中每一条指令必须有确切的含义,读者理解时不会产生二义性。并且在任何条件下,算法只有唯一的一条执行路径,即对于相同的输入只 能得出相同的执行结果。 ( 7) C)【解析】算法具有的 5个特性是:有穷性;确定性;
47、可行性;有 0个或多个输入;有一个或多个输出。所以说,用 C 程序实现的算法可以没有输入但必须要有输出。 ( 8) A)【解析】本题考核的知识点是 C程序的 3种基本结构。 C程序由 3种基本的结构组成,分别为顺序结构、选择结构和循环结构,这 3种结构可以组成任何复杂的 C程序,即可以完成任何复杂的任务,故选项 B)、选项 C)和选项 D)都不正确。所以, 4个选项中选项 A)符合题意。 考点 6答案: C程序设计的初步知识 ( 1) D)【解析】在 C 语言所有的运 算符中,逗号运算符的优先级最低。 C 语言中区分大小写,所以APH 和 aph 是两个不同的变量。赋值表达式 a=b表示将 b
48、的值赋给 a,而 b 本身的值保持不变,通过键盘可以向计算机输入允许的任何类型的数据。选项 D)中当从键盘输入数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数值和整型数值等。 ( 2) C)【解析】本题主要考查的知识点是运算符的优先级和结合性。解本题的关键在于表达式 z = x+、y+、 +y的计算,其中有三种运算符“ =”、“ ,”和“ +”,它们的优先级从高到低依次是“ +”、 “ =”和“ ,”,所以原表达式就相当于 (z = (x+), (y+), (+y)。自增运算符“ +”是单目运算符,即它只对一个运算分量起作用,根据其在运算分量的前面或后面分为前缀和后缀两种
49、形式。两种形式的作用效果是一样的,都是使运算分量的值加 1,但是它们的表达式的值不一样,前缀形式表达式的值为运算分量加 1之后的值,后缀形式表达式的值为运算分量加 1之前的值。 ( 3) C)【解析】求余运算符“ %”两边的运算对象必须是整型,而选项 B)和 D)中“ %”两边的运算对象有浮点数据,所以选项 B)和 D)是错误的表达式。在 选项 A)中赋值表达式左侧要为“左值”,也是错误的。选项 C)是一个逗号表达式,所以正确答案为 C)。 ( 4) D)【解析】考查 printf 函数的相关知识。输出格式控制符 %c 表示将变量以字符的形式输出 ;输出格式控制符 %d 表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为 a, 97;第二个输出语句输出的结果为 k=12。所以选项 D)为正确答案。 ( 5