2021年上半年软件设计师上午真题及答案解析(五)

news2024/11/18 1:29:37

41、42、43、当UML状态图用于对系统、类或用例的动态方面建模时,通常是对( )建模。以下UML状态图中,假设活动的状态是A,事件b=0发生并且a>5,发生条件是c状态到d状态的转换条件的是( ),D变为活动的状态,有关状态图的叙述中,不正确的是( )。
在这里插入图片描述
1)
A.系统的词汇
B.反应型对象
C.活动流程
D.对象快照

2)
A.一旦状态A的exit动作完成,或如果当前执行do动作,则终止执行
B.一旦状态A和B的所有动作完成
C.一旦正在进行的状态A完成
D.一旦状态B的exit动作完成

3)
A.动作可以在状态内执行,也可以在状态转换时执行
B.当触发转换的事件发生并且转换没有指定的监护条件时,对象将离开当前状态,并且其do动作终止
C.when (b=5)称为时间事件
D.状态由事件触发

参考答案:BBD
答案解析:

  • 状态图(state diagram)显示了一个状态机,它强调从状态到状态的控制流。
  • 状态机(state machine)是一个行为,它说明对象在它的生命期中响应事件所经历的状态序列以及它对那些事件的响应。
  • 状态(state)是对象的生命期中响应事件所经历的状态序列以及它对那些事件的响应。
  • 状态图通常包含简单状态和组合状态、转换(事件和动作)。
  • 对系统、类或用况的动态方面建模时,通常用状态图为反应式对象建模。
  • 反应型(或事件驱动的)对象是这样一种对象,其行为通常是由对来自其语境外部的事件所作出的反应来最佳刻画的。反应型对象在接受到一个事件之前通常处于空闲状态;当它接收到一个事件时,它的反应常常依赖以前的事件;在这个对象对事件做出反应后,它就又变成空闲状态,等待下一个事件。对于这种对象,将着眼于对象的稳定状态,触发从状态到状态转移的事件,以及当每个状态改变时所发生的动作。
  • 嵌套在另外一个状态中的状态称为子状态(本题中的A、B为子状态),含有子状态的状态称为组合状态(也叫作超状态,C是组合状态)。状态C完成才会在when b=5[a>5]时,让D进入激活状态,当前状态为A,当A完成时进入状态B,状态B完成后才完成组合状态C。
  • 转换是两个状态之间的一种关系,表示对象将在源状态中执行一定的动作,并在某个特定事件发生而且某个特定的警戒(监护)条件满足时进入目标状态。动作是一个可执行的原子操作,是不可中断的,其执行时间可以忽略不计。转换由事件触发,而不是状态由事件触发。

44、45、46、47、股票交易中,股票代理(Broker)根据客户发出的股票操作指示进行股票的买卖操作,设计如下所示类图。该设计采用()模式将一个请求封装为一个对象,从而使得以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作,其中,()声明执行操作的接口。该模式属于()模式,该模式适用于:()。
在这里插入图片描述

(1)
A.命令(Command)
B.观察者(Observer)
C.状态(State)
D.中介者(Mediator)

(2)
A.Operation
B.sellOperation/BayOperation/ViewOperation
C.Broker
D.Stock

(3)
A.结构类型
B.结构型对象
C.创建类型
D.行为型对象

(4)
A.一个对象必须通知其他对象,而它又不能假定其他对象是谁
B.抽象出特执行的动作以参数化某对象
C.一个对象的行为决定于其状态且必须在运行时刻根据状态改变行为
D.一个对象引用其他对象并且直接与这些对象通信而导致难以复用该对象

