admin管理员组文章数量:1600042
文章目录
- 基础知识
- 认识UML图
- 软件设计模式详解
- 域名
- 常见的时间复杂度算法分析
- 软件设计各阶段产生的文档
- UML图分析
- CMM (Capability Maturity Model)能力成熟度模型
- 法律知识
- 进程的转换
- 嵌入式操作系统的特点
- 程序的局限性
- 病毒
- 常见的开发模型
- 敏捷模型的开发方法
- 敏捷开发方法:极限编程(XP)的特性
- 开发模型考题
- 面向对象设计的原则
- 软件开发各阶段任务
- 软件需求
- 统一过程模型的各个阶段
- 项目估算方法
- COCOMO软件成本估算模型
- 模块类型
- 内聚类型
- 结构化设计
- 耦合
- 数据流图
- 数据的基本加工
- 实体联系图(ERD)
- 系统结构图(SC)
- 软件维护活动
- 白盒测试
- (1)分支覆盖
- (2)路径覆盖
- 软件测试
- (3)判定覆盖
- 仓库风格
- 管道过滤器风格
- 生成器模式
- 软件维护工具
- HTTPS和HTTP的区别:
- 矢量图与位图
- 音频信号
- MPEG
- 多媒体编辑软件分类
- 媒体类型
- 七层模型
- PPP认证协议
- 媒体文件格式
- ADSL接入Internet
- 多态
- 冲突
- 事务
- 数据库设计
- 排它锁和共享锁
- 熵编码
- 波兰式(前缀表达式)、逆波兰式(后缀表达式)——利用栈求值
- 序列
- 数据挖掘算法
- 查找与队列与线性表
- 二分查找
- 循环队列计算队头元素的指针和队列元素个数
- 线性表的线性存储和链式存储的时间复杂度线性表进行顺序存储时,逻辑上相邻的元素,
- 计算出栈序列
- 拓扑序列
- 考查题型记录
- 一、选择题
- (1)霍夫曼编码/哈夫曼编码的构造
- (2)进程资源图的识读、判断节点是否阻塞、化简
- (3)McCabe度量法计算程序的环路复杂性(上午必考题)
- (4)磁盘索引计算
- 磁盘编号计算
- (5)段页式存储管理计算
- (6)有限自动机的判断
- (7)磁道数据块访问时间计算
- (8)位示图计算
- (9)二叉树的遍历和计算
- 遍历
- 计算
- 二叉树类别
- 二叉排序树(二叉检索树、二叉查找树)
- 语法树
- 二叉树的顺序存储
- 三叉链表存储
- (10)CPU性能参数计算:平均CPI和运算速度MIPS
- (11)逻辑地址与物理地址的转换
- (12)软件项目计划进度安排图(项目活动图)的计算和分析
- (13)计算彩色图像的数据量
- (14)计算光盘数量
- (15)计算真彩色图像的数据量
- (16)计算路由匹配表项
- (17)计算主机地址
- (18)计算网络地址和子网
- (19)网络配置判断
- (20)判断源ip地址
- (21)计算主机地址
- (22) 故障判断
- (23)数据库分析
- (24)使用TCP和UDP的协议及端口号
- (25)内存编址
- (26)流水线计算
- (27)PV分析
- (28)识别路由器地址匹配
- (29)有向图的邻接矩阵
- (30)IPV6和IPV4
- (31)串联与并联![在这里插入图片描述](https://i-blog.csdnimg/blog_migrate/c4ddce4372cfef4313f31f6106fe1661.png)
- (32)线性探测法解决冲突
- (33)函数调用(传值和传址)
- (34)海明码校验
- (35)构造判定表
- (36)循环队列
- 下午题
- 直接插入排序
- 希尔排序
- 简单选择排序
- 折半查找(二分查找)
基础知识
认识UML图
UML图解析
UML图解析
棒棒糖(供接口),插座(需接口)→组件图/构件图
通信图/协作图
对象之间联系用单一线条和箭头,用于表示对象之间的消息流和顺序
软件设计模式详解
软件设计中的各种模式详解
(1)行为型对象模式
- 责任链模式(Chain of Responsibility):通过给多个对象处理请求的机会,减少请求的发送者与接收者之间的耦合。将接收对象链接起来,在链中传递请求,直到有一个对象处理这个请求。
- 迭代器模式(Iterator) :提供一种方法来顺序访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示。迭代器不暴露
- 命令模式(Command) :将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作。
- 解释器模式(Interpreter) :给定一种语言,定义它的文法表示,并定义一个解释器,该解释器用来根据文法表示来解释语言中的句子。
观察者模式
策略模式
访问者模式
(2)结构性对象模式
桥接模式
下图也是桥接模式:
桥接模式:通过使用封装、聚合及继承等行为让不同的类承担不同的职责。将类的抽象部分和它的实现部分分离开来,使它们可以独立地变化。
域名
常见的时间复杂度算法分析
软件设计各阶段产生的文档
系统分析阶段结束后得到→系统方案建议书
系统测试阶段完成后得到→操作手册
结构化分析得到→一套分层的数据流图,一本数据字典,一组小数(加工逻辑说明),补充材料
UML图分析
对象图:展现了某一个时刻一组对象以及它们之间的关系。
类图:展现了一组对象、接口、协作和它们之间的关系。
用例图:展现了一组用例、参与者以及它们之间的关系。
序列图:是场景的图形化表示,描述了以时间顺序组织的对象之间的交互活动。
CMM (Capability Maturity Model)能力成熟度模型
CMM (Capability Maturity Model)是能力成熟度模型的缩写,CMM是国际公认的对软件公司进行成熟度等级认证的重要标准。CMM共分五级。在每一级中,定义了达到该级过程管理水平所应解决的关键问题和关键过程。每一较低级别是达到较高级别的基础。其中:
- 五级是最高级,即优化级,达到该级的软件公司过程可自发地不断改进,防止同类问题二次出现;
- 四级称为已管理级,达到该级的软件公司已实现过程的定量化;
- 三级为已定义级,即过程实现标准化;
- 二级为可重复级,达到该级的软件公司过程已制度化,有纪律,可重复;
- 一级为初始级,过程无序,进度、预算、功能和质量等方面不可预测。
法律知识
- 甲公司购买了一工具软件,并使用该工具软件开发了新的名为“恒友”的软件。甲公司在销售新软件的同时,向客户提供工具软件的复制品,则该行为侵犯了著作权。甲公司未对“恒友”软件注册商标就开始推向市场,并获得用户的好评。三个月后,乙公司也推出名为“恒友”的类似软件,并对之进行了商标注册,则其行为侵犯了著作权
【解析】
(1)向客户提供工具软件的复制品,这里侵犯了工具软件的软件著作权。
(2)甲公司没有注册商标,并且没有描述商业秘密相关内容,所以不涉及商标权保护和不正当竞争法保护,而著作权是自作品完成之时就开始保护,所以甲公司当软件产品完成之后,该作品就已经受到著作权保护了,乙公司的行为侵犯了著作权。
利用商业秘密权可以对软件的技术信息,经营信息提供保护
有可能无限拥有的知识产权是商标权
著作权中修改权、署名权、保护作品完整权都是永久保护的。
进程的转换
进程各状态的转换
嵌入式操作系统的特点
嵌入式操作系统的特点:
- 微型化,从性能和成本角度考虑,希望占用的资源和系统代码量少;
- 可定制性,从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用的需求;
- 实时性,嵌入式操作系统主要应用于过程控制、数据采集、传输通信、多媒体信息及关键要害领域需要迅速响应的场合,所以对实时性要求较高;
- 可靠性,系统构件、模块和体系结构必须达到应有的可靠性,对关键要害应用还要提供容错和防故障措施;
- 易移植性,为了提高系统的易移植性,通常采用硬件抽象层和板级支撑包的底层设计技术。
程序的局限性
程序的局限性表现在时间局部性和空间局部性:
- 时间局部性:是指如果程序中的某条指令一旦被执行,则不久的将来该指令可能再次被执行;
- 空间局部性:是指一旦程序访问了某个存储单元,则在不久的将来,其附近的存储单元也最有可能被访问。
病毒
- 震网(Stuxnet) ,指一种蠕虫病毒。它的复杂程度远超一般电脑黑客的能力。这种震网(Stuxnet)病毒于2010年6月首次被检测出来,是第一个专门定向攻击真实世界中基础(能源)设施的“蠕虫”病毒,比如核电站,水坝,国家电网。
- 引导区病毒:破坏的是引导盘、文件目录等;
- 宏病毒:破坏的是OFFICE文件相关;
- 木马:的作用一般强调控制操作。
常见的开发模型
- 原型模型:是一种演化模型,通过快速构建可运行的原型系统,然后根据运行过程中获取的用户反馈进行改进。原型模型需求啥也不懂
- 瀑布模型:是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型,适合于软件需求很明确的软件项目。瀑布模型需求很明确
- 迭代模型:迭代模型基本需求懂一点
- V模型:是瀑布模型的一种演变模型,将测试和分析与设计关联进行,加强分析与设计的验证。
- 演化模型(快速原型模型):特别适用于对演化模型软件需求缺乏准确认识的情况。
- 螺旋模型:将瀑布模型和演化模型(快速原型模型)结合起来,加入了两种模型均忽略的风险分析。
- 喷泉模型:以用户需求为动力,适合于面向对象开发的软件过程模型
- 增量模型(渐增模型):是瀑布模型和原型模型的综合,从一组给定的需求开始
敏捷模型的开发方法
- 极限编程XP是激发开发人员创造性、使得管理负担最小的一组技术;
- 水晶法Crystal认为每一个不同的项目都需要一套不同的策略、约定和方法论;
- 列争球法(Scrum)并使用迭代的方法,其中把每30天一次的迭代成为一个冲刺,并按需求的优先级来实现产品。多个自组织和自治小组并行地递增实现产品,并通过简短的日常情况会议进行协调。
敏捷开发方法:极限编程(XP)的特性
敏捷开发方法XP是一种轻量级、高效、低风险、柔性、可预测的、科学的软件开发方法。
- 4大价值观:沟通、简单性、反馈和勇气
- 5个原则:快速反馈、简单性假设、逐步修改、提倡更改和优质工作
12个最佳实践中:
- 计划游戏:快速制定计划、随着细节的不断变化而完善;
- 小型发布:系统的设计要能够尽可能早地交付;
- 隐喻:找到合适的比喻传达信息;
- 简单设计:只处理当前的需求使设计保持简单;
- 测试先行:先写测试代码再编写程序;
- 重构:重新审视需求和设计,重新明确地描述它们,以符合新的和现有的需求;
- 结队编程;
- 集体代码所有制;
- 持续集成:可以按日甚至按小时为客户提供可运行的版本;
- 每周工作40个小时;11.现场客户;
- 编码标准。
开发模型考题
具备了所开发系统的相关领域及类似规模系统的开发经验,即需求明确,瀑布模型最适合开发此项目。
需求不清晰且规模不太大时采用原型化方法最合适
数据处理领域的不太复杂的软件,适于用结构化方法进行开发。
面向对象设计的原则
- 共同封闭原则:包中的所有类对于同一种性质的变化应该是共同封闭的。一个变化若对一个封闭的包产生影响,则将对该包中的所有类产生影响,而对于其他包则不造成任何影响。面向对象设计的原则之一。
- 共同重用原则:面向对象编程术语,指-一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么也就相当于重用了包中的所有类。
- 开放-封闭原则:对扩展开放,对修改封闭。
- 接口隔离原则:使用多个专门的接口比使用单一的总接口要好。
软件开发各阶段任务
- 需求分析:确定软件要完成的功能及非功能性要求;(输出:数据流图、实体联系图、数据字典、状态迁移图)
- 概要设计:将需求转化为软件的模块划分,确定模块之间的调用关系;
- 详细设计:将模块进行细化,得到详细的数据结构和算法;
- 编码:根据详细设计进行代码的编写,得到可以运行的软件,并进行单元测试。
软件需求
软件需求是软件系统必须完成的事以及必须具备的品质。软件需求包括功能需求、非功能需求和设计约束三个方面的内容。
- 功能需求是所开发的软件必须具备什么样的功能;
- 非功能需求是指产品必须具备的属性或品质,如可靠性、性能、响应时间和扩展性等等;
- 设计约束通常对解决方案的一些约束说明。“软件产品必须能够在3秒内对用户请求作出响应”主要表述软件的响应时间,属于非功能需求。
统一过程模型的各个阶段
- 起始阶段:专注于项目的初创活动。
- 精化阶段:理解了最初的领域范围之后,进行需求分析和架构演进。
- 构建阶段:关注系统的构建,产生实现模型。
- 移交阶段:关注于软件提交方面的工作,产生软件增量。
- 产生阶段:运行软件并监控软件的持续使用,提供运行环境的支持,提交并评估缺陷报告和变更请求。
项目估算方法
项目估算是项目计划和管理的一个至关重要的方面。成本超出某个限度可能导致客户取消项目,而过低的成本估算可能会迫使开发小组投入大量的时间却没有相应的经济回报。目前常用的项目估算方法有:
- 专家判断方法,该方法受到专家经验和主观性等方面的影响;
- 算法方法,根据某个计算模型来估算项目开发成本,如启发式方法cOCOMO模型,但这些模型中的参数难以确定;
- 机器学习方法,如根据过去的项目开发数据,建立分类模型,预测新项目的开发成本,但这类方法难以定义训练数据的特征以及定义数据对象之间的相似性。
即使结合多种方法,上述问题仍然存在,因此并不能得到精确地项目估算结果。
COCOMO软件成本估算模型
COCOMO用3个不同层次的模型来反映不同程度的复杂性,它们分别为:
- 基本COCOMO:基本模型(Basic Model) ,是一个静态单变量模型,它用一个以已估算出来的源代码行数(LOC)为自变量的函数来计算软件开发工作量。
- 中级COCOMO:中级模型(Intermediate Model) ,则在用LOC为自变量的函数计算软件开发工作量的基础上,再用涉及产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算。
- 高级COCOMO:详细模型(Detailed Model),包括中级COcOMO型的所有特性,但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中分析、设计等各步骤的影响。(在后来的版本COCOMOl中,还考虑了软件开发的不同阶段,包含三个阶段性模型,即应用组装模型、早期设计阶段模型和体系结构阶段模型。)
模块类型
通常,可以按照在软件系统中的功能将模块分为四种类型。
- ①传入模块:取得数据或输入数据,经过某些处理,再将其传送给其他模块.
- ②传出模块:输出数据,在输出之前可能进行某些处理,数据可能被输出到系统的外部,或者会输出到其他模块进行进一步处理。
- ③变换模块:从上级调用模块得到数据,进行特定的处理,转换成其他形式,在将加工结果返回给调用模块。
- ④协调模块:一般不对数据进行加工,主要是通过调用、协调和管理其他模块来完成特定的功能。
内聚类型
-
①偶然(巧合)内聚:指一个模块内的各个处理元素之间没有任何联系。
特点:
该内聚类型具有最低的内聚性,是最不好的一种内聚类型。
具有该类内聚类型的模块具有不易修改、不易理解和不易维护等特点,
同时会影响到模块间的耦合关系。 -
②逻辑内聚:指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
-
③时间内聚:把需要同时执行的动作组合在一起形成的模块。
-
④通信内聚:模块在同一个数据结构上读、写和处理操作等,或者指各处理使用相同的输入数据或者产生相同的输出数据。
-
⑤顺序内聚:指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一个功能元素的输出就是下一个功能元素的输入。
-
⑥功能内聚:是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。
结构化设计
结构化设计主要包括:
- ①体系结构设计——(根据数据流图进行体系结构设计)
定义软件的主要结构元素及其关系。 - ②数据设计——(根据数据字典和实体关系图进行数据设计)
基于实体联系图确定软件涉及的文件系统的结构及数据库的表结构。 - ③接口设计——(根据数据流图进行接口设计)
描述用户界面,软件和其他硬件设备、其他软件系统及使用人员的外部接口,以及各种构件之间的内部接口。 - ④过程设计——(根据加工规格说明和控制规格说明进行过程设计)
用户确定软件各个组成部分内的算法及内部数据结构,并选定某种过程的表达形式来描述各种算法。
耦合
数据耦合有参数
标记耦合有结构
直接耦合没有直接关系
内容耦合访问内部数据
公共耦合访问公共数据
模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。
模块之间的耦合有7种类型,根据耦合性从低到高为非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合和内容耦合。
- 直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。
- 数据耦合:如果一个模块访问另一个模块时,彼此之间是通过数据参数来交换输入、输出信息的,则称这种耦合为数据耦合;
- 标记耦合:如果—组模块通过数据结构本身传递,则称这种耦合为标记耦合;
- 公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合;
- 内容耦合:若一个模块直接访问另一个模块的内部数据、一个模块不通过正常入口转到另一个模块内部、两个模块有一部分程序代码重叠或者一个模块有多个入口,上述几个情形之一发生则说明两个模块之间就发生了内容耦合。
- 外部耦合:一组模块都访问同一全局简单变量,则称之为外部耦合。
数据流图
数据流图建模应遵循:自顶向下、从抽象到具体的原则。
→:箭头,表示数据流;(只能与加工相关)
〇:圆或椭圆,表示加工;(必须有输入和输出)
= :双杠,表示数据存储;
□:方框,表示数据的源点或终点。
数据流图详解
数据流图是结构化分析的一个重要模型,是系统逻辑模型的重要组成部分。描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能,用于功能建模。
数据流图中有四个要素:
- ①外部实体(□):也称为数据源或数据汇点,表示要处理的数据的输入来源或处理结果要送往何处,不属于目标系统的一部分,通常为组织、部门、人、相关的软件系统或者硬件设备;
- ②数据流(→):表示数据沿箭头方向的流动;(只能与加工相关)
- ③加工(〇):是对数据对象的处理或变换;(必须有输入和输出)
- ④数据存储( = ):在数据流中起到保存数据的作用,可以是数据库文件或者任何形式的数据组织。
数据流图有四种基本图形符号:
数据的基本加工
对基本加工的说明有三种描述方式:结构化语言、判断表(决策表)、判断树(决策树)。基本加工逻辑描述的基本原则为:
- ①对数据流图的每一个基本加工,必须有一个基本加工逻辑说明。
- ②基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则。
- ③加工逻辑说明必须描述实现加工的策略而不是实现加工的细节。
- ④加工逻辑说明中包含的信息应是充足的,完备的,有用的,无冗余的。
加工是数据流的一个重要要素,可以用多种方式描述:如流程图、NS盒图等,其中决策树和决策表适于用来表示加工中涉及多个逻辑条件的情况。
实体联系图(ERD)
实体联系图也是一个常用的数据模型,用于描述数据对象及数据对象之间的关系。实体联系图有三个要素:
- ①实体:是目标系统所需要的复合信息的表示,也称为数据对象;
- ②属性:定义数据对象的特征;
- ③联系:是不同数据对象之间的关系。在该系统中患者是一个数据对象,即实* 体,具有多种属性。
系统结构图(SC)
系统结构图又称为模块结构图,它是软件概要设计阶段的工具,反映系统的功能实现和模块之间的联系与通信,包括各模块之间的层次结构,即反映了系统的总体结构。
- SC包括模块、模块之间的调用关系、模块之间的通信和辅助控制符号等4个部分。
软件维护活动
正确性维护,改正错误
适应性维护,适应环境
完善性维护,完善性能
预防性维护,关注预防
在软件开发完成交付用户使用后,就进入软件运行/维护阶段。软件维护活动根据其内容可以分为4种类型:
-
①正确性维护。为了识别和纠正软件错误,改正软件性能上的缺陷,排除实施的误使用,应进行的诊断和改正错误的过程。
eg:
(1)改正在软件系统开发阶段已经发生而系统测试阶段还没有发现的错误
(2)由于信用卡公司升级了其信用卡支付系统,导致超市的原有信息系统也需要做相应的修改工作。 -
②适应性维护。由于信息技术飞速发展,软件运行的外部环境或数据环境可能发生变化,为了使软件适应这种变化而修改软件的过程。
-
③完善性维护。在软件使用过程中,用户往往会对软件提出新的功能与性能要求,为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性而进行的维护活动。
eg:
(1)为软件的运行增加监控设施,
(2)修改算法,使响应效率更高 -
④预防性维护。为了提高软件的可维护性和可靠性等,为以后进一步改进软件打下良好基础而进行的维护工作。
软件维护是软件生命周期最长的一段,相对于软件开发任务而言,软件维护工作要更加复杂。
软件系统的可维护性评价指标包括可理解性、可测试性、可修改性、可靠性、可使用性和效率。
白盒测试
在白盒测试中,语句覆盖是最弱的覆盖准则
(1)分支覆盖
下图:若要满足分支覆盖,则至少要(2)个测试用例
分支覆盖是一种白盒测试方法,是指设计若干测试用例,使得所有判断框的Y和N分支至少走一次。
该流程图有两个判断框,因此可以设计测试用例走第一个判断框的Y或N和第二个判断框的Y或N,对这些情况组合,至少需要2个测试用例,即YY和NN或者YN和NY或者NY和YN,这样可以满足分支覆盖。(路径走完了就行)
(2)路径覆盖
下图:若要满足路径覆盖,则至少需要(6 )个测试用例。采用McCabe度量法计算该程序的环路复杂性为(4)。
软件测试
- 回归测试是在软件发生变更之后进行的测试,以发现在变更时可能引起的其他错误。
- 在软件开发过程中,系统测试阶段的测试目标来自于(需求分析)阶段。
软件测试的基本目标是为了发现软件中的错误,但软件测试分为几个不同的阶段,每个阶段的侧重点是有所不同的。
- 单元测试:主要是发现程序代码中的问题,针对详细设计和软件实现阶段的工作进行的;
- 集成测试:验证系统模块是否能够根据系统和程序设计规格说明的描述进行工作,即模块以及模块之间的接口的测试:
- 系统测试:则是验证系统是否确实执行需求规格说明中描述的功能和非功能要求,因此测试目标在需求分析阶段就已经定义。
- 确认测试:包括内部确认测试,Alpha测试,Beta测试
(3)判定覆盖
判定覆盖是设计足够多的测试用例,使得程序中的每一个判断至少获得一次“真”和一次‘“假”即使得程序流程图中的每一个真假分支至少被执行一次。 根据题意,只需2个测试用例即可。
仓库风格
仓库风格是一种软件体系结构,其中包含一个数据仓库和若干个其他构件。数据仓库位于该体系结构的中心,其他构件访问该数据仓库并对其中的数据进行增、删、改等操作。数据库系统、超文本系统和黑板系统都属于仓库风格。
- 该体系结构的优点包括:
①对可更改性和可维护性的支持;
②可复用的知识源;
③支持容错性和健壮性。 - 缺点包括:
①测试困难;
②不能保证有好的解决方案;
③难以建立好的控制策略;
④低效;
⑤昂贵的开发工作;
⑥缺少对并行机制的支持。
管道过滤器风格
管道过滤器体系结构的优点有以下:
- ①软件构件具有良好的隐蔽性和高内聚、低耦合的特点;
- ②允许设计者将整个系统的输入输出行为看成是多个过滤器的行为的简单合成;
- ③支持软件复用;
- ④系统维护和增强系统性能简单;
- ⑤允许对一些如吞吐量、死锁等属性的分析;⑥支持并行执行。
生成器模式
Builder:抽象建造者,为创建一个Product对象各个部件指定抽象接口,把产品的生产过程分解为不同的步骤,从而使具体建造者在具体的建造步骤.上具有更多弹性,从而创造出不同表示的产品。
ConcreteBuilder:具体建造者,实现Builder接口,构造和装配产品的各个部件定义并明确它所创建的表示,提供一个返回这 个产品的接口。
Director:指挥者,构建一个使用Builder接口的对象。即对应本题waiter。
Product:产品角色,被构建的复杂对象,具体产品建造者,创建该产品的内部表示并定义它的装配过程。包含定义组成组件的类,包括将这些组件装配成最终产品的接口。
生成器模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
- 类图中有明确的builder关键字,就是是生成器模式
软件维护工具
软件维护工具主要有:
- 版本控制工具;
- 文档分析工具;
- 开发信息库工具
- 逆向工程工具;
- 再工程工具;
- 配置管理支持工具。
HTTPS和HTTP的区别:
- https协议需要到ca申请证书,一般免费证书很少,需要交费。
- http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
- http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。- http的连接很简单,是无状态的。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
矢量图与位图
矢量图是根据几何特性来绘制图形,矢量可以是一个点或一条线,矢量图只能靠软件生成,文件占用内在空间较小,因为这种类型的图像文件包含独立的分离图像,可以自由无限制的重新组合。它的特点是放大后图像不会失真,和分辨率无关,适用于图形设计、文字设计和一些标志设计、版式设计等。
- 矢量图中的图形元素称为图元。而另一类图具有代表性的图像表示形式是位图图像,该图采用像素来表示图像。
位图与矢量图相比,位图(占用空间较大,处理侧重于获取和复制,显示速度快 )
音频信号
- PC处理的音频信号主要是人耳能听得到的音频信号(audio) ,它的频率范围是20~20kHz。
可听声包括:
- 话音(也称语音)︰人的说话声,频率范围通常为300~3400Hz
- 音乐:由乐器演奏形成(规范的符号化声音),其带宽可达到20~20kHz。
- 其他声音:如风声、雨声、鸟叫声和汽车鸣笛声等,它们起着效果声或噪声的作用,其带宽范围也是20~20kHz。
MPEG
MPEG是Moving Picture Expert Group的简称,最初是指由国际标准化组织(ISO)和国际电工委员会(IEC)联合组成的一个研究视频和音频编码标准的专家组。同时MPEG也用来命名这个小组所负责开发的一系列音、视频编码标准和多媒体应用标准。这个专家组至今为止已制定和制定中的标准包括MPEG-1、MPEG-2、MPEG-4、MPEG-7和MPEG-21标准。
- 其中MPEG-1、MPEG-2和MPEG-4主要针对音、视频编码技术
- MPEG-7是多媒体内容描述接口标准
- MPEG-21是多媒体应用框架标准。
VCD使用了MPEG-1标准作为其音、视频信息压缩编码方案,而MPEG-2标准中的音、视频压缩编码技术被应用到DVD中。
MPEG压缩标准是针对运动图像设计的,其基本方法是:单位时间内采集并保存第一帧信息, 然后只存储其余帧对第一帧发生变化的部分,从而达到压缩的目的。MPEG的平均压缩比为50: 1,最高可达200:1,压缩效率非常高,同时图像和音响的质量也非常好,并且在PC.上有统一的标准格式,兼容性相当好。AVI是Microsoft 公司
多媒体编辑软件分类
多媒体编辑软件分为:文本工具、图形/图像工具、动画工具、视频工具、音频工具和播放
工具。
- “WPS*属于文本工具类软件,主要用于文字编辑和处理;
- “Xara3D”属于动画工具类软件,主要用于动画编辑和处理;
- “PhotoShop”属于图形/图像工具类软件,主要用于显示图形/图像、图形/图像编辑、图像压缩、围像捕捉、图形/图像素材库;
- “Cool Edit Pro’属于音频工具类软件,主要用.于音频播放、音频编辑、音频录制和声音素材库4个功能。
媒体类型
国际电话电报咨询委员会(CCITT) 将媒体分为感觉媒体、表示媒体、表现媒体、存储媒
体和传输媒体5类。
- 感觉媒体:指直接作用于人的感觉器官,使人严生内接感觉的媒体,如引起听觉反应的声
音、引起视觉反应的图像等; - 传输媒体:指传输表示媒体的物理介质,如电缆、光缆。电磁波等;
- 表示媒体:指传输感觉媒体的中介媒体,即用于数据交换的编码,如图像编码、文本编码和声音编码等;
- 表现媒体:是指进行信息输入和输出的媒体,如键盘、鼠标、话筒,以及显示器、打印机、喇叭等;
- 存储媒体:指用于存储表示媒体的物理介质,如硬盘、光盘等。
七层模型
- 网络层的联网设备是路由器、三层交换机
— ARP、RARP是网络层协议,它的作用是实现IP地址与MAC地址之间的变换 - 数据链路层的联网设备是网桥、交换机和网卡
- 中继器、集线器是物理层设备,其作用是对接收的信号进行再生放大,以延长传输的距离。
- 传输层(协议TCP、UDP(开销较小))和会话层属于应用层(协议ANMP),主要是软件功能,都不需要专用的联网设备
PPP认证协议
- PPP中的安全认证协议(质询握手认证协议)是(CHAP)它使用三次握手的会话过程传送密文。
- 口令认证协议PAP
- 认证扩展协议EAP
媒体文件格式
- WAV为微软公司开发的一种声音文件格式,它符合RIFF (Resource Interchange File Format)文件规范。
- BMP (Bitmap) 是Windows操作 系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB) 。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩。
- MP3 (Moving Picture Experts Group AudioLayer II是- -种音频压缩技术,它被设计用来大幅度地降低音频数据量。作为文件扩展名时表示该文件时一种音频格式文件。
- MOV即QuickTime影片格式,它是Apple公司开发的一种音频、视频文件格式,用于存储常
用数字媒体类型。
ADSL接入Internet
使用ADSL接入Internet,用户端需要安装( )协议。
多态
- 参数多态:应用广泛、最纯的多态。
- 包含多态:同样的操作可用于一个类型及其子类型。包含多态一般需要进行运行时的类型检查。包含多态在许多语言中都存在,最常见的例子就是子类型化,即一个类是另外一个类型的子类型。
- 强制多态:编译程序通过语义操作,把操作对象的类型强行加以变换,以符合函数或操作符的要求。
- 过载多态:同一个名(操作符、函数名)在不同的上下文中有不同的类型。目前软设考查比较多的是过载多态。
冲突
-
结构冲突:是指同一实体在不同的E-R图中有不同的属性,同一对象在某一E-R图中被抽象为实体而在另一E-R图中又被抽象为属性,需要统一。
eg:
某高校信息系统设计的分E-R图中,人力部门定义的职工实体具有属性:职工号、姓名、性别和出生日期;教学部门定义的教师实体具有属性:教师号、姓名和职称。这种情况属于结构冲突 -
属性冲突:是指同一属性可能会存在于不同的E-R图,由于设计人员不同或是出发点不同,对属性的类型、取值范围、数据单位等可能会不一致,这些属性对应的数据将来只能以一种形式在计算机中存储,这就需要在设计阶段进行统一。
-
命名冲突:是指相同意义的属性在不同的E-R图上有着不同的命名,或是名称相同的属性在不同的E-R图中代表着不同的意义,这些也要进行统一。
冲突
eg:
在某企业的营销管理系统设计阶段,属性“员工”在考勤管理子系统中被称为“员工”,而在档案管理子系统中被称为"职工",这类冲突称为(命名冲突 )冲突。 -
采用三级结构/两级映像的数据库体系结构,如果对数据库的一张表创建聚簇索引,改变的是数据库的(内模式 )。
-
由于题目告诉我们“家庭住址”记录了邮编、省、市、街道信息,那么家庭家庭住址属性可以再分,因此它是一个复合属性。派生属性是指通过其他属性可以计算获得结果的属性。
事务
- 原子性(Atomicity) :事务是原子的,要么做,要么都不做。
- 一致性(Consistency) :事务执行的结果必须保证数据库从一个一致性状态变到另一个一致性状态。
- 隔离性隔离性(lsolation) :事务相互隔离。当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程,对其它事物都是不可见的。
- 持久性(Durability) : 一旦事务成功提交,即使数据库崩溃,其对数据库的更新操作也永久有效。
eg:
事务的(持久性)是指,当某个事务提交(COMMIT)后,对数据库的更新操作可能还停留在服务器磁盘缓冲区而未写入到磁盘时,即使系统发生障碍事务的执行结果仍不会丢失。
数据库设计
数据库设计主要分为用户需求分析、概念结构、逻辑结构和物理结构设计四个阶段。
- 其中,在用户需求分析阶段中,数据库设计人员采用一定的辅助工具对应用对象的功能、性能、限制等要求所进行的科学分析,并形成需求说明文档、数据字典和数据流程图。用户需求分析阶段形成的相关文档用以作为概念结构设计的设计依据。
排它锁和共享锁
在多用户共享的系统中,许多用户可能同时对同一数据进行操作,可能带来数据不一致问题。为了解决这类问题,数据库系统必须控制事务的并发执行,保证数据库处于一致的状态,在并发控制中引入两种锁:排他锁(Exclusive Locks,简称X锁)、共享锁(Share Locks,简称S锁)
- 排他锁:又称为写锁,用于对数据进行写操作时进行锁定。如果事务T对数据A加上X锁(排他锁)后,就只允许事务T读取和修改数据A,其他事务对数据A不能再加任何锁,从而也不能读取和修改数据A,直到事务T释放A上的锁。排它锁上不能再加排它锁修改
- 共享锁:又称为读锁,用于对数据进行读操作时进行锁定。如果事务T对数据A加上了S锁(共享锁)后,事务T就只能读数据A但不可以修改,其他事务可以再对数据A加S锁(共享锁)来读取,只要数据A上有S锁(共享锁),任何事务都只能再对其加S锁(读取)而不能加X锁(修改) 。共享锁上不能加排它锁修改
熵编码
在计算机信息处理中,“哈夫曼编码”是一种一致性编码法(又称“熵编码法”),用于数据的无损耗压缩。这—术语是指使用一张特殊的编码表将源字符(例如某文件中的一个符号)进行编码。这张编码表的特殊之处在于,它是根据每一个源字符出现的估算概率而建立起来的。出现概率高的字符使用较短的编码,出现概率低的则使用较长的编码,这便使编码之后的字符串的平均期望长度降低,从而到无损压缩数据的目的。
波兰式(前缀表达式)、逆波兰式(后缀表达式)——利用栈求值
波兰式与逆波兰式详解
逆波兰式(reverse polish notation,也叫后缀表达式):是将运算符写在操作数之后的表达式表示方法。对逆波兰式进行求值的方法是:从左至右扫描表达式,遇到操作数则压栈,遇到运算符号则从栈中弹出操作数进行运算,然后将运算结果压入栈中,重复该过程直到表达式结束,最后的结果为栈顶元素。由于控制上比较简单,所以逆波兰式更便于计算。
序列
设元素序列a,b,c,d,e, f经过初始为空的栈S后,得到出栈序列cedfba,
则栈S的最小容量为( )。
数据挖掘算法
- 决策树
- 神经网络
- 遗传算法
- 关联规则挖掘算法
查找与队列与线性表
二分查找
对n个元素的有序表A[…n]进行二分(折半)查找(除2取商时向下取整)查找元素A[i]时,最多与A中的( )个元素进行比较。.
循环队列计算队头元素的指针和队列元素个数
对于循环队列,求队头元素的指针的计算公式为: (rear-len+ 1 +M)%M。求队列中元素个数公式为: (rear-fear+M)%M。其中fear表示队列的对头指针。
线性表的线性存储和链式存储的时间复杂度线性表进行顺序存储时,逻辑上相邻的元素,
-
线性存储,即按照序号访问元素时随机的,该运算的时间复杂度为0(1),也就是常量级。而插入元素时就需要移动一些元素了,在最坏情况下要移动表中的所有元素,因此该运算的时间复杂度为0 (n) ,其中n为线性表的长度。
-
链式存储,逻辑上相邻的元素,其物理位置不要求相邻,因此需要额外的存储空间表示元素之间的顺序关系。在链表上查找元素和插入元素的运算时间复杂度都为0(n)
计算出栈序列
若元素以a,b,c,d,e的顺序进入一个初始为空的栈中,每个元素进栈、出栈各1次,要出栈的第一个元素为d,则合法的出栈序列共有( )种
- debca
- dcbae
- dcbea
- dceba
拓扑序列
拓扑排序解析
拓扑排序可以有多解
考查题型记录
一、选择题
(1)霍夫曼编码/哈夫曼编码的构造
哈夫曼树构造和带权路径WPL详解
霍夫曼编码详解
【解析】
(1)首先构造哈夫曼树:
得到cade编号为1110110101
(2)
三位数的2进制编码可以表示8个不同的字符(000,001,010,100,011,101,110,111),故若要表示5个不同的字符,用二进制编码至少需要3位二进制:
所以,压缩前:每个字符占据空间3bit,平均字符长度为3*40%+3*10%+3*20%+3*16%+3*14%=3
压缩后,根据哈夫曼树编码可知这5个字符的编码长度分别为1、3、3、3、3
平均编码长度为1*40%+3*10%+3*20%+3*1 6%+3*14%=2.2。
压缩比为(3-2.2) /3=27%
(2)进程资源图的识读、判断节点是否阻塞、化简
进程资源图分析详解
(3)McCabe度量法计算程序的环路复杂性(上午必考题)
下图用白盒测试方法进行测试,图中有(4)条路径,采用McCabe度量计算该程序图的环路复杂性为( ) 。
第一问解析:
第二问解析:
McCabe度量法在上午题为必考题,其有三种算法,这三种算法与流图的边,节点数,判定节点和边与节点围起来的区域有关
-
第一种使用用于流图中的区域数来计算。环形复杂度V(G)=D,D为区域数。
从下图可知流程图中的线性无关区域数为4个。环形复杂度与流程图中的线性无关区域数相等,所以,环形复杂度V(G)=4。
-
第二种使用流图中的边和节点数来算,环形复杂度V(G)=E-N+2,E为流图中边的条数,N为流图中节点数,下图中的边数为13,节点数为11
-
第三种使用用于流图中的判断节点数来算,环形复杂度V(G)=P+1,P为流图中判断节点数(判断节点:一定有两条及以上输出弧。)
上图的判定节点为3、5、7共三条。
结论:使用三种方法计算得出的环路复杂度结果都是一致的
(4)磁盘索引计算
- 地址索引从0开始
每个磁盘索引块可存放的地址数量=索引块的大小(磁盘数据款大小)÷地址项的大小
【解析】
其中0~4号节点为直接索引,对应逻辑块号为0~4。
其中5~6号节点为一级间接索引方式,对应逻辑块号为5~6开始。
其中7号节点为二级间接索引方式,对应逻辑块号为7开始。
求每个索引盘的可以存储多少个索引/址地
每个索引盘大小为1KB,地址项大小为4B,故每个索引盘有(1KB/4B) =256个索引(地址)。
一级间接索引有2个盘块, 共有512个索引,对应512个逻辑盘块。
其中7号节点为二级间接索引,共有256*256=65536个索引,对应65536个逻辑盘块。
单个文件最大为二级索引地址的最后一项: (5+512+65536) *1KB=66053KB。
磁盘编号计算
【解析】
从0开始编号
(5)段页式存储管理计算
【解析】从题目给出的段号、页号、页内地址位数情况,可以推算出每一级寻址的寻址空间。
- 如:已知页内地址是从第0位到第11位,共12个位,所以一个页的大小为: 212=4K。
- 页号是从第12位到第23位,共12个位,所以一个段中有212=4096个页。
- 段号是从第24位到第31位,共8个位,所以一共有28=256个段。
(6)有限自动机的判断
正则表达式和自动机的相互转化
解析:
自动机识别字符串的过程是:从初态出发,根据字符串的当前字符实现状态转移。如果存在从初态到终态的状态转移路径与字符串中的各个字符相匹配,那么就说该自动机可以识别该字符串。
- 题中所给自动机的初态和终态都是编号为1的状态,从其状态图可知,从状态1开始,识别出字符“a”时仍然转移到状态1,而识别出字符“b”时才离开状态1进入状态2,状态2仅对字符“a”有状态转移,且转回状态1。因此,该自动机识别的字符串仅包含a、b字符,但是字符“b”不能连续出现,连续出现“a”是可以的。.
【解析】
图中是不确定的有限自动机,中间内容由多种可能,但由图可以看到,从初态0开始,首字符只能为0,到终态结束之前,尾字符也只能为0。
(7)磁道数据块访问时间计算
【解析】访问一个数据块的时间=寻道时间+旋转延迟时间+传输时间。
- 根据题意,每块的旋转延迟时间+传输时间共需120ms,磁头从一个磁道移至另一个磁道需要6ms,但逻辑上相邻数据块的平均距离为10个磁道,即读完一个数据块到下一个数据块寻道时间需要60ms。
通过上述分析,本题访问一个数据块的时间T=120ms+60ms=180ms,而读取一个100块的文件共需要18000ms。
(8)位示图计算
根据题意,若磁盘的容量为300GB,物理块的大小为1MB,则该磁盘的物理块数为300*1024MB/1MB=307200个,位示图的大小为307200/32=9600个字。
(9)二叉树的遍历和计算
【性质】
度为0的结点比度为2的结点多1,即n0=n2+1
n2*k+n1*k+n0*k+1=n2+n1+n0
遍历
- 深度优先遍历和广度优先遍历详解
- 二叉树已知前序和中序遍历,求后序遍历
某二叉树的先序遍历序列为cabfedg,中序遍历序列为abcdefg,则该二叉树是()。
找前序遍历的数据划分子树(先找靠近)
- 二叉树已知后序和中序遍历,求前序遍历
某二叉树的后序遍历序列为DBCEFGHA,中序遍历序列为EDCBAHFG,则该二叉树是()。
找后序遍历的数据分子树
- 注意:已知前序遍历、后序遍历无法求出中序遍历(因为由前序后序重构出来的二叉树不止一种)
计算
- n个节点的二叉树有多少种形态(Catalan数)
【解析】
计算n个结点二叉树的形态数量的公式
带入计算公式f(3)=5,f(4)=14
二叉树类别
- 完全二叉树:除最后一层外,每一层上的节点数均达到最大值;在最后一层上只缺少右边的若干结点
- 平衡二叉树(AVL) :它或者是一颗空树,或者具有以下性质的二叉树:它的左子树和右子树的深度之差的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树
- 最优二叉树:哈夫曼树
哈夫曼树构造和带权路径WPL详解 - 满二叉树:每一层上的节点数均达到最大值
二叉排序树(二叉检索树、二叉查找树)
【解析】
关键序列码就是给你一串数字让你进行二叉排序:
题目详解
23
=====
23
40
=====
23
40
91
=======
23
17 40
91
===========
23
17 40
19 91
==============
23
17 40
10 19 91
========================
23
17 40
10 19 31 91
================================
23
17 40
10 19 31 91
65
======================================
23
17 40
10 19 31 91
27 65
=========================================
23
17 40
10 19 31 91
13 27 65
语法树
【解析】
二叉树的后序遍历为abc-+d*
故该语法树为:
二叉树的顺序存储
二叉树的顺序存储,用编号的方法从树根起,自上层至下
层,每层自左至右地给所有结点编号。
三叉链表存储
(10)CPU性能参数计算:平均CPI和运算速度MIPS
CPU性能参数详解
【解析】
第一问关于平均CPI,即对列出的CPI求平均数公式:4*35%+2*45%+6*20%=3.5。
第二问:
时钟周期 :主频的倒数 T=1/f
MIPS = 每秒执行百万条指令数 = 1/(CPI×时钟周期)= 主频/CPI
即MIPS =1/ (3.5×(1/2.8G)) =2.8G/3.5=0.8G=800M。
1M=10^6
1G=10^9
1G=10^3M
(11)逻辑地址与物理地址的转换
浅析如何把逻辑地址转换为物理地址
(1)十六进制逻辑地址
(2)十进制逻辑地址
【解析】
(1)计算十六进制使用公式
逻辑地址=页号+页内地址
物理地址=块号+页内地址
首先逻辑地址已经给出:
将16进制的逻辑地址3C20H转换成2进制0011 1100 0010 0000
再根据页面大小求页号和页内地址的位数:
页面大小为4K=2^12B,故逻辑地址中:页号为4位→0011,页内地址为12位→1100 0010 0000
最后根据页号找到对应的块号:
将页号0011转换成10进制=3,根据题目的条件,页号3对应的块号为6,块号6转换成2进制→0110
所以得出物理地址=块号+页内地址=0110 1100 0010 0000→6C20H
(2)计算十进制使用公式
页号=逻辑地址/页面大小字节=(取整数)
页内地址=逻辑地址%页面大小字节=(取余数)
物理(内存)地址=页号对应块号x页面大小+页内偏移量
页号=7145/2018=3(取整)
页内地址=7145%2018=1001
物理(内存)地址=5×2018+1001=11241
(12)软件项目计划进度安排图(项目活动图)的计算和分析
软件项目计划的一个重要内容是安排进度,常用的方法有Gantt图和PERT图。
- Gantt图用水平条状图描述,它以日历为基准描述项目任务,可以清楚地表示任务的持续时间和任务之间的并行,但是不能清晰地描述各个任务之间的依赖关系。
- PERT图是一种网络模型,描述一个项目的各任务之间的关系。可以明确表达任务之间的依赖关系,即哪些任务完成后才能开始另一些任务,以及如期完成整个工程的关键路径,但是不能清晰地描述各个任务之间的并行关系。
项目活动图(PERT图的两种表示方式)
第1种:活动图详解
第2种:活动图详解
(13)计算彩色图像的数据量
一幅彩色图像(RGB)分辨率为256X512,每一种颜色用8b表示,则该彩色图像的数据量为( ) b。
RGB三原色的图像深度为3,图像的数据量=图像的总像素×图像的深度(b)
题目中图像的总像素为:256×512
图像文件的大小为:256×512×8
图像的数据量为256×512×8×3
(14)计算光盘数量
10000张分辨率为1024X768的真彩(32位)图片刻录到DVD光盘上,假设每张光盘可以存放4GB的信息,则需要( )张光盘。
注意:因为真彩色是32位,需要转换为字节来进行计算,8位为1字节,所以需要除个8
(15)计算真彩色图像的数据量
使用150DPI的扫描分辨率扫描一幅3x4英寸的彩色照片,得到原始的24位真彩色图像的数据量是( ) Byte。
(16)计算路由匹配表项
解析点击
与地址220.112.179.92匹配的路由表的表项是()。
A 220.112.145.32/22
B 220.112.145.64/22
C 220.112.147.64/22
D 220.112.177.64/22
地址220.112.179.92转换成二进制是:1101 1100 0111 0000 1011 0011 0101 1100
根据选项,要求是22位网络号,也就是说1101 1100 0111 0000 1011 0011 0101 1100加粗部分的22位网络号是固定不变的,剩下的10位是主机号。
也就是说斜线记法的地址是在1101 1100 0111 0000 1011 0000 0000 0000(220.112.176.0/22)~ 1101 1100 0111 0000 1011 0011 1111 1111(220.112.179.255/22)范围内,就D符合条件。
以220.112.177.64/22为例,先转换成二进制1101 1100 0111 0000 1011 0001 0100 0000
CIDR地址块的范围是1101 1100 0111 0000 1011 0000 0000 0000(220.112.176.0/22)~ 1101 1100 0111 0000 1011 0011 1111 1111(220.112.179.255/22),同样220.112.179.92也在范围内。
(17)计算主机地址
选择题IP地址块222.125.80.128/26包含了( )个可用主机地址,其中最小地址是( )最大地址是( )。
(18)计算网络地址和子网
A类网络是很大的网络,每个A类网络中可以有( )个网络地址。实际使用中必须把A类网络划分为子网,如果指定的子网掩码为255.255.192.0,则该网络被划分为() 个子网。.
注意:通过主机号位数计算网络地址数量
(19)网络配置判断
下图有:2个广播域和5个冲突域
(20)判断源ip地址
(21)计算主机地址
IP地址块155.32.80.192/26包含了( )个主机地址
- 155.32.80.192/26包含了6位主机地址,所以包含的主机地址为2的6次方-2=62
(22) 故障判断
(23)数据库分析
依赖关系
【解析】
本题根据函数依赖,首先找到入度为0的属性集合A,又根据A-→BC,这里根据amstrong公理中的分解规则,可以得到A-→B, A→C,同时存在B-→D,此时有传递函数依赖A-→D,可”以通过A遍历全图。
自然连接(将重复的属性列去掉)
- R1 ><R2为自然联接,自然联接是种特殊的等值联接,它要求两个关系中进行比较的分量必须是相同的属性,并且在结果集中将重复属性列去掉,R2.C和R2.D去掉,故结果为6元关系
- 第二问解析:
(24)使用TCP和UDP的协议及端口号
(25)内存编址
【解析】
(1)首先计算地址存储单元个数:地址从A0000H到CFFFFH
存储单元个数共有CFFFFH+1-A0000H=30000H,30000H转成10进制=3*16^4个;
然后根据题意知道存储单元大小:按字节编址,即每个存储单元存放1个字节,也就是1B;
所以:该存储区域总容量=存储单元个数*存储单元内容=3*16^4*1B=3*216B=192KB。
(2)用存储容量为64K*8bit的存储芯片构成,,即单位芯片容量为64K*8bit
总容量=单位芯片容量*片数
所以:片数=总容量/单位芯片容量=192KB/64K*8bit=3(片)
(26)流水线计算
(1)
【解析】
流水线周期等于执行时间最长的一段:故题中的流水线周期为5△t
流水线执行时间=一条执行指令+(指令条数-1)×流水线周期
=2+3+5+(500-1)×5=2505
(27)PV分析
PV进程管理分析
PV
(1)
【解析】
(28)识别路由器地址匹配
【解析】
答案解析
地址220.112.179.92转换成二进制是:1101 1100 0111 0000 1011 0011 0101 1100
根据选项,要求是22位网络号,也就是说1101 1100 0111 0000 1011 0011 0101 1100加粗部分的22位网络号是固定不变的,剩下的10位是主机号。
也就是说斜线记法的地址是在1101 1100 0111 0000 1011 00 00 0000 0000(220.112.176.0/22)~ 1101 1100 0111 0000 1011 00 11 1111 1111(220.112.179.255/22)范围内,就D符合条件。
以220.112.177.64/22为例,先转换成二进制1101 1100 0111 0000 1011 0001 0100 0000
CIDR地址块的范围是1101 1100 0111 0000 1011 0000 0000 0000(220.112.176.0/22)~ 1101 1100 0111 0000 1011 0011 1111 1111(220.112.179.255/22),同样220.112.179.92也在范围内。
(29)有向图的邻接矩阵
【详解】
有n个结点就有n*n矩阵,如下图案例所示:
根据邻接表的定义,一个顶点的表结点个数为其邻接顶点的个数,所以上图中,顶点2箭头指向的邻接顶点有2个邻接顶点,顶点3有2个邻接顶点
(30)IPV6和IPV4
IPv4用32位二进制表示,能够表示的地址空间是2^32
IPv6用128位二进制表示,能够表示的地址空间是2^128,
IPV6的地址空间是IPV4的2^128 /2^32=2^96倍
(31)串联与并联
3个部件串联的可靠度为R*R*R;
3个部件并联的可靠度为1- (1-R) * (1-R) *(1-R)
前两个部件并联后与第三个部件串联的可靠度为(1- (1-R)。* (1-R) ) *R;
(32)线性探测法解决冲突
构造的哈希表为:
【解析】
此时的关键码65的10号单元已经被10占据,
所以进行线性再散列,H=(H(key)+di)% m ,其中的di=1,2,3,4…,所以H1=(10+1)%11=0,
(33)函数调用(传值和传址)
【解析】
传址调用(引用调用):会改变实参的值。对于实参a,传递给g(a)之后,在g(a)函数,表现为
形参x。根据g(x)代码: m=5*2=10, x=10-1=9, 返回值x+m=19;返回代码,此时a (即g(x)中的x)的值已经改变为9; c等于g(a)的返回值,也就是19。最终可得f()函数值的返回值a+c=28。
(34)海明码校验
n表示:原数据位数
k表示:校验位数
【例题】
【解析】
(1)根据海明码公式:2^k>=n+k+1,即2^k>=33+k,求得k=6
(2)由(1)求得校验位为6,
且校验位用Pj(j从1开始)表示故 2^0 2^1 2^2 2^3 2^4 2^5 校验码的位置分别为1,2,4,8,16,32
分别放在 p1 p2 p3 p4 p5 p6
信息码为 3,5,6,7,9,10,11,12,13,14,15,17.......
分别放在 D0 D1 D2 D3 D4 D5 D6.......
故D5对应的信息码为10,10=2^3+2^1,即用P4和P2进行校验
(35)构造判定表
【解析】
将操作相同的结果合并,故组合最少是3种。
(36)循环队列
排除法:
改变序列,重新代入计算
下午题
下午题分析
直接插入排序
希尔排序
简单选择排序
折半查找(二分查找)
非递归
递归
版权声明:本文标题:软考题型记录 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1728335687a1154752.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论