中级软件设计师上午试题分类模拟16有答案
- 格式:docx
- 大小:850.39 KB
- 文档页数:46
软件水平考试(中级)软件设计师上午(基础知识)历年真题试卷汇编16(题后含答案及解析)题型有:1. 选择题选择题(每小题1分,共75分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。
1.(44)设计模式定义一系列算法,把它们一个个封装起来,并且使它们可相互替换。
这一模式使得算法可独立于它的客户而变化。
A.策略(Strategy)B.抽象工厂(AbstractFactory)C.观察者(Visitor)D.状态(State)正确答案:A解析:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。
策略模式让算法独立于使用它的客户而独立变化;抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态;观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。
这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。
状态设计模式允许一个对象在其内部状态改变时改变它的行为。
对象看起来似乎修改了它的类。
所以本题答案为A。
知识模块:面向对象技术2.在发布一订阅(Publish—Subscribe)消息模型中,订阅者订阅一个主题后,当该主题有新消息到达时,所有订阅者都会收到通知。
(45)设计模式最适合这一模型。
(45)A.适配器(Adapter)B.通知(Notitier)C.状态(State)D.观察者(Observer)正确答案:C解析:适配器设计模式是将一个类的接口转换成客户希望的另外一个接口;通知是一个对象对多个对象的同步操作;观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。
这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。
状态设计模式允许一个对象在其内部状态改变时改变它的行为。
对象看起来似乎修改了它的类。
依题意可知答案选C。
2019年上半年软件设计师真题+答案(上午)1.计算机执行指令的过程中,需要由()产生每条指令的操作信号并将信号送往相应的部件进行处理,以完成指定的操作。
A.CPU的控制器B.CPU的运算器C. DM A控制器D.Cache控制器2.DMA控制方式是在()之间直接建立数据通路进行数据的交换处理。
A.CPU与主存B.CPU与外设C.主存与外设D.外设与外设3.CPU访问存储器时,被访问数据一般聚集在一个较小的连续存储区域中。
若一个存储单元已被访问,则其邻近的存储单元有可能还要被访问,该特性被称为()A.数据局部性B.指令局部性C.空间局部性D.时间局部性4.某系统由3个部件构成,每个部件的干小时可靠度都为R,该系统的干小时可靠度为(1-(1-R)2)R,则该系统的构成方式是()。
A.3个部件串联B.3个部件并联C.前两个部件并联后与第三个部件串联D.第一个部件与后两个部件并联构成的子系统串联5.在()校验方法中,采用模2运算来构造校验位。
A.水平奇偶B.垂直奇偶C.海明码D.循环冗余6.以下关于RISC (精简指令系统计算机)技术的叙述中,错误的是()。
A.指令长度固定、指令种类尽量少B.指令功能强大、寻址方式复杂多样C.增加寄存器数目以减少访存次数D.用硬布线电路实现指令解码,快速完成指令译码7.()防火墙是内部网和外部网的隔离点,它可对应用层的通信数据流进行监控和过滤。
A.包过滤B.应用级网关D.WEB8.下述协议中与安全电子邮箱服务无关的是()。
A.SSLB.HTTPSC.MIMED.PGP9・10.用户A和B要进行安全通信,通信过程需确认双方身份和消息不可否认。
A和B 通信时可使用()来对用户的身份进行认证;使用()确保消息不可否认。
A.数字证书B.消息加密C.用户私钥D.数字签名A.数字证书B.消息加密C.用户私钥D.数字签名11.震网(Stuxnet)病毒是一种破坏工业基础设施的恶意代码,利用系统漏洞攻击工业控制系统,是一种危害性极大的()。
中级软件设计师上午2016上半年及答案解析(1/75)选择题第1题VLIW是()的简称。
A.复杂指令系统计算机B.超大规模集成电路C.单指令流多数据流D.超长指令字下一题(2/75)选择题第2题主存与Cache的地址映射方式中,()方式可以实现主存任意一块装入Cache中任意位置,只有装满才需要替换。
A.全相联B.直接映射C.组相联D.串并联上一题下一题(3/75)选择题第3题如果“2x”的补码是“90H”,那么x的真值是()。
A.72B.-56C.56D.111上一题下一题(4/75)选择题第4题移位指令中的()指令的操作结果相当于对操作数进行乘2操作。
A.算术左移B.逻辑右移C.算术右移D.带进位循环左移上一题下一题(5/75)选择题第5题内存按字节编址,从A1000H到B13FFH的区域的存储容量为()KB。
A.32B.34C.65D.67上一题下一题(6/75)选择题第6题以下关于总线的叙述中,不正确的是()。
A.并行总线适合近距离高速数据传输B.串行总线适合长距离数据传输C.单总线结构在一个总线上适应不同种类的设备,设计简单且性能很高D.专用总线在设计上可以与连接设备实现最佳匹配上一题下一题(7/75)选择题第7题以下关于网络层次与主要设备对应关系的叙述中,配对正确的是()。
A.网络层——集线器B.数据链路层——网桥C.传输层——路由器D.会话层——防火墙上一题下一题(8/75)选择题第8题传输经过SSL加密的网页所采用的协议是()。
A.HTTPB.HTTPSC.S-HTTPD.HTTP-S上一题下一题(9/75)选择题第9题为了攻击远程主机,通常利用()技术检测远程主机状态。
A.病毒查杀B.端口扫描C.QQ聊天D.身份认证上一题下一题(10/75)选择题第10题某软件公司参与开发管理系统软件的程序员张某,辞职到另一公司任职,于是该项目负责人将该管理系统软件上开发者的署名更改为李某(接张某工作)。
第1题单选题一个程序根据输入的年份和月份计算该年中该月的天数,输入参数包括年份(正整数)、月份(用1~12表示)。
若用等价类划分测试方法进行测试,则()不是一个合适的测试用例(分号后表示测试的输出)。
A.(2013,1,31)B.(0,1,‘错误’)C.(0,13,‘错误’)D.(2001,-1,‘错误’)【解析】正确答案:C。
测试用例编写一般原则:1、设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;2、设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。
在本题中,C选项同时覆盖了两个无效等价类,所以不符合测试用例编写的一般原则。
第2题单选题下面关于栈和队列的叙述,错误的是()。
A.栈和队列都是操作受限的线性表B.队列采用单循环链表存储时,只需设置队尾指针就可使入队和出队操作的时间复杂度都为O(1)C.若队列的数据规模n可以确定,则采用顺序存储结构比链式存储结构效率更高D.利用两个栈可以模拟一个队列的操作,反之亦可【解析】正确答案:D。
第3题单选题若关系R、S如下图所示,则关系代数表达式π1,3,7 (σ3<6(R×S))与()等价。
A.π A,C,E(σ C<D (R×S))B. π A,R.C,E (σ R.C <S.D (R×S))C.πA,S.C,S.E(σR.C <S.D(R×S))D. πR.A,R.C,R.E(σR.C <S.D(R×S))【解析】正确答案:B。
本题考查关系代数运算方面的基础知识。
本题要求关系代数表达式π1,3,7 (σ3<6(R×S))的结果集,其中,R×S的属性列名分别为:R.A,R.B, R.C,R.D,S.C, S.D和S.E ,其结果如下表所示:σ3<6 (R×S)的含义是从R×S结果集中选取第个分量(R.C),小于第六个分量(S.D )的元组,故σ3<6 (R×S)与σ R.C<S.D (R×S)等价。
软件设计中级试题及答案一、单项选择题(每题2分,共20分)1. 在软件设计中,模块化的主要目的是()。
A. 减少程序的复杂性B. 提高程序的运行速度C. 增加程序的可读性D. 减少程序的存储空间答案:A2. 面向对象设计中,封装的目的是()。
A. 隐藏对象的实现细节B. 提高程序的运行速度C. 增加程序的可读性D. 减少程序的存储空间答案:A3. 在软件工程中,迭代开发模式的主要优点是()。
A. 减少开发时间B. 减少开发成本C. 提高开发效率D. 快速响应需求变化答案:D4. 在软件设计中,下列哪一项不是软件需求分析的任务?()A. 确定软件系统的功能B. 确定软件系统的非功能需求C. 编写软件的详细设计文档D. 确定软件系统的性能需求答案:C5. 在软件开发过程中,下列哪一项不是软件测试的目的?()A. 验证软件的功能是否符合需求B. 验证软件的性能是否符合要求C. 编写软件的详细设计文档D. 验证软件的可靠性和稳定性答案:C6. 在软件设计中,下列哪一项不是软件架构设计的任务?()A. 确定系统的高层结构B. 定义系统组件及其相互关系C. 编写系统的具体实现代码D. 确定系统的技术选型答案:C7. 在敏捷开发中,Scrum框架的核心是()。
A. 迭代和增量开发B. 持续集成C. 持续部署D. 持续测试答案:A8. 在软件设计中,下列哪一项不是软件重构的目的?()A. 提高代码的可读性B. 提高代码的可维护性C. 增加程序的运行速度D. 减少程序的存储空间答案:C9. 在软件工程中,下列哪一项不是软件维护的任务?()A. 修正软件中的错误B. 改进软件的性能C. 增加新的功能D. 编写软件的详细设计文档答案:D10. 在软件设计中,下列哪一项不是软件设计模式的作用?()A. 提高代码的复用性B. 提高代码的可读性C. 减少程序的存储空间D. 提高代码的可维护性答案:C二、多项选择题(每题3分,共15分)1. 在软件设计中,下列哪些因素会影响模块化设计?()A. 模块的独立性B. 模块的大小C. 模块的复杂性D. 模块的可测试性答案:ABCD2. 在面向对象设计中,下列哪些特性是面向对象语言所具有的?()A. 封装B. 继承C. 多态D. 抽象答案:ABCD3. 在软件工程中,下列哪些活动属于软件需求分析阶段?()A. 需求收集B. 需求分析C. 需求验证D. 需求规格说明答案:ABCD4. 在软件开发过程中,下列哪些活动属于软件测试阶段?()A. 单元测试B. 集成测试C. 系统测试D. 验收测试答案:ABCD5. 在软件设计中,下列哪些因素会影响软件架构设计?()A. 系统的功能需求B. 系统的非功能需求C. 系统的技术选型D. 系统的预算限制答案:ABCD三、简答题(每题5分,共20分)1. 请简述软件设计中的模块化设计原则。
●浮点数的表示分为阶和尾数 两部分..两个浮点数相加时;需要先对阶;即1n 为阶差的绝对值1A 将大阶向小阶对齐;同时将尾数左移n 位 B 将大阶向小阶对齐;同时将尾数右移n 位 C 将小阶向大阶对齐;同时将尾数左移n 位D 将小阶向大阶对齐;同时将尾数右移n 位●计算机运行工程中;遇到突发事件;要求CPU 暂时停止正在运行的程序;转去为突发事件服务;服务完毕;再自动返回原程序继续执行;这个过程称为2;其处理过程中保存现场的目的是3.. 2A 阻塞B 中断C 动态绑定D 静态绑定3A 防止丢失数据B 防止对其他部件造成影响C 返回去继续执行原程序D 为中断处理程序提供数据●海明码是一种纠错码;其方法是为需要校验的数据位增加若干校验位;使得校验位的值决定于某些被校位的数据;当被校数据出错时;可根据校验位的值的变化找到出错位;从而纠正错误..对于32位的数据;至少需要增加4个校验位才能构成海明码..以10位数据为例;其海明码表示为D 9D 8D 7D 6D 5D 4 P 4D 3D 2D 1P 3D 0P 2P 1中;其中;D i 0≤i ≤9表示数据位;P j 1≤j ≤4表示校验位;数据位D 9由P 4 P 3 和P 2进行校验从右至左D 9的位序为14;即等于8+4+2;因此用第8位的P 4 第4位的P 3和第二位的P 2校验数据位D 5由5进行校验 4A 3 B 4C 5D 65A P 4 P 1B P 4 P 2C P 4 P 3 P 1D P 3 P 2 P 1●流水线的吞吐率是指单位时间流水线处理任务数;如果个段流水的操作时间不同;则流水线的吞吐率是6的倒数..6A最短流水段操作时间B各段流水的操作时间之和B 最长流水段操作时间D流水段数乘以最长流水段操作时间●网络管理员通过命令行方式对路由器进行管理;需要确保ID;口令和会话内容的保密性;应采取的访问方式是77A 控制台 B AUX C TELENT D SSH●在安全通信中;S将所发送的信息使用8进行数字签名;T收到该消息后可利用9验证该消息的真实性..8A. S的公钥 B.S的私钥 C.T的公钥 D.T的私钥9A. S的公钥 B.S的私钥 C.T的公钥 D.T的私钥●在网络安全管理中;加强内务内控可采取的策略有10①控制终端接入数量②终端访问授权;防止合法终端越权访问③加强终端的安全检查与策略管理④加强员工上网行为管理与违规审计10A. ②③B. ②④ C. ①②③④ D. ②③④●攻击者通过发送一个目的主机已经接受过的报文来达到攻击目的;这种攻击方式属于11攻击11A.重放 B.拒绝服务 C.数据截获 D.数据流分析●以下关于计算机软件着作权的叙述中;正确的是1212A.非法进行拷贝;发布或更改软件的人被称为软件盗版者B.计算机软件保护条例是国家知识产权局颁布的;用来保护软件着作权人的权益C. 软件着作权属于软件开发者;软件着作权自软件开发完成之日起产生D. 用户购买了具有版权的软件;则具有对该软件的使用权和复制权●王某是某公司的软件设计师;完成某项软件开发后按公司规定进行软件归档..以下有关该软件的着作权的叙述中; 正确的是1313A.着作权应由公司和王某共同享有 B.着作权应由公司享有C.着作权应由王某享有D.除了署名权以外;着作权的其它权利由王某享有●着作权中;14的保护期不受限制..14A.发表权 B.发行权 C.署名权 D.展览权●数据字典是结构化分析的一个重要输出..数据字典的条目不包括1515A.外部实体 B.数据流 C.数据项 D.基本加工●某商店业务处理系统中;基本加工“检查订货单”的描述为:如定货单金额大于5000元;且欠款时间超过60天;则不予批准了;如订货单金额大于5000元;且欠款时间不超过60天;则发出批准书和发货单;如订货单金额小于或等于5000元;则发出批准书和发货单;如欠款时间超过60天;则还要发催款通知书..现采用决策表表示该基本加工;则条件取值的组合数最少是16 16A.2 B.3 C.4 D.5●某软件项目的活动图如下图所示..其中顶点表示项目里程碑;连接顶点的边表示包含的活动;边上的数字表示活动的持续天数;则完成该项目的最少时间是17天..活动EH和IJ的松弛时间分别是18天17A.17 B.19 C.20 D.2218A.3和3 B.3和6 C.5和3 D.5和6●工作量估计模型COCOMO II的层次结构中;估算选择不包括1919A.对象点 B.功能点 C.用例数 D.源代码行●20是一种函数式编程语言..20A.Lisp B.Prolog C.Python D.Java/C++●将高级语言源程序翻译为可在计算机上执行的形式有多种不同的方式;其中;2121A.编译方式和解释方式都生成逻辑上与源程序等价的目标程序B. 编译方式和解释方式都不生成逻辑上与源程序等价的目标程序C.编译方式生成逻辑上与源程序等价的目标程序;解释方式不生成D.解释方式生成逻辑上与源程序等价的目标程序;编译方式不生成●对于后缀表达式abc-+d其中;-;+;表示二元算术运算减;加;乘;与该后缀式等价的语法树为22●假设铁路自动售票系统有n个售票终端;该系统为每个售票终端创建一个进程P i i=1;2;...;n管理车票销售进程..假设T j j=1;2;...;m单位存放某日某趟车的车票剩余票数;Temp为P i进程的临时工作单元;x为某用户的购票张数..P i进程的工作流程如下图所示;用P操作和V操作实现进程间的同步与互斥..初始化时系统应将信号量S赋值为23..图中abc处应分别填入24..23A.n-1 B.0 C.1 D.224A.VS;P S和 S B. PS;PS和V S C.V S;VS和P S D.PS;VS和V S●若系统在将25文件修改的结果写回磁盘时发生奔溃;则对系统的影响相对较大..25A.目录 B.空闲块 C.用户程序 D.用户数据●I/O设备管理软件一般分为4个层次;如下图所示..图中①②③分别对应2626A.设备驱动程序;虚设备管理;与设备无关的系统软件B. 设备驱动程序;与设备无关的系统软件;虚设备管理C. 与设备无关的系统软件;中断处理程序;设备驱动程序D. 与设备无关的系统软件;设备驱动程序;中断处理程序●若某文件系统的目录结构如下图所示;假设用户要访问文件rw.dll;且当前工作目录为swtools;则该文件的全文件名为27;相对路径和绝对路径分别为28..27A. rw.dll B.flash/rw.dll C./swtools/flash/rw.dllD./Programe file/Skey/rw.dll28A. /swtools/flash/和/flash/ B. flash/和/swtools/flash/C. /swtools/flash/和flash/D. /flash/和/swtools/flash/●以下关于增量模型的叙述中;不正确的是2929A.容易理解;管理成本低B.核心的产品往往首先开发;因此经历最充分的“测试”C.第一个可交付版本所需要的成本低;时间少D.即使一开始用户需求不清晰;对开发进度和质量也没有影响●能力成熟模型集成CMMI是若干过程模型的综合和改进..连续式模型和阶段式模型是CMMI提供的两种表示方法..连续式模型包括6个过程域能力等级Capability Level;CL其中30的共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品;以实现支持过程域的特定目标.. 30A.CL1已执行的 B.CL2已管理的C.CL3已定义的D.CL4定量管理的●软件维护工具不包括31工具31A.版本控制 B.配置管理 C.文档分析 D.逆向工程●概要设计文档的内容不包括3232A.体系结构设计 B.数据库设计 C.模块内算法设计 D.逻辑数据结构设计●耦合是模块之间的相对独立性互相连接点紧密程度的度量..耦合程度不取决于3333A.调用模块的方式 B.各个模块之间接口的复杂程度C.通过接口的信息类型D.模块提供的功能数●对下图所示的程序流程图进行判断覆盖测试;则至少需要34个测试用例..采用McCabe度量法计算器环路复杂度为35..34A.2 B.3 C.4 D.535A.2 B.3 C.4 D.5●软件调试的任务就是根据测试时所发现的错误;找出原因和具体的位置;进行改正..其常用的方法中;36是指从测试所暴露的问题出发;收集所有正确或不正确的数据;分析他们之间的关系;提出假想的错误原因;用这些数据来证明或反驳;从而查出错误所在..36A.试探法 B.回溯法 C.归纳法 D.演绎法●对象的37标识了该对象的所有属性通常是静态的以及每个属性的当前值通常是动态的..37A.状态 B.唯一ID C.行为 D.语义●在下列机制中;38是指过程调用和响应所需执行的代码在运行时加以结合;而39是过程调用和响应调用所需执行的代码在编译时加以结合..38A.消息传递 B.类型检查 C.静态绑定 D.动态绑定39A.消息传递 B.类型检查 C.静态绑定 D.动态绑定●同一消息可以调用多种不同种类的对象的方法;这些类有某个相同的超类;这种现象是4040A.类型转换 B.映射 C.单态 D.多态●如下所示的图为UML的41;用于展示某汽车导航系统中42..Mapping对象获取汽车当前位置GPS Location的消息为4341A.类图 B.组件图 C.通信图 D.部署图42A.对象之间的消息流及其顺序 B.完成任务所进行的活动流C.对象的状态转换及其事件顺序D.对象之间信息的时间顺序43A.1:getGraphic B.2:getCarPos●假设现在要创建一个Web应用框架;基于此框架能创建不同的具体Web 应用;比如博客;新闻网站和网上商店等;并可以为每个Web应用创建不同的主题样式;比如浅色或深色等..这一业务需求的类图设计适合采用44模式如下图所示..其中45是客户程序使用的主要接口;维护队主题类型的应用..此模式为46;提现的最主要的意图是47..44A.观察者Observer B.访问者Visitor C.策略Strategy D.桥接Bridge45A.WebApplication B.Blog C.Theme D.Light 46A.创建型对象模式 B.结构型对象模式 C.行为型类模式 D.行为型对象模式47A.将抽象部分与其实现部分分离;使它们都可以独立地变化B.动态地给一个对象添加一些额外的职责C.为其他对象提供一种代理以控制对这个对象的访问D.将一个类的接口转换成客户希望的另一个接口●下图所示为一个不确定有限自动机NFA的状态装换图..该NFA识别的字符串集合可用正规式48描述..48A.aba B.aba C.aba D.aba●简单算术表达式的结构可以用下面的上下文无关文法进行描述E为开始符号;49是符合该文法的句子..49A.2--34 B.2+-34 C.2+34 D.24-3●语法制导翻译是一种50方法..50A.动态语义分析 B.中间代码优化 C.静态语义分析 D.目标代码优化●给定关系模式R<U;F>;其中U为属性集;F是U上的一组函数依赖;那么Armstrong公理系统的伪传递规律是指51..51A.若X→Y;X→Z;则X→YZ为F所蕴含B. 若X→Y;WY→Z;则XW→Z为F所蕴含C. 若X→Y;Y→Z为F所蕴含;则X→Z为F所蕴含D. 若X→Y为F所蕴含;且;则XZ→YZ为F所蕴含●给定关系RA;B;C;D;E与SB;C;F;G;那么与表达式π2;4;6;7σ2<7R S等价的SQL语句如下:S ELECT 52FROM R;S WHERE53●给定教师关系TeacherT_no;T_name;Dept_name;Tel;其中属性T_no;T_name;Dept_name和Tel的含义分别为教师号;教师姓名;学院名和电话号码..用SQL创建一个“给定学院名求该学院的教师数”的函数如下:Create function Dept_countDept_name varchar2054begin55select count into d_countfrom Teacherwhere Teacher.Dept_name=Dept_namereturn d_countend54A.returns integer B.returns d_count integer C.declare integer D.declare d_count integer55A.returns integer B.returns d_count integer C.declare integer D.declare d_count integer●某集团公司下属有多个超市;每个超市的所有销售数据最终要存入公司的数据仓库中..假设该公司高管需要从时间;地区和商品种类三个维度来分析某家店商品的销售数据;那么最适合采用56来完成..56A.Data Extraction B.OLAP C.OLTP D.ETL●队列的特点是先进先出;若用循环单链表表示队列;则5757A.入队列和出队列操作都不需要遍历链表B. 入队列和出队列操作都需要遍历链表C. 入队列操作需要遍历链表而出队列操作不需要D. 入队列操作不需要遍历链表而出队列操作需要●设有n阶三对角矩阵A;即非0元素都位于主对角线以及与主对角线平行且紧邻的两条对角线上;现对该矩阵进行按行压缩存储;若其压缩空间用数组B表示;A的元素下标从0开始;B的元素下标从1开始..已知A0;0存储在B1;An-1;n-1存储在B3n-2;那么非0元素Ai;j0≤i﹤n;0≤j﹤n;|i-j|≤1存储在B58..58A.2i+j-1 B.2i+j C.2i+j+1 D.3i-j+1●对下面的二叉树进行顺序存储用数组MEM表示;已知结点A;B;C在MEM 中对应元素的下标分别为1;2;3;那么结点D;E;F对应的数组元素下标为5959A.4;5;6 B.4;7;10 C.6;7;8 D.6;7;14●用哈希表存储元素时;需要进行冲突碰撞处理;冲突是指6060A.关键字被依次映射到地址编号连续的存储位置B.关键字不同的元素被映射到相同的存储位置C.关键字相同的元素被映射到不同的存储位置D.关键字被映射到哈希表之外的位置●对有n 个结点;e 条边且采用数组表示法即领接矩阵存储的无向图进行深度优先遍历;时间复杂度为6161A.On 2 B. Oe 2 C. On+e D. One●现需要申请一些场地举办一批活动;每个活动有开始时间和结束时间..在同一个场地;如果一个活动结束之前;另一个活动开始;即两个活动冲突..若活动A 从1时间开始;5时间结束;活动B 从5时间开始;8时间结束;则活动A 和B 不冲突..现要计算n 个活动需要的最少场地数..求解该问题的基本思路如下假设需要场地数为m;活动数为n;场地集合为P 1;P 2;...;P m ;初始条件P i 均无活动安排:1采用快速排序算法对n 个活动的开始时间从小到大排序;得到活动a 1;a 2;...;a n ..对每个活动a i ;i 从1到n;重复步骤2;3;4;2从P 1开始;判断a i 与P 1的最后一个活动是否冲突;若冲突;考虑下一个场地P 2;...;3一旦发现a i 与某个P j 的最后一个活动不冲突;则将a i 安排到P j ;考虑下一个活动;4若a i 与所有已安排活动的P j 的最后一个活动均冲突;则将a i 安排到一个新的场地;考虑下一个活动;5将n 减去没有安排活动的场地数即可得到所用的最少场地数.. 算法首先采用快速排序算法进行排序;其算法设计策略是62;后面步骤采用的算法设计策略是63..整个算法的时间复杂度是64..下表给出了n=11的活动集合;根据上述算法;得到最少的场地数为65..62A.分治 B.动态规划 C.贪心 D.回溯63A.分治 B.动态规划 C.贪心 D.回溯64A. Θlgn B. Θn C. Θnlgn D. Θn265A.4 B.5 C.6 D.7●下列网络互连设备中;属于物理层的是66..66A.交换机 B.中继器 C.路由器 D.网桥●在地址中;表示67;welcome.html表示68..67A.协议类型 B.主机域名 C.网页文件名 D.路径68A.协议类型 B.主机域名 C.网页文件名 D.路径●在Linux中;要更正一个文件的权限设置可使用69命令..69A.attrib B.modify C.chmod D.change●主域名服务器在接收到域名请求后;首先查询的是70..70A.本地hosts B.转发域名服务器 C.本地缓存D授权域名服务器.●Creating a clear map of where the project is going is an important first step. It lets you identify risks; clarify objectives; an determine if the project even makes sense. The only thing more important than the Release Plan is not to take it too seriously.Release planning is creating a game plan for your Web project 71what you think you want your Web site to be. The plan is guide for the content; design elements; and functionality of a Web site to be released to the public; to partners; or internally. It also 72how long the project will take and how much it will cost. Whatthe plan is not is a functional 73that defines the project in detail or that produces a budget you can take to the bank.Basically you use a Release Plan to do an initial sanity check of the project's 74and worthiness. Release Plans are useful road maps; but don't think of them as guides to the interstate road system. Instead; think of them as the 75used by early explorers-half rumor and guess and half hope and expectation.It's always a good idea to have a map of where a project is headed.71A. constructing B. designing C. implementing D. outlining72A. defines B. calculates C. estimates D. knows73A. specification B. structure C. requirement D. implementation74A. correctness B. modifiability C. feasibility D. traceability75A. navigators B. maps C. guidances D. goals答案解析:1 D 对阶是指将两个进行运算的浮点数阶码对齐的操作..对阶的目的是为使两个浮点数的尾数能够进行加减运算..首先求出两浮点数阶码的差;即n;将小阶码加上n;使之与大阶码相等;同时将小阶码对应的浮点数的尾数右移相应的位数n;以保证该浮点数的值不变..2—3B C阻塞:一般是指线程阻塞;线程在运行的过程中因为某些原因而发生阻塞;阻塞状态的线程的特点是:该线程放弃CPU的使用;暂停运行;只有等到导致阻塞的原因消除之后才回复运行..或者是被其他的线程中断;该线程也会退出阻塞状态;同时抛出InterruptedException..中断:处理机处理程序运行中出现的紧急事件的整个过程.程序运行过程中;系统外部、系统内部或者现行程序本身若出现紧急事件;处理机立即中止现行程序的运行;自动转入相应的处理程序中断服务程序;待处理完后;再返回原来的程序运行;这整个过程称为程序中断;当处理机接受中断时;只需暂停一个或几个周期而不执行处理程序的中断;称为简单中断.中断又可分为屏蔽中断和非屏蔽中断两类..把一个方法与其所在的类/对象关联起来叫做方法的绑定..绑定分为静态绑定前期绑定和动态绑定后期绑定..静态绑定前期绑定是指在程序运行前就已经知道方法是属于那个类的;在编译的时候就可以连接到类的中;定位到这个方法..动态绑定后期绑定是指在程序运行过程中;根据具体的实例对象才能具体确定是哪个方法..静态绑定发生于数据结构和数据结构间;程序执行之前..静态绑定发生于编译期;因此不能利用任何运行期的信息..它针对函数调用与函数的主体;或变量与内存中的区块..动态绑定则针对运行期产生的访问请求;只用到运行期的可用信息..在面向对象的代码中;动态绑定意味着决定哪个方法被调用或哪个属性被访问;将基于这个类本身而不基于访问范围..中断保存现场:指的是进入中断服务程序或子程序后;由于寄存器有限;主程序和中断服务程序或子程序中用到相同的寄存器;所以为防止冲突;在中断服务程序前或在子程序前用进栈指令保护那些可能受到冲突的寄存器;然后在返回前恢复..4-5 D B 汉明码也利用了奇偶位校验的概念;通过在数据位后面增加一些比特;可以验证数据的有效性..利用一个以上的校验位;汉明码不仅可以验证数据是否有效;还能在数据出错的情况下指明错误位置..2P≥P+D+1;其中P代表汉明码的个数;D代表数据位的个数..D=32;所以P=6;奇偶校验是一种添加一个奇偶位用来指示之前的数据中包含有奇数还是偶数个1的检验方式..如果在传输的过程中;有奇数个位发生了改变;那么这个错误将被检测出来注意奇偶位本身也可能改变..一般来说;如果数据中包含有奇数个1的话;则将奇偶位设定为1;反之;如果数据中有偶数个1的话;则将奇偶位设定为0..换句话说;原始数据和奇偶位组成的新数据中;将总共包含偶数个 1. 奇偶校验并不总是有效;如果数据中有偶数个位发生变化;则奇偶位仍将是正确的;因此不能检测出错误..而且;即使奇偶校验检测出了错误;它也不能指出哪一位出现了错误;从而难以进行更正..数据必须整体丢弃并且重新传输..在一个噪音较大的媒介中;成功传输数据可能需要很长时间甚至不可能完成..虽然奇偶校验的效果不佳;但是由于他只需要一位额外的空间开销;因此这是开销最小的检测方式..并且;如果知道了发生错误的位;奇偶校验还可以恢复数据.. 如果一条信息中包含更多用于纠错的位;且通过妥善安排这些纠错位使得不同的出错位产生不同的错误结果;那么我们就可以找出出错位了..在一个7位的信息中;单个数据位出错有7种可能;因此3个错误控制位就足以确定是否出错及哪一位出错了..6 C 当流水线达到稳定时;经过最长流水段操作时间后;会出来一个新的产品..用总产品数除以对应时间..就是吞吐率..7 D AUX接口Auxiliary是指音频输入接口;可以输出包括mp3在内的电子声频设备的音频一般的耳机插孔;可通过车上的音响来输出这些设备内的音乐..Telnet协议是TCP/IP协议族中的一员;是Internet远程登陆服务的标准协议和主要方式..它为用户提供了在本地计算机上完成远程主机工作的能力..在终端使用者的电脑上使用telnet程序;用它连接到服务器..终端使用者可以在telnet程序中输入命令;这些命令会在服务器上运行;就像直接在服务器的控制台上输入一样..可以在本地就能控制服务器..要开始一个telnet会话;必须输入用户名和密码来登录服务器..Telnet是常用的远程控制Web服务器的方法..SSH 为 Secure Shell 的缩写;由 IETF 的网络小组Network Working Group所制定;SSH 为建立在应用层基础上的安全协议..SSH 是目前较可靠;专为远程登录会话和其他网络服务提供安全性的协议..利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题..SSH最初是UNIX系统上的一个程序;后来又迅速扩展到其他操作平台..SSH在正确使用时可弥补网络中的漏洞..SSH客户端适用于多种平台..几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix;以及其他平台;都可运行SSH..8-9 B A 数字签名保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生..数字签名技术是将摘要信息用发送者的私钥加密;与原文一起传送给接收者..接收者只有用发送者的公钥才能解密被加密的摘要信息;然后用HASH函数对收到的原文产生一个摘要信息;与解密的摘要信息对比..如果相同;则说明收到的信息是完整的;在传输过程中没有被修改;否则说明信息被修改过;因此数字签名能够验证信息的完整性..数字签名是个加密的过程;数字签名验证是个解密的过程..10 D 内务内控管理;主要是为了管理内部网络;防止越权访问;以及内部泄露信息..11 A重放攻击Replay Attacks又称重播攻击、回放攻击或新鲜性攻击Freshness Attacks;是指攻击者发送一个目的主机已接收过的包;来达到欺骗系统的目的;主要用于身份认证过程;破坏认证的正确性..它是一种攻击类型;这种攻击会不断恶意或欺诈性地重复一个有效的数据传输;重放攻击可以由发起者;也可以由拦截并重发该数据的敌方进行..攻击者利用网络监听或者其他方式盗取认证凭据;之后再把它重新发给认证服务器..从这个解释上理解;加密可以有效防止会话劫持;但是却防止不了重放攻击..重放攻击任何网络通讯过程中都可能发生..重放攻击是计算机世界黑客常用的攻击方式之一;它的书面定义对不了解密码学的人来说比较抽象..拒绝服务英文名称denial of service;DoS是指通过向服务器发送大量垃圾信息或干扰信息的方式;导致服务器无法向正常用户提供服务的现象..利用域名解析服务器不验证请求源的弱点;攻击者伪装成攻击目标域名向全世界数以百万计的域名解析服务器发送查询请求;域名服务器返回的数据要远大于请求的数据;导致目标遭受了放大数十倍的DDoS攻击..被利用的域名服务器因此每天会收到大量的恶意请求;它也不断的遭受较小规模的DDoS攻击..数据截获;就是通过一个网络设备或软件;窃取通信双方的交流信息..数据流分析;就是对网络中的流量信息等进行检测..12 C 国务院于1991年6月4日发布了计算机软件保护条例..该条例指出:计算机软件是指计算机程序及有关文档..受保护的软件必须由开发者独立开发;即必须具备原创性;同时;必须是已固定在某种有形物体上而非存在于开发者的头脑中..新条例自2002年1月1日起施行..1991年6月4日国务院发布的计算机软件保护条例同时废止..软件开发者的开发者身份权保护期不受限制..软件着作权的其他权利保护期为25年;截止于软件首次发表后第25年的12月31日;保护期满前;软件着作权人可以向软件登记机关申请续展25年;但保护期最长不超过50年..因继承或单位分立、合并等法律行为使着作权人主体发生合法变更时;不改变相应软件着作权的保护期..因依法签订使用权或使用权许可合同而转让有关权利时;转让活动的发生不改变有关软件着作权的保护期..当拥有软件着作权的单位终止或拥有软件着作权的公民死亡而无合。
中级软件设计师上午试题分类模拟16单项选择题1.采用顺序表和单链表存储长度为n的线性序列,根据序号查找元素,其时间复杂度分别为。
A.O(l)、0(1)B.O(l)、0(n)C.O(n)、0(1)D.O(n)、0(n)答案:B[解答]顺序表存储位置是相邻连续的,可以随即访问的一种数据结构,一个顺序表在使用前必须指定起始长度,一旦分配内存,则在使用中不可以动态更改。
它的优点是访问数据比较方便,可以随机访问表中的任何一个数据。
链表是通过指针来描述元素关系的一种数据结构,它可以是物理地址不连续的物理空间。
不能随即访问链表元素,必须从表头开始,一步一步搜索元素。
它的优点是:对于数组,可以动态地改变数据的长度,分配物理空间。
因此两者的查找复杂度就显而易见了O2.设元素序列a、b、c、d、e、f经过初始为空的栈S后,得到出栈序列cedfb a,则栈S的最小容量为。
A3B.4C.5D.6答案:B[解答]此题考查栈的用法,根据题中出栈的顺序,当元素c出栈后,栈中有元素a、b,当元素e出栈之前,栈中有元素a、b、d、e,此时栈中的元素达到最多。
因此栈S最小容量为4。
3.输出受限的双端队列是指元素可以从队列的两端输入、但只能从队列的一端输出,如下图所示。
若有el、e2、e3、e4依此进入输出受限的双端队列,则得不到输出队列OA.e4、e3、e2、elB.e4、e2、el、e3C.e4、e3、el、e2D.e4、e2、e3、el答案:[解答]此题考查队列的性质,队列为先进先出的线性结构,题中给出的受限的双端队列,两端都可以进,而一段可出,假设分a和b端,b端可以进出,由D 选项的出序列,可以看出el、e2、e3按顺序从a端进入,而e4从b端进入,当e4从b端出来之后,无法将后面的e2出队列,故D选项有误。
4.对于一个长度大于1且不存在重复元素的序列,令其所有元素依次通过一个初始为空的队列后,再通过一个初始为空的栈。
设队列和栈的容量都足够大,一个序列通过队列(栈)的含义是序列的每个元素都入队列(栈)且出队列(栈)一次且仅一次。
1、在软件开发过程中,需求分析阶段的主要目的是:A. 确定软件开发的具体技术细节B. 明确软件的功能和性能要求C. 设计软件的系统架构D. 编写软件的详细代码(答案)B2、下列哪种设计模式主要用于创建型问题,通过封装一个对象的创建过程,使得客户端不需要直接实例化对象?A. 单例模式B. 工厂方法模式C. 装饰者模式D. 观察者模式(答案)B3、在数据库设计中,为了保证数据的完整性和一致性,经常需要定义外键。
外键主要用于:A. 确保数据表中每一行数据的唯一性B. 实现数据表之间的关联关系C. 限制数据表中某列数据的取值范围D. 提高数据查询的效率(答案)B4、软件测试中,黑盒测试主要关注:A. 软件的内部结构和实现细节B. 软件的功能是否按照需求规格说明书正确实现C. 软件的代码质量和编程风格D. 软件的性能和资源消耗(答案)B5、在面向对象编程中,继承关系主要体现了:A. 对象之间的相似性和差异性B. 对象之间的整体与部分关系C. 对象之间的消息传递机制D. 对象之间的动态绑定(答案)A6、下列哪种算法常用于解决最短路径问题?A. 深度优先搜索B. 广度优先搜索C. Dijkstra算法D. A算法(虽然A也用于路径搜索,但更通用;此处选最具针对性的)(答案)C7、在软件项目管理中,甘特图主要用于:A. 展示项目进度和任务依赖关系B. 进行项目风险评估C. 制定项目预算D. 跟踪项目变更(答案)A8、关于敏捷开发,以下说法不正确的是:A. 敏捷开发强调快速响应变化B. 敏捷开发鼓励团队成员之间的紧密协作C. 敏捷开发不需要文档和计划D. 敏捷开发注重持续交付和持续改进(答案)C9、在数据库管理系统中,事务的四个特性(ACID)不包括:A. 原子性B. 一致性C. 隔离性D. 实时性(答案)D10、下列哪种工具主要用于软件配置管理,帮助团队跟踪和管理代码变更?A. JIRAB. GitC. JenkinsD. Postman(答案)B。
中级软件设计师上午模拟试题及答案解析(6)(1/75)选择题第1题以比较为基础的排序算法在最坏情况下的计算时间下界为______。
A.O(n)B.O(n2)C.O(log2n)D.O(nlog2n)下一题(2/75)选择题第2题若对27个元素只进行三趟多路归并排序,则选取的归并路数为______。
A.2B.3C.4D.5上一题下一题(3/75)选择题第3题堆是一种数据结构,______是堆。
A.(10,50,80,30,60,20,15,18)B.(10,18,15,20,50,80,30,60)C.(10,15,18,50,80,30,60,20)D.(10,30,60,20,15,18,50,80)上一题下一题(4/75)选择题第4题一个算法是对某类给定问题求解过程的精确描述,算法中描述的操作都可以通过将已经实现的基本操作执行有限次来实现,这句话说明算法具有______特性。
A.有穷性B.可行性C.确定性D.健壮性上一题下一题(5/75)选择题第5题关于算法与数据结构的关系,______是正确的。
A.算法的实现依赖于数据结构的设计B.算法的效率与数据结构无关C.数据结构越复杂,算法的效率越高D.数据结构越简单,算法的效率越高上一题下一题(6/75)选择题第6题下面的程序段违反了算法的______原则。
void sam(){ int n=2;while(!odd(n))n+=2;printf(n);}A.有穷性B.确定性C.可行性D.健壮性上一题下一题(7/75)选择题第7题在字符串的模式匹配过程中,如果模式串的每个字符依次和主串中的一个连续的字符序列相等,则称为匹配成功。
如果不能在主串中找到与模式串相同的子串,则称为匹配失败。
在布鲁特—福斯模式匹配算法(朴素的或基本的模式匹配)中,若主串和模式串的长度分别为n和m(且n远大于m),且恰好在主串末尾的n个字符处匹配成功,则在上述的模式匹配过程中,字符的比较次数最多为______。
中级软件设计师上午试题分类模拟16单项选择题1. 采用顺序表和单链表存储长度为n的线性序列,根据序号查找元素,其时间复杂度分别为______。
A.O(1)、O(1)B.O(1)、O(n)C.O(n)、O(1)D.O(n)、O(n)答案:B[解答] 顺序表存储位置是相邻连续的,可以随即访问的一种数据结构,一个顺序表在使用前必须指定起始长度,一旦分配内存,则在使用中不可以动态更改。
它的优点是访问数据比较方便,可以随机访问表中的任何一个数据。
链表是通过指针来描述元素关系的一种数据结构,它可以是物理地址不连续的物理空间。
不能随即访问链表元素,必须从表头开始,一步一步搜索元素。
它的优点是:对于数组,可以动态地改变数据的长度,分配物理空间。
因此两者的查找复杂度就显而易见了。
2. 设元素序列a、b、c、d、e、f经过初始为空的栈S后,得到出栈序列c e d f b a,则栈S的最小容量为______。
A.3B.4C.5D.6答案:B[解答] 此题考查栈的用法,根据题中出栈的顺序,当元素c出栈后,栈中有元素a、b,当元素e出栈之前,栈中有元素a、b、d、e,此时栈中的元素达到最多。
因此栈S最小容量为4。
3. 输出受限的双端队列是指元素可以从队列的两端输入、但只能从队列的一端输出,如下图所示。
若有e1、e2、e3、e4依此进入输出受限的双端队列,则得不到输出队列______。
A.e4、e3、e2、e1B.e4、e2、e1、e3C.e4、e3、e1、e2D.e4、e2、e3、e1答案:D[解答] 此题考查队列的性质,队列为先进先出的线性结构,题中给出的受限的双端队列,两端都可以进,而一段可出,假设分a和b端,b端可以进出,由D 选项的出序列,可以看出e1、e2、e3按顺序从a端进入,而e4从b端进入,当e4从b端出来之后,无法将后面的e2出队列,故D选项有误。
4. 对于一个长度大于1且不存在重复元素的序列,令其所有元素依次通过一个初始为空的队列后,再通过一个初始为空的栈。
设队列和栈的容量都足够大,一个序列通过队列(栈)的含义是序列的每个元素都入队列(栈)且出队列(栈)一次且仅一次。
对于该序列在上述队列和栈上的操作,正确的是______。
A.出队序列和出栈序列一定相同B.出队序列和出栈序列一定互为逆序C.入队序列和出队序列一定相同,入栈序列和出栈序列不一定相同D.入栈序列和出栈序列一定互为逆序,入队序列和出队序列不一定互为逆序答案:C[解答] 队列具有先进先出的特点,也就是说最先入队的元素最先出队,所以入队序列和出队序列一定相同。
栈则具有先进后出的特点,如果所有元素进栈后再依次出栈,则入栈序列和出栈序列互为逆序,否则不一定。
5. 对于线性表(由n个同类元素构成的线性序列),采用单向循环链表存储的特点之一是______。
A.从表中任意结点出发都能遍历整个链表B.对表中的任意结点可以进行随机访问C.对于表中的任意一个结点,访问其直接前驱和直接后继结点所有时间相同D.第一个结点必须是头结点答案:A[解答] 对于单向循环链表,可以从表中任意结点出发都能遍历整个链表。
但并不能对表中的任意结点进行随机访问,需要从设置的第一个节点开始,沿着指针访问表中的结点。
当然访问某一结点的直接后继结点最快,访问其直接前驱结点最慢,因为首先要遍历到表尾,然后从表头遍历到其前驱结点。
6. 设循环队列Q的定义中有rear和len两个域变量,其中rear表示队尾元素的指针,len表示队列的长度,如下图所示(队列长度为3,队头元素为e)。
设队列的存储空间容量为M,则队头元素的指针为______。
A.(Q.rear+Q.len-1)B.(Q.rear+Q.len-1+M)/MC.(Q.rear-Q.len+1)D.(Q.rear-Q.len+1+M)/M答案:D[解答] 设队列的队头指针为front,front指向队头元素。
队列的存储空间容量为M,说明队列中最多可以有M个元素;队列的长度为len,说明当前队列中有len 个元素。
则有:O.rear=(Q.front+Q.len-1)/MO.front=(Q.rear-Q.len+1+M)/M7. 栈是一种按“后进先出”原则进行插入和删除操作的数据结构,因此,______必须用栈。
A.实现函数或过程的递归调用及返回处理时B.将一个元素序列进行逆置C.链表结点的申请和释放D.可执行程序的装入和卸载答案:A[解答] 栈是一种后进先出的数据结构。
将一个元素序列逆置时,可以使用栈也可以不用。
链表结点的申请和释放次序与应用要求相关,不存在“先申请后释放”的操作要求。
可执行程序的装入与卸载,也不存在“后进先出”的操作要求。
对于函数的递归调用与返回,一定是后被调用执行的先返回。
8. 某双向链表中的结点如下图所示,删除t所指结点的操作为______。
A.t->prior->next=t->next; t->next->prior=t->prior;B.t->prior->prior=t->prior; t->next->next=t->next;C.t->prior->next=t->prior; t->next->prior=t->next;D.t->prior->prior=t->next; t->next->prior=t->prior;答案:A[解答] 本题考查双向链表的基本操作。
双向链表每个数据结点中都有两个指针,分别指向直接后继和直接前驱。
所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。
删除t节点,只需把t原来的前驱的next指向t现在的后继,t原来后继的prior 指向t现在的前驱即可。
9. 单向链表中往往含有一个头结点,该结点不存储数据元素,一般令链表的头指针指向该结点,而该结点指针域的值为第一个元素结点的指针。
以下关于单链表头结点的叙述中,错误的是______。
A.若在头结点中存入链表长度值,则求链表长度运算的时间复杂度为O(1)B.在链表的任何一个元素前后进行插入和删除操作可用一致的方式进行处理C.加入头结点后,代表链表的头指针不因为链表为空而改变D.加入头结点后,在链表中进行查找运算的时间复杂度为O(1)答案:D[解答] 本题考查单链表头结点的相关知识。
A选项:由于在头结点中存入链表长度值,在遍历链表时先从头指针开始,头指针指向头结点,头节点的数据域即为链表长度,故A正确。
B选项:①插入运算是将值为X的新结点插入到表的第i个结点的位置上,即插入到ai-1与ai之间。
因此,必须首先找到ai-1的存储位置P,然后生成一个数据域为x的新结点,并令q指针指向该新结点,新结点的指针域指向结点ai。
从而实现三个结点ai-1、x和ai之间的逻辑关系的变化。
定位ai-1并将指针P指向它,代码如下。
q = new LNode;q->data=x;q->next=p->next;P->next=q;②删除运算是将表的第i个结点删去。
因为在单链表中结点ai的存储地址是在其直接前趋结点ai-1的指针域next中,所以必须首先找到ai-1的存储位置P。
然后令p→next指向ai的直接后继结点,即把ai从链上摘下。
最后释放结点ai 的空间。
代码如下。
r=p->next;P->next=r->next;delete r;故B正确。
C选项:头结点引入,即增加一个表头结点,数据域可根据需要使用或不用。
特点如下。
● 表中第一个结点和在表的其他位置上的操作一致,无须进行特殊处理。
● 无论链表是否为空,其头指针是指向头结点。
因此空表和非空表的处理统一。
故C正确。
D选项:查找过程从开始结点出发,顺着链表逐个将结点的值和给定值key作比较。
算法如下。
LNode *locatenode(head, key){LNode *P;p=head->next;while( P&& p->data!=key)p=p->next;return p;}该算法的执行时间亦与输入实例中的取值key有关,其平均时间复杂度的分析类似于按序号查找。
故D错误。
10. 对于长度为m(m>1)的指定序列,通过初始为空的一个栈、一个队列后,错误的叙述是______。
A.若入栈和入队的序列相同,则出栈序列和出队序列可能相同B.若入栈和入队的序列相同,则出栈序列和出队序列可以互为逆序C.入队序列与出队序列关系为1:1,而入栈序列与出栈序列关系是1:n(n≥1)D.入栈序列与出栈序列关系为1:1,而入队序列与出队序列关系是1:(n≥1)答案:D[解答] 如果入栈和入队的序列相同,则出栈序列和出队序列既可以相同,也可以互为逆序。
例如,设入栈和入队序列为1、2、3。
对于栈来说,如果每次进去一个后就出来,则出栈序列为1、2、3,而出队序列也为1、2、3。
因为栈是“后进先出”的数据结构,而队列是“先进先出”的数据结构,因此二者可互为逆序。
如果入队序列与出队序列关系为1:1,那么由于栈的后进先出的特性,则入栈序列与出栈序列关系是1:n(n≥1)。
比如,abcde入队,它出队只可能是abcde,而入栈abcde,则出栈的序列却不止一种。
所以A、B、C选项都是正确的。
11. 字符串采用链表存储方式时,每个结点存储多个字符有助于提高存储密度。
若采用结点大小相同的链表存储串,则串比较、求子串、串连接、串替换等串的基本运算中,______。
A.进行串的比较运算最不方便B.进行求子串运算最不方便C.进行串连接最不方便D.进行串替换最不方便答案:B[解答] 在用链表作为字符串的存储方式时,如果每个结点存储多个字符,进行串连接、串替换和串的比较等操作时,不会有很大影响,但是在进行子串求解时,因为有可能涉及所求的子串不在一个结点上存储,所以会比较麻烦,因此总的来说,进行求子串时最不方便。
12. 下面关于栈和队列的叙述,错误的是______。
A.栈和队列都是操作受限的线性表B.队列采用单循环链表存储时,只需设置队尾指针就可使入队和出队操作的时间复杂度都为O(1)C.若队列的数据规模n可以确定,则采用顺序存储结构比链式存储结构效率更高D.利用两个栈可以模拟一个队列的操作,反之亦可答案:D[解答] 栈(Stack)是限制在表的一端进行插入和删除运算的线性表,通常称插入、删除的这一端为栈顶(Top),另一端为栈底(Bottom)。
当表中没有元素时称为空栈。
栈的修改是按后进先出的原则进行的,所以,栈称为后进先出(LIFO)的线性表。
队列(Oueue)也是一种运算受限的线性表。
它只允许在表的一端进行插入,而在另一端进行删除。
允许删除的一端称为队头(Front),允许插入的一端称为队尾(Rear)。
先进入队列的成员总是先离开队列。