2022-2023年软考-软件设计师模拟考试题含答案解析第20期.docx

上传人:极速器 文档编号:25873 上传时间:2025-07-08 格式:DOCX 页数:26 大小:1.08MB
下载 相关 举报
2022-2023年软考-软件设计师模拟考试题含答案解析第20期.docx_第1页
第1页 / 共26页
2022-2023年软考-软件设计师模拟考试题含答案解析第20期.docx_第2页
第2页 / 共26页
2022-2023年软考-软件设计师模拟考试题含答案解析第20期.docx_第3页
第3页 / 共26页
2022-2023年软考-软件设计师模拟考试题含答案解析第20期.docx_第4页
第4页 / 共26页
2022-2023年软考-软件设计师模拟考试题含答案解析第20期.docx_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、2022-2023年软考-软件设计师模拟考试题(含答案解析)1. 单选题在Python语言中,()是一种可变的、有序的序列结构,其中元素可以重复。问题1选项A.元组(tuple)B.字符串(str)C.列表(list)D.集合(set)【答案】C【解析】本题考查python语言的用法相关问题。在Python语言中,是一种可变的、有序的序列结构,其中元素可以重复。在python中,元组(tuple)、字符串(str)、集合(set)元素都可以重复。并不能强调是一种可变的、有序的序列结构。而列表(list)是python中最基本的数据结构,是一种有序可重复的集合,可以随时添加和删除其中的元素。2.

2、 单选题下列算法中属于非对称加密算法的是( )。问题1选项A.DESB.RSAC.AESD.MD5【答案】B【解析】典型的对称加密算法:DES,3DES,AES等。典型的非对称加密算法:RSA,ECC等。本题选B选项。典型的摘要算法:SHA,MD5等。3. 单选题提高程序执行效率的方法一般不包括( )。问题1选项A.设计更好的算法B.采用不同的数据结构C.采用不同的程序设计语言D.改写代码使其更紧凑【答案】D【解析】本题考查软件工程的设计原则。改写代码仅使其结构上更紧凑,并不能提高执行效率问题。其他三项都能够提高执行效率。故正确答案选择D选项。4. 单选题进程P1、 P2、P3、P4、P5和P

3、6的前趋图如下所示。用PV操作控制这6个进程之间同步与互斥的程序如下,程序中的空和空处应分别为( ) ,空和空处应分别为( ) , 空和空处应公别为( )问题1选项A.V(S1)和P(S2)P(S3)B.V(S1)和V(S2)V(S3)C.P(S1)和P(S2)V(S3)D.P(S1)和V(S2)V(S3)问题2选项A.V(S3)和P(S3)B.V(S4)和P(S3)C.P(S3)和P(S4)D.V(S4)和P(S4)问题3选项A.V(S6)和P(S5)B.V(S5)和P(S6)C.P(S5)和V(S6)D.P(S5)和V(S5)【答案】第1题:D第2题:B第3题:A【解析】本题考查P,V操作

4、前驱图相关问题。对于这种问题,根据箭头的指向判断相应的PV操作,先理清楚前趋图中的逻辑关系:P1没有前驱,P2的前驱是P1,P3的前驱是P2,P4的前驱是P2,P5的前驱是P3,P6的前驱是P4,P5。前驱就是指只有在前驱进程完成后,该进程才能开始执行。由图可知,这里进程之间有6条有向弧,分别表示为P1P2,P2P3,P2P4,P3P5,P4P6,P5P6,各个进程间的逻辑关系,那么我们需要设定6个信号量(S1、S2、S3、S4、S5、S6),利用PV操作来控制这些过程。对于进程P1,完成之后,需要通知P2,所以在P1执行了之后,实现了V(S1)操作。对于进程P2,开始之前需要申请资源S1,实

5、现P(S1),P2执行完成之后,需要通知P3和P4,实现两个V操作,分别是V(S2)和V(S3)对于进程P3,开始之前需要申请资源S2,实现P(S2),P3执行完成之后,需要通知P5,实现V操作,为V(S4)对于进程P4,开始之前需要申请资源S3,实现P(S3),P4执行完成之后,需要通知P6,实现V操作,为V(S5)对于进程P5,开始之前需要申请资源S4,实现P(S4),P5执行完成之后,需要通知P6,实现V操作,为V(S6)对于进程P6,开始之前需要申请资源S5和S6,实现两个P操作,分别为P(S5)和P(S6)5. 单选题某软件系统限定:用户登录失败的次数不能超过3次。采用如所示的UML