参考答案:AADB
答案解析:
在这里插入图片描述

  1. 简单工厂模式
    目的:输入一个符号,制造不同运算类,主题在于封装了类
    实现:实现统一接口的类交给一个工厂进行制造
  2. 策略模式
    目的:输入一个类型,可以获得不同的结果,主题在于封装了各种规则(策略)
    实现:实现统一接口(协议)的类交给一个上下文管理类
  3. 装饰模式
    目的:原有对象上,扩展其它特性。
    实现:把原有对象抽取一级类(协议),二级类继承一级类,三级继承二级类就是装饰类,原有叫做Component,装饰叫做Decorator
  4. 代理模式
    目的:原有对象不动,让代理对象实现原有对象的功能,主题在于找人做事
    实现: 把代理事件进行抽象,一个实现代理事件类,然后代理类也实现事件协议 类,并拥有原有对象和事件实现类,把原有对象扔给具体实现事件类,这样就相当于代理类完成原有类的动作
  5. 工厂方法模式
    目的:一个工厂造出不同功能的工厂,每个工厂做自己相应的事情
    实现:抽象工厂类和具体功能模板类,实现不同工厂类并实现不同模板类,不同工厂返回具体模板的类
  6. 模板方法模式
    目的: 写一个模板类,继承并重写子类
    实现: 抽象子类特性,写出模板类
  7. 外观模式
    目的: 不同类的功能,汇总一个类统一出口
    实现: 一个类拥有所有功能类引用,提供方法将功能类变成统一出口
  8. 建造者模式
    目的:指挥者来规则建造者,建造者提供不同功能规则组合成一个完整系统
    实现:指挥者类持有建造者类引用,抽象建造者功能,实现者按建造者协议,实现不同的系统
  9. 观察者模式
    目的:一个类监听事件,一个类通知做事。达到外部变化内部做出相应动作
    实现:订阅者负责收集和通知监听者,监听者得到信息后做出自己的变化所以监听者抽象一个更新操作接口
  10. 抽象工厂模式
    目的:几个工厂的总合体,工厂按照不同协议规范造不同的产品
    实现:以实体为出发点,比如数据库中有用户实体和SQL实体等,然后建立这两个实体,再建立抽象实体的操作类,然后抽象操作类工厂 ,建立不同实体操作类工厂,工厂持有操作类并返回,最终实现工厂造出操作类,操作类操作实体。
  11. 状态模式
    目的:一个实体,记录每种情况下的状态
    实现:根据实体的需求抽象状态,不同的状态实现
  12. 适配器模式
    目的:在不改变情况下,对某个类的功能进行适配转换成特定功能
    实现:把要替换的功能进行抽象出来,然后让适配器实现该功能,并且适配器持有具体特定功能类
  13. 备忘录模式
    目的:将属性备份起来,有时候属性想回到某个结点上
    实现:将要备份的属性抽取成类,主类上有这些属性必且可以更改这些属性,管理类负责保存备份数据,方便主类需要时调用管理类当时的属性值
  14. 组合模式
    目的:层级分配,就像OC里面类的层级关系一样,子结点一直组合成一颗大树
    实现:抽象组合接口协议,父子组件都实现该接口,父组件包含子组件
  15. 迭代器模式
    目的:集合类和遍历类的关系处理
    实现:抽象集合类和抽象遍历类,这样可以实现不同集合(List,Set,Array) 和遍历类循环方法
  16. 单例模式
    目的:全工程中只有这一个内存的类
    实现:内存静态,dispatch_once一次初始化
  17. 桥接模式
    目的:主类利用模式可以扩展功能而且不改变原来功能
    实现:抽象主体协议,实现类包含具体实现的功能类的引用,抽象功能类包含主体中需要的功能,让实现类部分实现即可
  18. 命令模式
    目的:请求者命令被请求者去做某个事情
    实现:请求者发布信息,被请求者接收信息,信息是一个实体类,信息处理又是具体的实体类,信息是多样的可以抽象出来,所以请求者和被请求者都持有信息类, 信息里面有excetue
  19. 责任裢模式
    目的:处理者处理自身业务,处理不了转发给其它处理者处理
    实现:抽象处理者,持有自身引用处理者为上一级和处理请求方法,然后实现该抽象,在处理请求方法中超过自身能力范围就转发给上级处理
  20. 中介者模式
    目的:两个互相不认识的类,要打通一个功能,需要中间人帮忙介绍
    实现:抽象两个对象行为,抽象中介者,这个中介者持有这两个互不认识对象的引用,在中介者里把消息做互相交换,两个人只有中介者的持有
  21. 享元模式
    目的:频繁使用共有一块东西,这块东西效率保证高效,可以考虑享元
    实现:工厂是维护共有的东西,并造出用户入口的实体类,当用户频繁使用实体类时可以抽象实体类,工厂持有实体类和共用数据,并造出实体类给用户使用
  22. 解释器模式
    目的:一份需求,不同解释器,去解读信息
    实现:抽象解释器,持有要被解释的实体类,具体实现解释器,这样同一个实体类遇到不同解释器解释的东西不一样
  23. 访问者模式
    目的:一群实体类,对不同的访问者呈现不同的反应
    实现:抽象元素类,这个元素类持有访问者,抽象访问者类,访问者碰到这个元素产生出不同的特性,这里两个互通功能交给管理者,管理者收集元素,并且分发给不同的访问者
  24. 原型模式
    目的:克隆自身
    实现:抽象原型类中有复制方法,重写该方法可以初始化一个新类

本题:

  • 将一个请求封装为一个对象,从而使得以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作,此时使用的是命令模式。
  • 其中作为声明接口的应该是最高层次。
  • 命令模式属于行为型对象模式。

48、49、设有描述简单算术表达的上下文无关文法如下,其中id表示单字母:

