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