6、状态图对用户登录状态进行建模,假设活动状态是Logging in,那么当Valid Entry发生时,( )。 其中,tries问题1选项A.保持在Logging in状态B.若tries问题2选项A.状态B.转换C.监护条件D.转换后效果问题3选项A.状态B.转换C.转换后效果D.监护条件【答案】第1题:B第2题:C第3题:B【解析】本题考查UML状态图的问题。通过状态图图示可知,假设活动状态是Logging in,那么当Valid Entry发生时,当限制条件【tries=3】会到达Logging Denied状态,当限制条件【tries3】Logged in状态。针对于第一问的描述,仅有

7、B符合状态图的表示。triesbuy(money, this)(5) mediator-buy(money, this)【解析】(1)空是属于接口WebServiceMeditor内的方法,我们可以通过下文的实现类中找到ConcreteServiceMeditor可知缺少了一个buy()方法故第一空填写virtual void buy(double money, WebService *service) ;(2)空类WebService中属性的参数类型,Colleague与Mediator之间的关联关系由属性meditor实现,所以第2空应该填写WebServiceMediator*;(3)空

8、类WebService中的virtual方法,根据其具体子类可以看到缺少的是buyService方法,书写成virtual void buyService(double money)= 0 ;(4)空和(5)空具体同事类Amazon、Ebay与中介者的通信,调用中介者之间的支付接口,所以空(4)和(5)都填写mediator-buy(money, this) 。9. 单选题SQL是一种数据库结构化查询语言,SQL注入攻击的首要目标是( )。问题1选项A.破坏Web服务B.窃取用户口令等机密信息C.攻击用户浏览器,以获得访问权限D.获得数据库的权限【答案】D【解析】SQL注入攻击,就是通过把SQ

9、L命令插入到 Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。其首要目的是获取数据库访问权限。10. 单选题当UML状态图用于对系统、类或用例的动态方面建模时,通常是对( )建模。以下UML状态图中,假设活动的状态是A,事件b=0发生并且a5,发生条件是c状态到d状态的转换条件的是( ),D变为活动的状态,有关状态图的叙述中,不正确的是( )。问题1选项A.系统的词汇B.反应型对象C.活动流程D.对象快照问题2选项A.一旦状态A的exit动作完成,或如果当前执行do动作,则终止执行B.一旦状态A和B的所有动作完成C.一旦正在进行的状态A完成D.一旦状态B

10、的exit动作完成问题3选项A.动作可以在状态内执行,也可以在状态转换时执行B.当触发转换的事件发生并且转换没有指定的监护条件时,对象将离开当前状态,并且其do动作终止C.when (b=5)称为时间事件D.状态由事件触发【答案】第1题:B第2题:B第3题:D【解析】当对系统、类或用例的动态方面建模时,通常是对反应型对象建模,第一空选择B选项。状态图通常包含简单状态和组合状态、转换(事件和动作)。状态是指对象的生命周期中某个条件或者某个状态,在此期间对象将满足某些条件、执行某些活动或等待某些事件,是对象执行了一系列活动的结果,当某个事件发生后,对象的状态将发生变化。嵌套在另外一个状态中的状态称

11、为子状态(本题中的A、B为子状态),含有子状态的状态称为组合状态(也叫作超状态,C是组合状态)。状态C完成才会在when b=5a5时,让D进入激活状态,当前状态为A,当A完成时进入状态B,状态B完成后才完成组合状态C。因此第二空应该选择B选项,需要状态A和B都完成。转换是两个状态之间的一种关系,表示对象将在源状态中执行一定的动作,并在某个特定事件发生而且某个特定的警戒(监护)条件满足时进入目标状态。动作是一个可执行的原子操作,是不可中断的,其执行时间可以忽略不计。转换由事件触发,而不是状态由事件触发,第三空D选项描述错误。11. 单选题在ISO/IEC软件质量模型中,可移植性是指与软件可从某

12、环境行移到另一环境的能力有关的一组属性,其子特性不包括()。问题1选项A.适应性B.易测试性C.易安装性D.易替换性【答案】B【解析】考查ISO/IEC的几大质量特性。可移植性包括:适应性、易安装性、一致性、易替换性。易测试性属于可维护性的范畴。12. 单选题以下关于敏捷统一过程(AUP) 的叙述中,不正确的是( )。问题1选项A.在大型任务上连续B.在小型活动上迭代C.每一个不同的系统都需要一套不同的策略、约定和方法论D.采用经典的UP阶段性活动,即初始、精化、构建和转换【答案】C【解析】本题考查的是敏捷统一过程(AUP)敏捷统一过程(AUP)采用“在大型上连续”以及在“小型上迭代”的原理来