E→E+T|T
T→F*T|F
F→id

与使用该文法描述的表达式a+bcd相符的语法树为( ),下图所示有限自动机(DFA)是( )。
在这里插入图片描述
1)
A、在这里插入图片描述
B、在这里插入图片描述
C、在这里插入图片描述
D、暂无

2)
A.确定的有限自动机,它能识别以bab结尾的
B.确定的有限自动机,他不能识别以bab结尾的
C.非确定的有限自动机,他能识别以bab结尾的
D.非确定的有限自动机,他不能识别以bab结尾的

参考答案:AD
答案解析:
利用推导式构造语句a+bcd的过程如下:
在这里插入图片描述
整理之后的语法树,结构如下:
在这里插入图片描述

  • 第一空选择A选项。
  • 第二空根据有限自动机判断,从初始状态开始,接收字符a可能会保持原状态不变,也可能会转入下一个状态,是不确定的,所以是不确定的有限自动机。其次该自动机识别倒数第3个字符只有a,所以无法识别bab结尾的字符串,第二空选择D选项。

50、函数foo、hoo的含义如下所示,函数调用hoo(a,x)的两个参数分别采用引用调用(call by reference)和值调用(call by value)方式传递,则函数调用foo(5)的输出结果为( )。
在这里插入图片描述
A.2,5
B.2,15
C.13,5
D.13,15

参考答案:C
答案解析:

  • 值传递是传递变量的值,并不会改变方法外变量的值;
  • 引用传递是传递对象的地址,会改变对象本身的值;

根据题干给出的信息,foo(5),在该函数中,初始情况x=5,a=2。
调用hoo(a,x)函数,此时a=2传给hoo函数中的x,并且由于是引用方式,此时x在hoo函数内的修改会影响原a的值(注意区别,hoo函数的x与foo函数的x是不用的局部变量)。同时x=5传给hoo函数中的y,并且是值调用方式,此时y在hoo函数内的修改是不会影响原x的值。
接着分析hoo()函数,x的初始值为2,y初始值为5。执行y=y+10=15,执行x=y-x=15-2=13,此时x的值会传回原foo函数的a,即a=x=13。
返回foo函数进行分析,输出的a和x,取值分别为修改后的13和原数值5。
本题选择C选项。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1070.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTTP缓存

http缓存分为:强制缓存和协商缓存 强缓存 不需要客户端就不需要向服务器发送请求,直接使用本地缓存 对于强缓存的资源,可以看到返回的状态码是 200,并且会显示 from memory cache/from disk cache,强缓存是通过 Exp…

Go语言开发k8s-04-Service操作

文章目录1. 结构体1.1 ServiceList1.2 Service1.3 TypeMeta1.4 ObjectMeta1.5 ServiceSpec1.6 ServiceStatus1.7 对照yml文件示例2. Get List语法完整示例3. Create语法完整示例4. Get Service语法完整示例5. Update Service语法完整示例6. Delete Service语法完整示例1. 结构体…

python基于PHP的个人信息管理系统

随着现代工作的日趋繁忙,人们越来越意识到信息管理的重要性与必要性,而具有个性化特色的个人信息管理系统能够高速有效的管理个人信息,从而提升自己的工作效率 社会的发展给人们的生活压力越来越大,每天所要面临的问题也越来越多,面对如此多的事情需要去处理往往会顾此失彼,将很…

SpringCloud-Hystrix服务治理

简介 Hystrix是用于服务熔断,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。 服务降级 当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的…

Web前端入门(十八)圆角边框及盒子阴影

总目录:https://blog.csdn.net/treesorshining/article/details/124725459 文章目录1.圆角边框2.盒子阴影2.1 开发中阴影常用语句2.2 文字阴影1.圆角边框 在 CSS3 中,新增了圆角边框样式,这样盒子就可以变圆角了。border-radius 属性用于设置…

牛客刷题总结——Python入门03:运算符

🤵‍♂️ 个人主页: 北极的三哈 个人主页 👨‍💻 作者简介:Python领域优质创作者。 📒 系列专栏:《牛客题库-Python篇》 🌐推荐《牛客网》——找工作神器|笔试题库|面试经验|实习经验内推&am…

【Linux】分析缓冲区,刷新机制,FILE

文章目录一、Linux的缓冲区(一) 用户层缓冲区(二) 内核层缓冲区(Kernel Buffer Cache)验证buffer增加和减少释放缓存二、缓冲区的刷新策略(一) 用户层缓冲区刷新策略(二) 内核层缓冲区刷新策略三、探究缓冲区常见问题的产生(一) 由于缺失换行符导致内容没…

相对于java,C++中的那些神奇语法

