给定关系模式 R<U,F>;其中 U 为属性集,F 是 U 上的一组函数依赖,那么Armstroog 公理系统的增广律是指( )。
从已知的一些函数依赖,可以推导出另外一些函数依赖,这就需要一系列推理规则。函数依赖的推理规则最早出现在1974年W.W.Armstrong的论文里,这些规则常被称作“Armstrong公理”设U是关系模式R的属性集,F是R上成立的只涉及U中属性的函数依赖集。函数依赖的推理规则有以下三条:自反律:若属性集Y包含于属性集X,属性集X包含于U,则X→Y在R上成立。(此处X→Y是平凡函数依赖)增广律:若X→Y在R上成立,且属性集Z包含于属性集U,则XZ→YZ在R上成立。传递律:若X→Y和Y→Z在R上成立,则X→Z在R上成立。其他的所有函数依赖的推理规则可以使用这三条规则推导出。
DMA (直接存储器访问〉工作方式是在( )之间建立起直接的数据通路。
直接主存存取(Direct Memory Access,DMA)是指数据在主存与I/O设备间的直接成块传送,即在主存与I/O设备间传送数据块的过程中,不需要CPU作任何干涉,只需在过程开始启动(即向设备发出“传送一块数据”的命令)与过程结束(CPU通过轮询或中断得知过程是否结束和下次操作是否准备就绪)时由CPU进行处理,实际操作由DMA硬件直接完成,CPU在传送过程中可做其它事情。
软件开发模型大体上可以分为三种类型:第一种是以完全确定软件需求为前提的 ( );第二种是在软件开发初始阶段只能提供基本需求时采用的(请作答此空);第三种是以形式化为基础的变换模型。
软件开发模型大体上可以分为三种类型。第一种是以软件需求完全确定为前提的瀑布模型;第二种是在软件开发初始阶段只能提供基本需求时采用的迭代式或渐进式模型,例如喷泉模型、螺旋模型、统一开发过程和敏捷方法等;第三种是以形式化为基础的变换模型。
如下UML类图表示的是( )设计模式。以下关于该设计模式的叙述中,错误是(请作答此空)。
本题考查面向对象方法中的设计模式知识。
题中的类图是抽象工厂设计模式,该设计模式的意图是提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。使用抽象工厂设计模式的常见情形是:一个系统要独立于其产品的创建、组合和表示时;一个系统要由多个产品系列中的一个来配置时;当需要强调一系列相关的产品对象的设计以便进行联合使用时;当提供一个产品类库,而只想显示它们的接口不是实现时。对于希望使用已经存在的类,但其接口不符合需求的情形,应当考虑适配器设计模式。
System analysis is traditionally done top-down using structured analysis based on (请作答此空). Object-oriented analysis focuses on creation of models. The three types of theanalysis model are( ). There are two substages of object-oriented analysis.( )focuses on real-world things whose semantics the application captures. The object constructedin the requirement analysis shows the( )of the real-world system and organizes it intoworkable pieces.( )addresses the computer aspects of the application that are visible tousers. The objects are those which can be expected to vary from time to time quite rapidly.
传统的系统分析以功能分解为基础,利用结构化分析自顶向下完成。面向对象分析关注于模型的创建。该分析模型有三种类型:类模型、交互模型和状态模型。面向对象分析有两个子阶段。领域分析侧重于现实世界中那些语义被应用程序获取的事物。在需求分析中所构造的对象说明了现实世界系统的静态结构并将其组织为可用的片段。应用分析处理应用系统中用户可见的计算机问题。所分析的对象可能会被预计时不时地发生较快的变化。
某公司销售数据库的商品、仓库关系模式及函数依赖集F1、F2如下:
商品(商品号,商品名称,生产商,单价),F1={商品号→商品名称,商品号→生产商,商品号→单价)},商品关系的主键是 ( )。仓库(仓库号,地址,电话,商品号,库存量),F2={仓库号→(地址,电话),(仓库号,商品号)→库存量}。仓库关系的主键是( ),外键是( )。
仓库关系模式( ),为了解决这一问题,需要将仓库关系分解为(请作答此空)。
本题正确的答案D。为了解决仓库关系模式存在的问题需要进行模式分解,其中,选项A分解存在的问题是仓库2不属于第三范式,因为存在非主属性对码的部分函数依赖,即仓库号→电话。选项B分解存在的问题是分解有损连接,即分解的新关系模式仓库1和仓库2无法恢复到原关系。选项C分解存在的问题与A类同,分析略。
选项D分解是即保持函数依赖,又无损连接,分解的结果如下:
某公司销售数据库的商品、仓库关系模式及函数依赖集F1、F2如下:
商品(商品号,商品名称,生产商,单价),F1={商品号→商品名称,商品号→生产商,商品号→单价)},商品关系的主键是 ( )。仓库(仓库号,地址,电话,商品号,库存量),F2={仓库号→(地址,电话),(仓库号,商品号)→库存量}。仓库关系的主键是(请作答此空),外键是( )。
仓库关系模式( ),为了解决这一问题,需要将仓库关系分解为( )。
本题考查应试者对关系模式中主键、外键和模式分解及相关知识的掌握程度。
从商品关系的函数依赖集F1可以导出商品号决定商品关系的全属性,所以商品号是商品关系的主键。
从仓库关系的函数依赖集F2可以导出(仓库号,商品号)决定仓库关系的全属性,所以仓库关系的主键是(仓库号,商品号)。又由于商品号是商品关系的主键,故商品号是仓库关系的外键。
仓库关系存在冗余、插入异常和删除异常,以及修改操作的不一致。例如,仓库号为"12"的商品有3种,其地址就要重复3次,如下表所示,故仓库关系存在冗余
某公司销售数据库的商品、仓库关系模式及函数依赖集F1、F2如下:
商品(商品号,商品名称,生产商,单价),F1={商品号→商品名称,商品号→生产商,商品号→单价)},商品关系的主键是 (请作答此空)。仓库(仓库号,地址,电话,商品号,库存量),F2={仓库号→(地址,电话),(仓库号,商品号)→库存量}。仓库关系的主键是 ( ),外键是( )。
仓库关系模式( ),为了解决这一问题,需要将仓库关系分解为( )。
本题考查应试者对关系模式中主键、外键和模式分解及相关知识的掌握程度。
从商品关系的函数依赖集F1可以导出商品号决定商品关系的全属性,所以商品号是商品关系的主键。
从仓库关系的函数依赖集F2可以导出(仓库号,商品号)决定仓库关系的全属性,所以仓库关系的主键是(仓库号,商品号)。又由于商品号是商品关系的主键,故商品号是仓库关系的外键。
仓库关系存在冗余、插入异常和删除异常,以及修改操作的不一致。例如,仓库号为"12"的商品有3种,其地址就要重复3次,如下表所示,故仓库关系存在冗余
C++ fully supports( )programming, including the four properties: encapsulation, data hiding, inheritance, and polymorphism.
C++完全支持面向对象程序设计,包括以下4种属性:封装,数据隐藏,继承,多态。
( )不属于电子邮件协议。
本题考查电子邮件协议。POP3(Post Office Protocol 3)协议是适用于C/S结构的脱机模型的电子邮件协议。SMTP(Simple Mail Transfer Protocol)协议是简单邮件传输协议。IMAP(Internet Message Access Protocol)是由美国华盛顿大学所研发的一种邮件获取协议。MPLS(Multiprotocol Label Switch)即多协议标记交换,是一种标记(label)机制的包交换技术。
使用UML进行关系数据库的( )时,需要设计出表达持久数据的实体类及其联系,并将它们映射为数据库表和视图等。
基于UML的关系数据库设计分为4个阶段:
①业务用例设计是进行数据库的需求分析,使用用例图等建立业务模型
②逻辑数据模型设计是确定应用系统所需的持久数据,设计出关系数据库中表达持久数据的实体类及其联系,并将它们映射为数据库表和视图等
③物理数据模型设计使用组件图、配置图等设计数据库的物理模型
④物理实现设计根据物理数据模型建立具体数据库环境下的数据库表、视图等
数据库的产品很多,尽管它们支持的数据模型不同,使用不同的数据库语言,而且数据 的在储结构也各不相同,但体系统构基本上都具有相同的特征,采用“三级模式和两级映像”,如下图所示,图中①,②,③分别代表数据库系统中( ),图中④, ⑤,⑥分别代表数据库系统中(请作答此空)。
数据库通常采用三级模式结构,其中,视图对应外模式、基本表对应模式、存储文件对应内模式。数据的独立性是由DBMS的二级映像功能来保证的。数据的独立性包括数据的物理独立性和数据的逻辑独立性。数据的物理独立性是指当数据库的内模式发生改变时,数据的逻辑结构不变。为了保证应用程序能够正确执行,需要通过修改概念模式与内模式之间的映像。数据的逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构发生变化后,用户程序也可以不修改。但是,为了保证应用程序能够正确执行,需要修改外模式与概念模式之间的映像。
某公司开发一个文档编辑器,该编辑器允许在文档中直接嵌入图形对象,但开销很大。用户在系统设计之初提出编辑器在打开文档时必须十分迅速,可以暂时不显示当前页面以外的图形。针对这种需求,公司可以采用()避免同时创建这些图形对象。
根据题干描述,该编辑器需要在文档中嵌入显示开销很大的图形对象,为了能够提高系统效率,需要避免同时创建这些图像。针对这些要求,对比候选项,可以发现代理模式可以解决直接访问对象时带来的问题,例如,要访问的对象在远程的机器上;对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问等。因此代理模式是最为合适的设计模式。
机器字长为n位的二进制数可以用补码来表示( )个不同的有符号定点小数。
本题考查计算机系统基础常识。二进制数据在计算机系统中的表示方法是最基本的专业知识。补码本身是带符号位的,补码表示的数字中0是唯一的,不像原码有+0和-0之分,也就意味着位n二进制编码可以表示2n个不同的数。
数据库系统通常采用三级模式结构:外模式、模式和内模式。这三级模式分别对应数据库的()。
本题考查数据库的基本概念。数据库通常采用三级模式结构,其中,视图对应外模式、基本表对应模式、存储文件对应内模式。
确定系统边界和关系规范化分别在数据库设计的( )阶段进行。
正确选项为A。需求分析阶段的任务是:对现实世界要处理的对象(组织、部门、企业等)进行详细调查,在了解现行系统的概况,确定新系统功能的过程中,确定系统边界、收集支持系统目标的基础数据及其处理方法。逻辑设计阶段的任务之一是对关系模式进一步的规范化处理。因为生成的初始关系模式并不能完全符合要求,会有数据冗余、更新异常存在,这就需要根据规范化理论对关系模式进行分解,以消除冗余和更新异常。不过有时根据处理要求,可能还需要增加部分冗余以满足处理要求。逻辑设计阶段的任务就需要作部分关系模式的处理,分解、合并或增加冗余属性,提高存储效率和处理效率。
给定关系R(A,B,C,D,E)与S(A,B,C,F,G),那么与表达式
等价的SQL语句如下:select (请作答此空) from R, S where ( )。
本题考查关系代数运算与SQL语言的对应关系。注意本题中R与S是做自然联接操作,操作时会将R与S中相同字段名做等值联接,并将结果集去重复。所以R与S自然联接后的结果包括以下属性:R.A,R.B,R.C,D,E,F,G。关系代数选择条件为“1<6”,即R.A<F。关系代数投影操作条件为“1,2,4,6,7”,对应的属性为:R.A,R.B,D,F,G。
在数据库逻辑设计阶段,若实体中存在多值属性,那么将E-R图转换为关系模式时,( ),得到的关系模式属于4NF。
本题考查对数据库应用系统设计中逻辑结构设计的掌握。在数据库设计中,将E—R图转换为关系模式是逻辑设计的主要内容。转换中将实体转换为关系模式,对实体中的派生属性不予考虑,组合属性只取各组合分量,若不含多值属性,通常一个实体对应一个关系模式。对实体中的多值属性,取实体的码和多值属性构成新增的关系模式,且该新增关系模式中,实体的码多值决定多值属性,属于平凡的多值依赖,关系属于4NF。
某图的邻接矩阵如下,该图为(请作答此空);若采用邻接表表示该图,则邻接表中用来表示边(或弧)的表结点总数为( )个。
本题考查数据结构基础知识。
图的邻接矩阵是一个方阵,所有行标和列标都与图中的顶点一一对应,这样对于矩阵中的一个元素 [i,j],其值为1 表示 i、j 对应的顶点间有边(或弧),其值为 0则表示 i、j对应的顶点间不存在边(或弧)。显然,图中总共有9条边。
在无向图中,边 (i,j)与(j,i)是指同一条边,其取值是相同的;在有向图中, <i,j>与<j,i>是两条不同的弧。而在本题中,矩阵中的(i,j)与(j,i)是不同的,因此这个是有向图。
用某排序方法对一个关键码序列进行递增排序时,对于其中关键码相同的元素,若该方法可保证在排序前后这些元素的相对位置不变,则称该排序方法是稳定的。以下关于排序方法稳定性的叙述中,正确的是( )。
本题考查排序算法。
主要的排序时间复杂度及其稳定性如下:
非空二叉排序树的定义是:若根结点具有左子树,则左子树中所有结点的关键码均小于根结点的关键码:若根结点具有右子树,则右子树中所有结点的关键码均大于根结点的关键码;左、右子树也是二叉排序树。由此可知,在一个二叉排序树中()。
本题考查二叉排序树基本概念。 某二叉排序树如下图所示。
显然,在二叉排序树中,同层次的就结点从左至右呈递增排列。
当有7个结点的二叉树采用二叉链表链存储时,空指针的个数为(请作答此空),采用三叉链表存储空指针的个数为( )。
结果如图所示,空指针个数分别为结点数加1,与结点数加2。
排序算法的稳定性是指()。
排序算法的稳定性是指排序后关键字相同的元素保持原顺序中的相对位置不变。
如下所示的UML图中,(I)是(请作答此空),(Ⅱ)是( ),(Ⅲ)是( )。
本题考查统一建模语言(UML)的基本知识。
用例图(use case diagram)展现了一组用例、参与者(Actor)以及它们之间的关系。用例图通常包括用例、参与者,以及用例之间的扩展关系(<<extend>>)和包含关系(<<include>>),参与者和用例之间的关联关系,用例与用例以及参与者与参与者之间的泛化关系。如下图所示。
用例图用于对系统的静态用例视图进行建模,主要支持系统的行为,即该系统在它的周边环境的语境中所提供的外部可见服务。
考虑下述背包问题的实例。有5件物品,背包容量为100,每件物品的价值和重量如下表所示,并已经按照物品的单位重量价值从大到小徘好序,根据物品单位重量价值大优先的策略装入背包中,则采用了(请作答此空)设计策略。考虑0/1背包问题(每件物品或者全部放入或者全部不装入背包)和部分背包问题(物品可以部分装入背包),求解该实例,得到的最大价值分别为( )。
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。0/1背包考虑该问题时,只能放入1、2、3号物品,故总价值为430,采用部分背包问题可以将物品拆分,故放1、2、3号物品后还可以放入部分4号物品,故总容量为630。
在平衡二叉排序树上进行查找时,其时间复杂度为 ( ) 。
这是二叉树的基本查找问题,因为是平衡二叉树,其时间复杂度即为树的高,所以为log2n。
某一维数组中依次存放了数据元素15,23,38,47,55,62,88,95,102,123,采用折半(二分)法查找元素95时,依次与()进行了比较。
本题主要考查折半(二分)法查找算法。这里首先就需要我们能清楚理解该查找算法。
在本题中,给出数据序列为15,23,38,47,55,62,88,95,102,123,其中有10个元素,那么首先进行比较的应该是第5个元素,即55,由于95大于55,那么应该在后半部分进行查找,这是应该与第8个元素进行比较,刚好是95,查找成功,然后结束。因此比较的元素有55和95。
某图的邻接矩阵如下,该图为( );若采用邻接表表示该图,则邻接表中用来表示边(或弧)的表结点总数为(请作答此空)个。
本题考查数据结构基础知识。
图的邻接矩阵是一个方阵,所有行标和列标都与图中的顶点一一对应,这样对于矩阵中的一个元素 [i,j],其值为1 表示 i、j 对应的顶点间有边(或弧),其值为 0则表示 i、j对应的顶点间不存在边(或弧)。显然,图中总共有9条边。
在无向图中,边 (i,j)与(j,i)是指同一条边,其取值是相同的;在有向图中, <i,j>与<j,i>是两条不同的弧。而在本题中,矩阵中的(i,j)与(j,i)是不同的,因此这个是有向图。
对于初始为空的栈S,入栈序列为a、b、c、d,且每个元素进栈、出栈各1次。若出栈的第一元素为d,则合法的出栈序列为( )。
题干要求d第一个出栈,所以入栈的次序为a,b,c,d,栈是先进后出的,所以出栈序列为d,c,b,a。
从未排序的序列中依次取出一个元素与已排序序列中的元素进行比较,然后将其放在已排序序列的合适位置上,该排序方法为()。
一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法--插入排序法。
对于字符串"software",其长度为2的子串共有()个。
对于字符串"software",其长度为2的子串有:"so","of","ft","tw","wa","ar","re",共7个。
以下应用中,必须采用栈结构的是( )。
栈结构的特点是后进先出,一个整数序列的逆转可以通过使交换第一个与最后一个元素,第二个与倒数第二个元素等来实现。在链表节点的申请和释放中,没有先申请后释放的操作要求,动态内存空间的使用也没有这个要求。在计算机系统中需要根据任务处理的需要装入和卸载可执行程序,没有后进先出的要求。递归函数调用和返回必须通过栈结构来控制。
以下应用中,必须采用队列结构的是( )。
栈的应用:表达式求值、括号匹配、递归。队列的应用:打印队列。
当有7个结点的二叉树采用二叉链表链存储时,空指针的个数为( ),采用三叉链表存储空指针的个数为(请作答此空)。
结果如图所示,空指针个数分别为结点数加1,与结点数加2。
采用插入排序算法对n个整数排序,其基本思想是:在插入第i个整数时,前i-1个整数已经排好序,将第i个整数依次和第i-1,i-2,…个整数进行比较,找到应该插入的位置。现采用插入排序算法对6个整数{5,2,4,6,1,3}进行从小到大排序,则需要进行( )次整数之间的比较。对于该排序算法,输入数据具有(请作答此空)特点时,对整数进行从小到大排序,所需的比较次数最多。
采用插入排序算法对6个整数{5,2,4,6,1,3}进行从小到大排序的过程如表所示。
综上,元素间共比较12次。从上表中的第4步可看出,当待插入的元素比已排序部分的所有元素都要小时,需要比较和移动的元素最多,因此当输入数据序列正好从大到小排列,而需要将其从小到大排序时,元素间的比较次数最多。
设元素a、b、c、d依次进入一个初始为空的栈,则不可能通过合法的栈操作序列得到 。
选项A:a进栈、a出栈、b进栈、b出栈、c进栈、c出栈、d进栈、d出栈选项B:a进栈、b进栈、b出栈、a出栈、c进栈、c出栈、d进栈、d出栈选项C:选项C无法实现选项D:a进栈、b进栈、c进栈、d进栈、d出栈、c出栈、b出栈、a出栈
为实现快速排序算法,待排序列适合采用( )。
这道题当成一个常识题。大多数内部排序算法都只适用于顺序存储。
设有字符串S='software',其长度为3的子串数目为( )。
共有“sof”、“oft”、“ftw”、“twa”、“war”、“are”,6个
绑定是一个把过程调用和响应调用所需要执行的代码加以结合的过程。在一般的程序设计语言中,绑定在编译时进行,叫做( )。
本题考查面向对象中的基本概念。
在收到消息时,对象要予以响应。不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做多态(polymorphism)。在使用多态的时候,用户可以发送一个通用的消息,而实现的细节则由接收对象自行决定。这样,同一消息就可以调用不同的方法。绑定是一个把过程调用和响应调用所需要执行的代码加以结合的过程。在一般的程序设计语言中,绑定是在编译时进行的,叫做静态绑定。动态绑定则是在运行时进行的,因此,一个给定的过程调用和代码的结合直到调用发生时才进行。
动态绑定是和类的继承以及多态相联系的。在继承关系中,子类是父类的一个特例,所以,父类对象可以出现的地方,子类对象也可以出现。因此在运行过程中,当一个对象发送消息请求服务时,要根据接收对象的具体情况将请求的操作与实现的方法进行连接,即动态绑定。
桥接模式将抽象部分与实现部分分离,使得它们两部分可以独立地变化。
策略模式定义一系列的算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化。
抽象工厂提供了一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。
观察者模式定义对象间的一种一对多依赖关系,使得每当一个对象改变状态,则其相关依赖对象皆得到通知并被自动更新。
从本题给出的图我们可以判断是观察者模式,其中被观察对象(Subject),具体被观察对象(ConcreteSubject),观察者(Observer)及具体观察者(ConcreteObserver)。在本设计模式中,Observer需要维护至少一个Subject对象,一个Subject对象需要维护多个Observer对象,另外Subject需要通知Observer对象其自身的状态变化。
在UML中,( )由一组对象或参与者以及它们之间可能发送的消息构成。强调消息的时间次序的交互图。
组合结构图用于画出结构化类的内部内容。顺序图由一组对象或参与者以及它们之间可能发送的消息构成。强调消息的时间次序的交互图。通信图强调收发消息的对象或参与者的结构组织。强调的是对象之间的组织结构(关系)。
已知一个类可以处理以英制标准(英寸、英里等)表示的数据,现在需要处理一公制单位表示的数据,则可以使用( )模式来解决该问题。
Adapter的设计意图是将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
Adapter模式适用于以下情况:
想使用一个已经存在的类,而它的接口不符合要求。想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
仅适用于对象Adapter想使用一个已经存在的子类,但是不可能对每一个都进行子类化以匹配他们的接口。对象适配器可以适配它的父类接口。
绑定是一个把过程调用和响应调用所需要执行的代码加以结合的过程。在一般的程序设计语言中,绑定在编译时进行,叫做( );而(请作答此空)则在运行时进行,即一个给定的过程调用和执行代码的结合直到调用发生时才进行。
在收到消息时,对象要予以响应。不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做多态(polymorphism)。在使用多态的时候,用户可以发送一个通用的消息,而实现的细节则由接收对象自行决定。这样,同一消息就可以调用不同的方法。绑定是一个把过程调用和响应调用所需要执行的代码加以结合的过程。在一般的程序设计语言中,绑定是在编译时进行的,叫做静态绑定。动态绑定则是在运行时进行的,因此,一个给定的过程调用和代码的结合直到调用发生时才进行。
动态绑定是和类的继承以及多态相联系的。在继承关系中,子类是父类的一个特例,所以,父类对象可以出现的地方,子类对象也可以出现。因此在运行过程中,当一个对象发送消息请求服务时,要根据接收对象的具体情况将请求的操作与实现的方法进行连接,即动态绑定。
在面向对象设计中,( )作为完成用例业务的责任承担者,协调、控制其他类共同完成用例规定的功能或行为。
类封装了信息和行为,是面向对象的重要组成部分。在面向对象设计中,类可以分为三种类型:实体类、边界类和控制类。①实体类映射需求中的每个实体,实体类保存需要存储在永久存储体中的信息。实体类是对用户来说最有意义的类,通常采用业务领域术语命名,一般来说是一个名词,在用例模型向领域模型转化中,一个参与者一般对应于实体类。②控制类是用于控制用例工作的类,一般是由动宾结构的短语(“动词+名词”或“名词+动词”)转化来的名词。控制类用于对一个或几个用例所特有的控制行为进行建模,控制对象通常控制其他对象,因此它们的行为具有协调性。③边界类用于封装在用例内、外流动的信息或数据流。边界类是一种用于对系统外部环境与其内部运作之间的交互进行建模的类。边界对象将系统与其外部环境的变更隔离开,使这些变更不会对系统其他部分造成影响。
在结构化分析中,用数据流图描述(请作答此空)。当采用数据流图对银行客户关系管理进行分析时,( )是一个加工。
数据流图(Data Flow Diagram,DFD):是一种最常用的结构化分析工具,从数椐传递和加工的角度,以图形的方式刻画系统内数据的运动情况。DFD摆脱了系统的物理内容,精确地在逻辑上描述系统的功能、输入、输出和数椐存储等,是系统逻辑模型的重要组部分。加工:描述了输入数据流到输出数据流之间的变换,也就是输入数据流经过什么处理后变成了输出数据流。
下面的UML类图描绘的是( )设计模式。关于该设计模式的叙述中,错误的是(请作答此空)。
本题主要考查设计模式的相关知识。
桥接模式将抽象部分与实现部分分离,使得它们两部分可以独立地变化。
策略模式定义一系列的算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化。
抽象工厂提供了一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。
观察者模式定义对象间的一种一对多依赖关系,使得每当一个对象改变状态,则其相关依赖对象皆得到通知并被自动更新。
从本题给出的图我们可以判断是观察者模式,其中被观察对象(Subject),具体被观察对象(ConcreteSubject),观察者(Observer)及具体观察者(ConcreteObserver)。在本设计模式中,Observer需要维护至少一个Subject对象,一个Subject对象需要维护多个Observer对象,另外Subject需要通知Observer对象其自身的状态变化。
某软件公司欲开发一个基于Web的考勤管理系统。在项目初期,客户对系统的基本功能、表现形式等要求并不明确,在这种情况下,采用( )开发方法比较合适。
根据题干描述,待开发的Web考勤管理系统在项目初期的需求并不明确,需要不断同用户进行交流与沟通,逐步获得系统的功能要求。在这种情况下,采用敏捷开发方法最为适合,因此应该选择极限编程这种开发方法。
在面向对象技术中,不同的对象在收到同一消息时可以产生完全不同的结果,这一现象称为多态,它由( )机制来支持。利用类的层次关系,把具有通用功能的消息存放在高层次,而不同的实现这一功能的行为放在较低层次,在这些低层次上生成的对象能够给通用消息以不同的响应。
多态性是同一操作作用于不同的类的实例,将产生不同的执行结果,即当不同类的对象收到相同的消息时,得到不同的结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。多态是面向对象程序设计的重要特征之一,是扩展性在“继承”之后的又一重大表现。如果一个语言只支持类而不支持多态,只能说明它是基于对象的,而不是面向对象的。
在面向对象分析和设计中,用类图给出系统的静态设计视图,其应用场合不包括(请作答此空)。下图是一个UML类图,其中类University和类School之间是( )关系,类Person和类PersonRecord之间是( )关系,表示Person与Person Record( )。
本题考查面向对象技术的基础知识。 考生应该了解UML的典型模型,包括用例图、类图、序列图、活动图等。本题考查类图,类图主要是对系统的词汇建模,或者对简单的协作建模,或者对逻辑数据库模式建模,而用例图对系统的需求建模。 类图中,类和类之间的关系有依赖关系、关联关系、聚集关系、组合关系和泛化关系,其中聚集关系和组合关系是表示更强的关联关系,表示整体和部分的关系,而组合关系的类之间具有相同的生命周期。图中类University和类School之间是聚集关系,类Person和类PersonRecord之间是依赖关系,表示Person与PersonRecord之间的语义关系,其中PersonRecord发生变化会影响Person的语义。
开-闭原则(Open-Closed Principle,OCP)是面向对象的可复用设计的基石。开-闭原则是指一个软件实体应当对(请作答此空)开放,对( )关闭;里氏代换原则(Liskov Substitution Principle,LSP)是指任何( )可以出现的地方,( )一定可以出现。依赖倒转原则(Dependence Inversion Principle,DIP)就是要依赖于( )而不依赖于( ),或者说要针对接口编程,不要针对实现编程。
开-闭原则要求一个软件实体应当对扩展开放,对修改关闭。也就是说,我们在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,换句话说就是,应当可以在不必修改源代码的情况下改变这个模块的行为。
里氏代换原则要求子类型必须能够替换它们的基类型,所以在里氏代换原则中,任何可基类对象可以出现的地方,子类对象也一定可以出现。
依赖倒转原则是:要依赖于抽象,不要依赖于具体。也就是常说的要针对接口编程,不要针对实现编程。
已知一个文件中出现的各个字符及其对应的频率如下表所示。若采用Huffman编码,则字符序列“bee”的编码应为( )。
① 有6个不同字母,需要采用3位二进制进行编码。② 本题对应的哈夫曼树如下所示:
在面向对象分析和设计中,用类图给出系统的静态设计视图,其应用场合不包括( )。下图是一个UML类图,其中类University和类School之间是( )关系,类Person和类PersonRecord之间是(请作答此空)关系,表示Person与Person Record( )。
本题考查面向对象技术的基础知识。 考生应该了解UML的典型模型,包括用例图、类图、序列图、活动图等。本题考查类图,类图主要是对系统的词汇建模,或者对简单的协作建模,或者对逻辑数据库模式建模,而用例图对系统的需求建模。 类图中,类和类之间的关系有依赖关系、关联关系、聚集关系、组合关系和泛化关系,其中聚集关系和组合关系是表示更强的关联关系,表示整体和部分的关系,而组合关系的类之间具有相同的生命周期。图中类University和类School之间是聚集关系,类Person和类PersonRecord之间是依赖关系,表示Person与PersonRecord之间的语义关系,其中PersonRecord发生变化会影响Person的语义。
(请作答此空)是一种很强的"拥有"关系,"部分"和"整体"的生命周期通常一样。整体对象完全支配其组成部分,包括它们的创建和销毁等;( )同样表示"拥有"关系,但有时候"部分"对象可以在不同的"整体"对象之间共享,并且"部分"对象的生命周期也可以与"整体"对象不同,甚至"部分"对象可以脱离"整体"对象而单独存在。上述两种关系都是( )关系的特殊种类。
本题主要考查我们对类之间一些常用关系的理解。本题我们主要要清楚组合与聚合的联系和区别。组合与聚合都体现着"部分"和"整体"的关系,但组合是一种很强的"拥有"关系,"部分"和"整体"的生命周期通常一样。整体对象完全支配其组成部分,包括它们的创建和销毁等;而聚合有时候"部分"对象可以在不同的"整体"对象之间共享,并且"部分"对象的生命周期也可以与"整体"对象不同,甚至"部分"对象可以脱离"整体"对象而单独存在。
组合与聚合都是关联关系的特殊种类。
UML中,静态视图描述事务的静态结构,主要包括(请作答此空);交互视图描述了执行系统功能的各个角色之间相互传递消息的顺序关系,主要包括( )。
静态结构:主要包括用例图、类图和包图
动态视图:主要包括活动图、状态图、序列图和协作图。动态视图中,交互视图描述了执行系统功能的各个角色之间相互传递消息的顺序关系,主要包括序列图、协作图
( )是一种很强的"拥有"关系,"部分"和"整体"的生命周期通常一样。整体对象完全支配其组成部分,包括它们的创建和销毁等;(请作答此空)同样表示"拥有"关系,但有时候"部分"对象可以在不同的"整体"对象之间共享,并且"部分"对象的生命周期也可以与"整体"对象不同,甚至"部分"对象可以脱离"整体"对象而单独存在。上述两种关系都是( )关系的特殊种类。
本题主要考查我们对类之间一些常用关系的理解。本题我们主要要清楚组合与聚合的联系和区别。组合与聚合都体现着"部分"和"整体"的关系,但组合是一种很强的"拥有"关系,"部分"和"整体"的生命周期通常一样。整体对象完全支配其组成部分,包括它们的创建和销毁等;而聚合有时候"部分"对象可以在不同的"整体"对象之间共享,并且"部分"对象的生命周期也可以与"整体"对象不同,甚至"部分"对象可以脱离"整体"对象而单独存在。
组合与聚合都是关联关系的特殊种类。
设计模式中的( )模式将对象组合成树形结构以表示"部分一整体"的层次结构,使得客户对单个对象和组合对象的使用具有一致性。下图为该模式的类图,其中,(请作答此空)定义有子部件的那些部件的行为;组合部件的对象由( )通过component提供的接口操作。
本题主要组合设计模式。组合设计模式将对象组合成树形结构以表示"部分一整体"的层次结构,使得客户对单个对象和组合对象的使用具有一致性。
在类图中,Component为合成的对象声明接口;某些情况下,实现从此接口派生出所有类共有的默认行为,定义一个接口可以访问及管理它的多个部分(GetChild),如果必要也可以在递归结构中定义一个接口访问它的父节点,并且实现它;Leaf在合成中表示叶节点对象,叶节点没有子节点;Composite用来定义有子节点(子部件)的部件的行为,存储子节点(子部件);Client通过Component接口控制组合部分的对象。
本题考查数据结构基础知识
根据关键字序列构造二叉排序树的基本过程是,若需插入的关键字大于树根,则插入到右子树上,若小于树根,则插入到左子树上,若为空树,则作为树根结点。
设某n阶三对角矩阵Anxn的示意图如下图所示。若将该三对角矩阵的非零元素按行存储在一维数组B[k](1≤k≤3×n-2)中,则k与i、j的对应关系是( )。
本题考查数据结构基础知识。解答该问题需先计算排列在Ai,j之前的元素个数。在按行存储方式下,存储在Ai,j之前的元素分为i-1行,除第1行外,每行3个元素。在第i行上,Ai,j之前的元素个数分为三种情况:i>j时为0个,i=j时有1个,i<j时为2个,概括为j-i+1个。综上,排列在Ai,j之前的元素个数为(i-1) ×3-1+j-i+1,即2i+j-3。由于数组B的下标从1开始,所以k=2i+j-3+1。
在结构化分析中,用数据流图描述( )。当采用数据流图对银行客户关系管理进行分析时,(请作答此空)是一个加工。
数据流图(Data Flow Diagram,DFD):是一种最常用的结构化分析工具,从数椐传递和加工的角度,以图形的方式刻画系统内数据的运动情况。DFD摆脱了系统的物理内容,精确地在逻辑上描述系统的功能、输入、输出和数椐存储等,是系统逻辑模型的重要组部分。加工:描述了输入数据流到输出数据流之间的变换,也就是输入数据流经过什么处理后变成了输出数据流。
算术表达式采用后缀式表示时不需要使用括号,使用( )就可以方便地进行求值。a-b*(c+d)的后缀式为(请作答此空)。
计算机在处理算术表达式时,首先将其转换为后缀表达式。例如,表达式“46+5*(120-37)”的后缀表达式形式为“46512037-*+”。计算后缀表达式时,从左至右扫描后缀表达式:若遇到运算对象,则压入栈中,若遇到运算符,则从栈中弹出相关运算对象进行计算,并将运算结果压入栈中,重复以上过程,直到后缀表达式扫描结束。表达式“a-b*(b+d)”的后缀表达式形式为“abcd+*-。
在关系R(A1,A2,A3)和S(A2,A3,A4)上进行πA1,A4(σA2<'2017'∧A4='95'(R?S))关系运算,与该关系表达式等价的是( )
选项A的“∨”应该改为“∧”;选项B与选项C不应该是笛卡尔积。自然连接与笛卡尔积的区别是:自然连接去掉了重复的属性列。
在面向对象分析和设计中,用类图给出系统的静态设计视图,其应用场合不包括( )。下图是一个UML类图,其中类University和类School之间是(请作答此空)关系,类Person和类PersonRecord之间是( )关系,表示Person与Person Record( )。
本题考查面向对象技术的基础知识。 考生应该了解UML的典型模型,包括用例图、类图、序列图、活动图等。本题考查类图,类图主要是对系统的词汇建模,或者对简单的协作建模,或者对逻辑数据库模式建模,而用例图对系统的需求建模。 类图中,类和类之间的关系有依赖关系、关联关系、聚集关系、组合关系和泛化关系,其中聚集关系和组合关系是表示更强的关联关系,表示整体和部分的关系,而组合关系的类之间具有相同的生命周期。图中类University和类School之间是聚集关系,类Person和类PersonRecord之间是依赖关系,表示Person与PersonRecord之间的语义关系,其中PersonRecord发生变化会影响Person的语义。
为了解决关系P存在冗余以及插入异常和删除异常等问题,需要将零件关系P分解。选项A、选项B和选项D是有损连接的,且不保持函数依赖故分解是错误的,例如,分解为选项A、选项B和选项D后,用户无法查询某零件由哪些供应商供应,原因是分解足有损连接的,且不保持函数依赖。
数据库系统的三级模式中,( )描述现实世界中的实体及其性质与联系,定义记录、数据项、数据的完整性约束条件及记录之间的联系,是数据项值的框架。
数据库系统的三级模式为外模式、概念模式、内模式。(1)概念模式。概念模式(模式、逻辑模式)用以描述整个数据库中数据库的逻辑结构,描述现实世界中的实体及其性质与联系,定义记录、数据项、数据的完整性约束条件及记录之间的联系,是数据项值的框架。(2)外模式。外模式(子模式、用户模式)用以描述用户看到或使用的那部分数据的逻辑结构,用户根据外模式用数据操作语句或应用程序去操作数据库中的数据。外模式主要描述组成用户视图的各个记录的组成、相互关系、数据项的特征、数据的安全性和完整性约束条件。(3)内模式。内模式是整个数据库的最低层表示,不同于物理层,它假设外存是一个无限的线性地址空间。内模式定义的是存储记录的类型、存储域的表示以及存储记录的物理顺序,指引元、索引和存储路径等数据的存储组织。
正确选项为B。根据题意,零件P关系的主键为(零件号,供应商)。
给定关系R(A,B,C,D,E)与S(A,B,C,F,G),那么与表达式等价的SQL语句如下:select( )from R,S where(请作答此空);
本题考查关系代数运算与SQL语言的对应关系。注意本题中R与S是做自然联接操作,操作时会将R与S中相同字段名做等值联接,并将结果集去重复。所以R与S自然联接后的结果包括以下属性:R.A,R.B,R.C,D,E,F,G。关系代数选择条件为“1<6”,即R.A<F。关系代数投影操作条件为“1,2,4,6,7”,对应的属性为:R.A,R.B,D,F,G。
对于学生关系Students(Sno,Sname,Sex,SD,Sage,SAdd),属性Sno、Sname、Sex、SD、Sage和SAdd分别表示学生的学号、姓名、所在系、年龄和通信地址;其中SD是关系Dept的主键。
a.学生关系的主键是( ),外键是( )。
b.查询其它系比数学系MS所有学生年龄都要小的学生姓名及年龄的SQL语句为:
SELECT Sname,Sage FROM studentsWHERE Sage<ALL(SELECT Sage FROM students WHERE(请作答此空))AND( )
本题考查数据库基本概念和SQL语言。由于学生号Sno能唯一区别学生关系中的每一个元组(记录),所以Sno是学生关系的主键。虽然SD不是学生关系的码,但SD是关系Dept的主键,所以SD是外键。由于子查询中WHERE SD='MS'意味着找出数学系所有学生的年龄,所以当外查询的学生年龄都小于子查询中的学生年龄即满足条件。根据题意需查询其他系比数学系MS所有学生年龄都要小的学生姓名及年龄,所以外查询中的条件语句需加上SD<>'MS'进行限定。
根据以上分析,完整的SQL语句如下:
SELECT Sname,Sage
给定关系模式R<U,F>,U={A,B,C,D,E},F={B→A,D→A,A→E,AC→B},则R的候选关键字为CD,分解ρ={Rl(ABCE),R2(CD)}( )
CD能推出题中关系式的所有属性,因此R的候选关键字为CD。
判断是否为无损连接,首先进行R1∩R2=C,由于C不能推出R1或者R2中的任何属性值,因此该分解为有损分解。原关系式F中有D→A而分解的Rl(ABCE)中没有D,所以该分解不保持函数依赖。
关系R(A,B,C,D,E)和S(B,C,F,G)做自然连接时,会以两个关系公共字段做等值连接,然后将操作结果集中重复列去除,所以运算后属性列有7个。接下来分析关系表达式的SQL形式,题目中关系表达式先进行了R与S的自然连接。得到的结果集为:RS(R.A,R.B,R.C,R.D,R.E,S.F,S.G)。此后的选择操作“σ3<6”可表达为“σR.C<S.F”;最后进行投影操作“π1,3,6,7”即选出结果集的第1,3,6,7列,对应的列为:R.A,R.C,S.F,S.G(由于无重复字段,A,C,F,G及A,R.C,F,G或其它等价形式均可)。
若关系模式R和S分别为:R(A,B,C,D.、S(B,C,E,F.,则关系R与S自然联结运算后的属性列有6个,与表达式π1,3,5,6(σ3<6(
))等价的SQL语句为:SELECT( )FROM R
自然连接
是指R与S关系中相同属性列名的等值连接运算后,再去掉右边重复的属性列名S.B、S.C,所以经
运算后的属性列名为:R.A、R.B、R.C、R.D、S.E和S.F,共有6个属性列。π1,3,5,6(σ3<6(
))的含义是从
结果集中选取R.C<S.F的元组,再进行R.A、R.C、S.E和S.F投影,故选项A是正确的。由于自然连接是指R与S关系中相同属性列名的等值连接,故需要用条件“WHERE R.B=S.B AND R.C=S.C”来限定;又由于经自然连接
运算后,去掉了右边重复的属性列名S.B、S.C,使得第三列属性列名和第六列属性列名分别为R.C、S.F,所以选取运算σ3<6需要用条件“WHERE R.C<S.F”来限定。
在分布式数据库中有分片透明、复制透明、位置透明和逻辑透明等基本概念,其中:(请作答此空)是指局部数据模型透明,即用户或应用程序无须知道局部使用的是哪种数据模型;( )是指用户或应用程序不需要知道逻辑上访问的表具体是怎么分块存储的。
本题考查对分布式数据库基本概念的理解。分片透明是指用户或应用程序不需要知道逻辑上访问的表具体是怎么分块存储的。复制透明是指采用复制技术的分布方法,用户不需要知道数据是复制到哪些节点,如何复制的。位置透明是指用户无须知道数据存放的物理位置。逻辑透明,即局部数据模型透明,是指用户或应用程序无须知道局部场地使用的是哪种数据模型
关系R(A,B,C,D,E)和S(B,C,F,G)做自然连接时,会以两个关系公共字段做等值连接,然后将操作结果集中重复列去除,所以运算后属性列有7个。
接下来分析关系表达式的SQL形式,题目中关系表达式先进行了R与S的自然连接。得到的结果集为:RS(R.A,R.B,R.C,R.D,R.E,S.F,S.G)。此后的选择操作“σ3<6”可表达为“σR.C<S.F”;最后进行投影操作“π1,3,6,7”即选出结果集的第1,3,6,7列,对应的列为:R.A,R.C,S.F,S.G(由于无重复字段,A,C,F,G及A,R.C,F,G或其它等价形式均可)。
若关系模式R和S分别为:R(A,B,C,D)、S(B,C,E,F),则关系R与S自然联结运算后的属性列有( )个
自然连接
是指R与S关系中相同属性列名的等值连接运算后,再去掉右边重复的属性列名S.B、S.C,所以经
运算后的属性列名为:R.A、R.B、R.C、R.D、S.E和S.F,共有6个属性列。π1,3,5,6(σ3<6(
))的含义是从
结果集中选取R.C<S.F的元组,再进行R.A、R.C、S.E和S.F投影,故选项A是正确的。由于自然连接是指R与S关系中相同属性列名的等值连接,故需要用条件“WHERE R.B=S.B AND R.C=S.C”来限定;又由于经自然连接
运算后,去掉了右边重复的属性列名S.B、S.C,使得第三列属性列名和第六列属性列名分别为R.C、S.F,所以选取运算σ3<6需要用条件“WHERE R.C<S.F”来限定。
数据库系统的三级模式中,( )定义的是存储记录的类型、存储域的表示以及存储记录的物理顺序,指引元、索引和存储路径等数据的存储组织。
数据库系统的三级模式为外模式、概念模式、内模式。(1)概念模式。概念模式(模式、逻辑模式)用以描述整个数据库中数据库的逻辑结构,描述现实世界中的实体及其性质与联系,定义记录、数据项、数据的完整性约束条件及记录之间的联系,是数据项值的框架。(2)外模式。外模式(子模式、用户模式)用以描述用户看到或使用的那部分数据的逻辑结构,用户根据外模式用数据操作语句或应用程序去操作数据库中的数据。外模式主要描述组成用户视图的各个记录的组成、相互关系、数据项的特征、数据的安全性和完整性约束条件。(3)内模式。内模式是整个数据库的最低层表示,不同于物理层,它假设外存是一个无限的线性地址空间。内模式定义的是存储记录的类型、存储域的表示以及存储记录的物理顺序,指引元、索引和存储路径等数据的存储组织。
题目要求使得算法B渐进地快于算法A,即B的时间复杂度小于A的时间复杂度。
通过简单的化简我们可以得到算法A的T(n)=49T(n/4)+2n2,而算法B的T(n)=aT(n/4)+n2,而根据渐进的规则,算法A的时间复杂度应该为49T(n/4),而算法B的时间复杂度应该为aT(n/4),因此a的取值应该要小于49。
您目前分数偏低,基础较薄弱,建议加强练习。