13、构建软件系统。采用经典的UP阶段性活动(初始、精化、构建和转换),提供了一系列活动,能够使团队为软件项目构想出一个全面的过程流。在每个活动里,一个团队迭代了使用敏捷,并将有意义的软件增量尽可能快地交付给最终用户。在每一个不同地系统都需要一套不同地策略、约定和方法论是属于敏捷方法-水晶法的描述。注意区别这里面是考查敏捷统一过程,而非敏捷方法,两者之间有区别。13. 案例题【说明】某房产公司,欲开发一个房产信息管理系统,其主要功能描述如下:1.公司销售的房产(Property) 分为住宅(House) 和公寓(Cando) 两类。针对每套房产,系统存储房产证明、地址、建造年份、建筑面积、销售报价、

14、房产照片以及销售状态(在售、售出、停售)等信息。对于住宅,还需存储楼层、公摊面积、是否有地下室等信息;对于公寓,还需存储是否有阳台等信息。2.公司雇佣了多名房产经纪(Agent)负责销售房产。系统中需存储房产经纪的基本信息,包括:姓名、家庭住址、联系电话、受雇的起止时间等。一套房产同一时段仅由一名房产经纪负责销售,系统中会记录房产经纪负责每套房产的起始时间和终止时间。3.系统用户(User)包括房产经纪和系统管理员(Manager)。用户需经过系统身份验证之后才能登录系统。房产经纪登录系统之后,可以录入负责销售的房产信息,也可以查询所负责的房产信息。房产经纪可以修改其负责的房产信息,但需要经过

15、系统管理员的审批授权。4.系统管理员可以从系统中导出所有房产的信息报表。系统管理员定期将售出和停售的房产信息进行归档。若公司确定不再销售某套房产,系统管理员将该房产信息从系统中删除。现采用面向对象方法开发该系统,得到如图3-1所示的用例图和图3-2所示的初始类图。图3-1 用例图图3-2 类图【问题1】(7分)(1)根据说明中的描述,分别给图3-1中A1到A2所对应的名称以及U1U3所对应的用例名称。(2)根据说明中的描述,分别给图3-1中(a)和(b)用例之间的关系。【问题2】(6分)根据说明中的描述,分别给图3-2中C1C6所对应的类名称。【问题3】(2分)图3-2中AgentList是一

16、个英文名称 ,用来进一步阐述C1和C6之间的关系 ,根据说明中的描述,绘出AgentList的主要属性。【答案】【问题1】(7分)A1:房产经纪;A2:系统管理员U1:审批授权;U2:修改房产信息;U3:删除房产信息(a):;(b):【问题2】(6分)C1: Property C2: House C3: Cando C4: User C5:Manager C6:Agent【问题3】(2分)AgentList的主要属性有:房产经纪负责该房产的起始时间和结束时间【解析】问题1:关于该用例图中需要找出对应的参与者与用例,参与者一般指人名词表示,用例一般表示操作用动名词表示。“房产经纪登录系统之后,可

17、以录入负责销售的房产信息,也可以查询所负责的房产信息。房产经纪可以修改其负责的房产信息”可知A1是房产经纪,“系统管理员可以从系统中导出所有房产的信息报表。系统管理员定期将售出和停售的房产信息进行归档”,可知A2是系统管理员。根据描述“房产经纪可以修改其负责的房产信息,但需要经过系统管理员的审批授权。”和“系统管理员将该房产信息从系统中删除。”可知U1为审批授权,U2为修改房产信息,U3为删除房产信息。a是U1和U2的关系,U2指向U1,先修改房产信息,再审批授权,典型的包含关系,使用关键词includeb是U3与归档的关系,正常进行归档,对于不再销售的房产信息进行删除,典型的扩展关系,使用关