空指针还可以调用成员函数 #include <cstdio>class Person { public:void sayHello() {printf("hello!\n");} };int main() {auto * p new Person;p->sayHello();p nullptr;p->sayHello();return 0; }运行结果如下&#xff1a; hello! hello!进程已结…

【深入理解java虚拟机】JVM故障处理工具介绍

目录前言一、jps&#xff1a;虚拟机进程状况工具一、一 输出远程机器信息二、jstat&#xff1a;虚拟机统计信息监视工具三、jinfo&#xff1a; Java配置信息工具四、jmap&#xff1a; Java内存映像工具五、jhat&#xff1a;虚拟机堆转储快照分析工具六、jstack&#xff1a; Jav…

问:毁掉一个人,有多容易?答:年龄到了就可以

人到中年&#xff0c;有点难。 曾在虎扑论坛上看到一篇爆帖&#xff1a; 标题是《loser回忆录&#xff1a;一年前我月薪两万被人叫X总&#xff0c;如今在美团送外卖》&#xff0c;63万浏览量&#xff0c;回复也超过了2300条。 如题&#xff0c;帖子的主人公是一个35岁的男人…

node-sass安装失败解决方法

node-sass安装失败&#xff0c;提示如下&#xff1a; gyp verb check python checking for Python executable "python" in the PATH gyp verb which succeeded python D:Program FilesPython38python.EXE gyp ERR! configure error gyp ERR! stack Error: Command f…

nvidia显卡驱动、cuda、cudnn、tensorflow对应版本

1、下载显卡驱动 在nvidia官网下载驱动&#xff0c;驱动官网选择设备的驱动进行搜索下载即可&#xff0c;搜索时注意对应的操作系统 一般为安装NVIDIA Studio驱动版本&#xff0c;GeForce Game Ready适用于游戏玩家&#xff0c;下面是两个版本区别的官方解释 下载完的驱动会以…

关键路径 ← AOE网

【问题描述】 给定一个只有一个源点和一个汇点的有向图&#xff0c;要求求出所有的关键活动&#xff0c;并计算完成该工程至少需要多少时间。【输入格式】 第一行包含两个整数 n 和 m&#xff0c;表示顶点数和边数。 接下来 m 行&#xff0c;每行包含三个整数 u&#xff0c;v&a…

p2p开户银行审核模块功能实现

审核模块简介 用户提交开户申请后要等待审核通过才能审核成功 审核需要银行系统进行开户 使用flask框架搭建一个银行系统 用户提交审核 银行进行开户&#xff0c;在返回p2p后台通过审核 flask搭建测试银行系统 利用工厂模式搭建一个flask框架 app.py from flask import Fl…

程序员必看内容连续集之 Redis 03

目录 一、Spring整合Redis 二、注解式开发 一、Spring整合Redis ①项目的pom文件导入依赖并修改 <redis.version>2.9.0</redis.version> <redis.spring.version>1.7.1.RELEASE</redis.spring.version><dependency><groupId>redis.clien…

(附源码)计算机毕业设计SSM抗新冠肺炎药品进销存管理系统

&#xff08;附源码&#xff09;计算机毕业设计SSM抗新冠肺炎药品进销存管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 …

Synchronized锁的使用

前言&#xff1a;大家好&#xff0c;我是小威&#xff0c;24届毕业生&#xff0c;在一家满意的公司实习。本篇文章是关于并发编程中Synchronized锁的用法知识记录&#xff0c;由于篇幅原因&#xff0c;核心原理知识下篇记录。 本篇文章记录的基础知识&#xff0c;适合在学Java的…

进程的基本概念(操作系统)

目录 一、程序的顺序执行及其特征 二、程序的并发执行及其特征 三、进程的特征与状态 1、进程的定义和特征 2、进程的三种基本状态 3、进程的三种基本状态的转换 4、 挂起状态 四、进程控制块&#xff08;PCB&#xff09; 1. PCB作用&#xff1a; PCB是进程存在的唯一…

【力扣】正则表达式匹配--回溯法解剖

题目&#xff1a;10.正则表达式匹配 给你一个字符串 s 和一个字符规律 p&#xff0c;请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符 * 匹配零个或多个前面的那一个元素 所谓匹配&#xff0c;是要涵盖 整个 字符串 s的&#xff0c;而不是部分字符串。 示…

maven配置阿里镜像,解决IDEA配置maven恢复默认配置问题

文章目录1.三个IDEA配置说明2.拷贝与修改settings.xml2.1 找到IDEA的mave配置文件settings.xml位置2.2 拷贝IDEA的settings.xml到.m2目录下2.3 打开settings.xml&#xff0c;配置本地库LocalRepository的路径2.4 删除默认镜像配置&#xff0c;配置阿里镜像2.5 保存文件3.验证是…