18、键词extend问题2:根据类图对应的描述,两组泛化关系,C1与C2、C3以及C4与C5、C6,再根据C1与C6和C5有关系,以及题干典型的两组泛化关系可得:C1: Property C2: House C3: Cando C4: User C5:Manager C6:Agent问题3:AgentList的主要属性有:房产经纪负责该房产的起始时间和结束时间14. 单选题在某系统中,不同组(GROUP)访问数据的权限不同,每个用户(User)可以是一个或多个组中的成员,每个组包含零个或多个用户。现要求在用户和组之间设计映射,将用户和组之间的关系由映射进行维护,得到如下所示的类图。该设计采用( )

19、模式,用一个对象来封装系列的对象交互;使用户对象和组对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。该模式属于( )模式,该模式适用 ( )。问题1选项A.状态(State)B.策略(Strategy)C.解释器(Interpreter)D.中介者(Mediator)问题2选项A.创建型类B.创建型对象C.行为型对象D.行为型类问题3选项A.需要使用一个算法的不同变体B.有一个语言需要解释执行,并且可将句子表示为一个抽象语法树C.一个对象的行为决定于其状态且必须在运行时刻根据状态改变行为D.一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以

20、理解【答案】第1题:D第2题:C第3题:D【解析】本题考查设计模式的问题。针对于题干和图示来看,不同组(GROUP)访问数据的权限不同,每个用户(User)可以是一个或多个组中的成员,每个组包含零个或多个用户。现要求在用户和组之间设计映射,将用户和组之间的关系由映射进行维护,在组和用户之间用UserGroupMapper实现两者的交互,两者之间不直接交互,用一个对象来封装系列的对象交互;使用户对象和组对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互,是典型关于中介者模式的描述和应用。中介者模式属于行为型对象模型,可以适用于一组对象以定义良好但是复杂的方式进行通信,产

21、生的相互依赖关系结构混乱且难以理解。其中以下场景中A选项是对策略模式的描述,B选项是对解释器的描述,C选项是对状态模式的描述。综上所述,本题选择D,C,D15. 单选题在风险管理中,通常需要进行风险监测,其目的不包括( )。问题1选项A.消除风险B.评估所预测的风险是否发生C.保证正确实施了风险缓解步骤D.收集用于后续进行风险分析的信息【答案】A【解析】风险监测主要是对风险进行预测,评估,收集相关的信息,用来防止风险,从而做好相关的防范措施。对于评估所预测的风险是否发生、保证正确实施了风险缓解步骤、收集用于后续进行风险分析的信息都是风险监测的目的至于A选项消除风险,风险是无法被消除掉的,只能尽

22、量避免。16. 案例题【说明】希尔排序算法又称最小增量排序算法,其基本思想是:步骤1:构造一个步长序列delta1、delta2、deltak,其中delta1=n/2,后面的每个delta是前一个的1/2 , deltak=1;步骤2:根据步长序列、进行k趟排序;步骤3:对第i趟排序,根据对应的步长delta,将等步长位置元素分组,对同一组内元素在原位置上进行直接插入排序。【C代码】下面是算法的C语言实现。(1)常量和变量说明data:待排序数组data,长度为n,待排序数据记录在data0、data1、datan-1中。n:数组a中的元素个数。delta:步长数组。(2)C程序#inclu

23、devoid shellsort(int data , int n) int *delta,k,i,t,dk,j; k=n; delta=(int *)nalloc(sizeof(int)*(n/2); if(i=0) do ( 1 ) ; deltai+=k; while ( 2 ) ; i=0; while(dk=deltai)0) for(k=deltai;k=0&t 【问题1】(8分)根据说明和c代码,填充c代码中的空(1) (4)。【问题2】(4分)根据说明和c代码,该算法的时间复杂度(5)O(n2) (小于、等于或大于)。该算法是否稳定(6)(是或否)。【问题3】(3分)对数组(1

24、5、9、7、8、20、-1、 4)用希尔排序方法进行排序,经过第一趟排序后得到的数组为(7)。【答案】【问题1】(8分)(1)k=k/2(2)k1(3)datak【问题3】(3分)(7)(4,9,-1,8,20,7,15)【解析】问题1:希尔排序是一种经典的高效插入类排序算法。不稳定的排序算法,将每个步长划分为多个不连续的子序列,对每个子序列再次采用直接插入排序算法。如对某数组A=(a1,a2,a3.a10),在某趟排序时,若delta=3,则将A分成三个子序列,A1=(a1,a4,a7,a10),A2=(a2,a5,a8),A3=(a3,a6,a9),然后分别在原位置上对A1、A2和A3进行

25、直接插入排序处理。最后一趟排序中,delta=1,这样可以确保输出序列是有序的。delta 序列是希尔排序算法在具体实现的过程中定义的,本题在题干中已经给出,delta1 = n / 2 , 后面的每个delta是前面的1/2,最后一个deltak=1。根据题干,很容易得到空(1)为k=k/2,空(2)填k1。接下来的代码段是根据delta 值进行每一趟的排序,每趟排序是对不连续的每个子序列进行插入排序,因此,空(3)填datak问题2:希尔排序算法是一种不稳定的排序算法,时间复杂度约在O(n1.3)。问题3:对于数组(15、9、7、8、20、-1、 4)用希尔排序方法进行排序,n=7,根据题

26、干说明delta=n/2=3,A1(15,8,4),A2(9,20),A3(7,-1),每个子序列排序后得到A1(4,8,15),A2(9,20),A3(-1,7),还原得到(4,9,-1,8,20,7,15)17. 单选题某企业信息系统采用分布式数据库系统。“当某一场地故障时, 系统可以使用其他场地上的副本而不至于使整个系统瘫痪”称为分布式数据库的( )。问题1选项A.共享性B.自治性C.可用性D.分布性【答案】C【解析】本题考查的是分布式数据库的基本概念。在分布式数据库系统中,共享性是指数据存储在不同的结点数据共享;自治性是指每个结点对本地数据都能独立管理;可用性是指当某一场地故障时,系统

27、可以使用其他场地上的副本而不至于使整个系统瘫痪;分布性是指在不同场地上的存储。本题选择C选项。18. 单选题信息系统的文档是开发人员与用户交流的工具。在系统规划和系统分析阶段,用户与系统分析人员交流所使用的文档不包括( )。问题1选项A.可行性研究报告B.总体规划报告C.项目开发计划D.用户使用手册【答案】D【解析】本题考查软件开发工程需求分析相关问题。用户与系统分析人员交流所使用的文档可以包括以下:可行性研究报告:可行性研究报告是从事一种经济活动(投资)之前,双方要从经济、技术、生产、供销直到社会各种环境、法律等各种因素进行具体调查、研究、分析,确定有利和不利的因素、项目是否可行,估计成功率

28、大小、经济效益和社会效果程度,为决策者和主管机关审批的上报文件。是需求分析和客户人员之间交流所使用或参考的文档。总体规划报告:至少市场/客户、新产品、人(引进、培养)、设备、成本等方面包括,也是需求分析和客户人员之间交流所使用或参考的文档。项目开发计划:是指通过使用项目其他专项计划过程所生成的结果(即项目的各种专项计划),运用整合和综合平衡的方法,制定出用于指导项目实施和管理的整合性、综合性、全局性、协调统一的整合计划文件。是对需求分析和客户人员交流所必要的文档。至于D选项的用户使用手册是详细描述软件的功能、性能和用户界面,使用户了解到如何使用该软件的说明书。一般是开发完成之后交付给客户的。1

29、9. 单选题数据库的安全机制中,通过提供()供第三方开发人员调用进行数据更新,从而保证数据库的关系模式不被第三方所获取。问题1选项A.触发器B.存储过程C.视图D.索引【答案】B【解析】本题考查的是数据库基础知识。索引是数据库中提高查询效率的一种机制,不能进行数据更新。视图一般是提供查询数据的,具有一定安全机制,但是不能进行数据更新。触发器可以作为更新机制,但是无法避免数据库的关系模式被第三方所获取,并不安全。存储过程方式,可以定义一段代码,从而提供给用户程序来调用,具体更新过程通过代码调用,避免了向第三方提供系统表结构的过程,体现了数据库的安全机制。所以本题选择B选项。20. 单选题软件可靠性是指系统在给定的时间间隔内、在给定条件下无失效运行的概率。若MTTF和MTTR分别表示平均无故障时间和平均修复时间,则公式( )可用于计算软件可靠性。问题1选项A.MTTF/(1+MTTF)B.1/(1+MTTF)C.MTTR/(1+MTTR)D.1/(1+MTTR)【答案】A【解析】本题考查的是计算机性能指标的概念。可靠性可以用MTTF/(1+MTTF)来度量。本题选择A选项。MTBF/(1+MTBF)可以用来度量可用性。1/(1+MTTR)可以用来度量可维护性。没有MTTR/(1+MTTR)的表示。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 资格/认证考试 > 计算机等级考试

宁ICP备18001539号-1