2025年上半年软考软件设计师真题及答案_第1页
2025年上半年软考软件设计师真题及答案_第2页
2025年上半年软考软件设计师真题及答案_第3页
2025年上半年软考软件设计师真题及答案_第4页
2025年上半年软考软件设计师真题及答案_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2025年上半年软考软件设计师练习题及答案一、单项选择题(每题1分,共50分。每题只有一个正确答案,请将正确选项填涂在答题卡上)1.在面向对象设计中,若类A通过接口I调用类B的方法,而类B又通过同一接口I回调类A的方法,这种设计模式最可能是A.策略模式  B.观察者模式  C.中介者模式  D.桥接模式答案:C2.某实时系统采用固定优先级抢占式调度,任务集如下:T1(周期5ms,执行1ms,优先级最高)、T2(周期8ms,执行2ms)、T3(周期10ms,执行3ms)。若采用速率单调分配优先级,则系统可调度性判定结果为A.可调度,利用率0.85  B.不可调度,利用率0.85  C.可调度,利用率0.75  D.不可调度,利用率0.75答案:B3.在IPv6中,用于将链路本地地址映射到以太网MAC地址的协议是A.ARP  B.ND  C.DHCPv6  D.SLAAC答案:B4.某关系模式R(A,B,C,D,E,F)满足函数依赖集F={AB→C,C→D,D→E,E→F},则关于R的候选键说法正确的是A.AB是唯一候选键  B.AB和AC都是候选键  C.AB和BC都是候选键  D.AB和AD都是候选键答案:A5.在UML2.5序列图中,表示“异步消息”的箭头线型为A.实心三角箭头  B.开口三角箭头  C.虚线开口箭头  D.实心三角虚线答案:C6.以下关于HTTP/3的描述,错误的是A.基于QUIC传输  B.默认端口443  C.强制使用TLS1.3  D.仍保持队头阻塞答案:D7.在C语言中,以下代码片段的输出是```cunion{inti;charc[4];}u={0x01020304};printf("%02x",u.c[0]);```A.01  B.02  C.03  D.04答案:D(小端序)8.某二叉树后序遍历为DBEFCA,中序遍历为DBAECF,则其先序遍历为A.ABCDEF  B.ABDCEF  C.ABDECF  D.ADBCEF答案:C9.在SpringFramework中,用于声明式事务管理的注解是A.@Transactional  B.@Transaction  C.@Tx  D.@TransactionManagement答案:A10.若需求规约中出现“系统应在200ms内响应95%的查询请求”,该需求属于A.功能需求  B.非功能需求  C.设计约束  D.业务规则答案:B11.在操作系统中,发生“Belady异常”的页面置换算法是A.LRU  B.FIFO  C.OPT  D.Clock答案:B12.以下关于Dockerfile指令的说法,正确的是A.COPY支持URL源  B.ADD不支持自动解压tar  C.RUN只能在构建阶段执行  D.CMD可被dockerrun参数覆盖答案:D13.在Python3.11中,以下表达式值为True的是A.hash('a')==hash('A')  B.'ß'.upper()=='SS'  C.len('🚀')==2  D.ord('Z')ord('A')==25答案:D14.若某软件项目采用COCOMOII模型,规模估算为80KLOC,选择“半独立”模式,则其名义工作量为A.392PM  B.456PM  C.512PM  D.608PM答案:B(E=2.94×80^1.12≈456)15.在RSA加密中,若公钥为(e=3,n=55),私钥为(d=27,n=55),则加密明文m=7得到的密文c为A.13  B.14  C.15  D.16答案:A(7^3mod55=343mod55=13)16.以下关于敏捷开发“完成的定义”(DoD)的描述,错误的是A.由产品负责人单独制定  B.需团队共同协商  C.应写入团队工作协议  D.每个冲刺可修订答案:A17.在Git中,命令gitresethardHEAD~3的作用是A.回退三个提交并保留变更  B.回退三个提交并丢弃变更  C.回退三次add  D.回退三次merge答案:B18.某系统采用三级页表,页面大小4KB,虚拟地址48位,则页内偏移占A.10位  B.12位  C.14位  D.16位答案:B19.在软件体系结构评估中,SAAM方法主要关注A.性能  B.可修改性  C.可靠性  D.安全性答案:B20.以下关于Kafka的说法,正确的是A.消费者必须属于同一组  B.分区只能存在一个副本  C.消息按偏移量有序  D.生产者无需指定分区键答案:C21.在CMMIv2.0中,能力等级3的特征是A.已管理  B.已定义  C.已量化  D.持续优化答案:B22.若某算法时间复杂度满足递推式T(n)=3T(n/3)+O(n),则其渐近复杂度为A.O(nlogn)  B.O(n^2)  C.O(n)  D.O(nloglogn)答案:A23.在MySQL8.0中,以下SQL语句能正确创建不可见索引的是A.CREATEINDEXidxONt(c)INVISIBLE;  B.ALTERTABLEtADDINDEXidx(c)HIDDEN;  C.CREATEHIDDENINDEXidxONt(c);  D.ALTERTABLEtADDINVISIBLEINDEXidx(c);答案:A24.以下关于Rust所有权的描述,错误的是A.同一时刻只能有一个可变引用  B.引用必须始终有效  C.所有权可共享给多个变量  D.离开作用域自动释放答案:C25.在持续集成中,用于度量“从代码提交到生产部署平均时长”的指标是A.MTTR  B.LeadTime  C.CycleTime  D.MTBF答案:B26.某无向图采用邻接矩阵存储,顶点数1000,边数5000,则矩阵中非零元素比例为A.0.5%  B.1%  C.2%  D.5%答案:B(5000×2/1000^2=1%)27.在ISO/IEC25010质量模型中,属于“兼容性”子特性的是A.共存性  B.容错性  C.易安装性  D.易替换性答案:A28.以下关于TypeScript的描述,正确的是A.装饰器只能用于类  B.接口编译后生成JS代码  C.支持const断言  D.泛型参数默认值为any答案:C29.在CPU流水线中,解决“数据冒险”常用的硬件技术是A.分支预测  B.插入气泡  C.操作数前递  D.延迟槽答案:C30.若某软件项目净现值NPV=0,则其投资回报率IRRA.小于0  B.等于折现率  C.大于折现率  D.无法判断答案:B31.在正则表达式中,匹配“以字母开头、长度6~18、仅含字母数字下划线”的正确模式为A.^[azAZ]\w{5,17}$  B.^[azAZ]\w{6,18}$  C.^[AZaz_]\w{5,17}$  D.^[azAZ][azAZ09_]{5,17}$答案:D32.以下关于SeleniumWebDriver的说法,错误的是A.支持Headless模式  B.可直接操作浏览器缓存  C.需对应浏览器驱动  D.支持多窗口切换答案:B33.在Linux中,命令lsofi:8080的作用是A.列出占用8080端口的进程  B.关闭8080端口  C.查看8080路由  D.设置8080防火墙规则答案:A34.某系统采用微服务架构,服务A通过Feign调用服务B,突然大量超时,最不可能的原因是A.服务B线程池耗尽  B.服务A触发熔断  C.服务B数据库慢查询  D.服务AGC暂停答案:D35.在软件测试中,判定覆盖要求A.每个语句至少执行一次  B.每个判定的所有可能结果至少出现一次  C.每条路径至少执行一次  D.每个条件至少一次真一次假答案:B36.以下关于Zookeeper的说法,正确的是A.默认Paxos算法  B.写操作由Leader处理  C.临时节点可被子节点引用  D.会话超时后节点自动迁移答案:B37.在Go语言中,以下代码输出是```gos:=[]int{1,2,3,4}t:=s[1:3:3]fmt.Println(cap(t))```A.2  B.3  C.4  D.1答案:B38.若某二叉搜索树节点值互异,删除度为2的节点时,实际被删除的节点是A.根节点  B.该节点本身  C.中序前驱或后继  D.叶子节点答案:C39.在软件项目风险管理中,属于“避免”策略的是A.增加测试轮次  B.采用成熟框架  C.购买保险  D.预留应急预算答案:B40.以下关于CUDA编程的描述,错误的是A.线程块维度最大1024  B.共享内存可被同块线程访问  C.原子操作保证顺序一致性  D.全局内存访问无需对齐答案:D41.在ISO27001中,关于“信息安全风险评估”的正确顺序是A.资产识别→威胁识别→脆弱性识别→风险分析  B.威胁识别→资产识别→风险分析→脆弱性识别  C.脆弱性识别→威胁识别→资产识别→风险分析  D.风险分析→资产识别→威胁识别→脆弱性识别答案:A42.某系统采用Redisson实现分布式锁,默认watchdog续期时间为A.10s  B.20s  C.30s  D.60s答案:C43.在JSONWebToken中,用于指定加密算法的声明名称是A.alg  B.enc  C.typ  D.cty答案:A44.以下关于GraphQL的说法,正确的是A.只能返回JSON  B.支持订阅  C.强制使用POST  D.无类型系统答案:B45.在软件维护中,将系统从Python2迁移到Python3属于A.改正性维护  B.适应性维护  C.完善性维护  D.预防性维护答案:B46.若某无向连通图有n个顶点,则其最小生成树边数为A.n1  B.n  C.n+1  D.2n答案:A47.在TCP拥塞控制中,触发“快速重传”的重复ACK阈值为A.1  B.2  C.3  D.4答案:C48.以下关于Helm的描述,错误的是A.Chart是包格式  B.支持回滚  C.必须依赖Tiller  D.使用Go模板答案:C(v3已移除Tiller)49.在软件配置管理中,基线一旦建立,则A.不可再变更  B.只能由项目经理变更  C.需走变更控制流程  D.自动继承至下一里程碑答案:C50.若某循环队列用数组实现,容量为100,队头指针front=90,队尾指针rear=10,则当前队列长度为A.20  B.21  C.80  D.81答案:A((1090+100)mod100=20)二、案例分析题(共3题,每题20分,共60分)【案例一】某电商平台“秒杀”模块采用微服务架构,技术栈SpringCloudAlibaba,数据库MySQL8.0,缓存RedisCluster,消息队列RocketMQ。上线后出现以下现象:1.秒杀开始瞬间,商品服务CPU飙至100%,数据库连接池迅速耗尽,出现“Toomanyconnections”错误;2.部分用户重复扣减库存,导致超卖;3.Redis节点频繁发生failover,日志显示“READONLYYoucan'twriteagainstareadonlyreplica”。问题:1.请分析现象1的根本原因,给出三项具体优化措施;(6分)2.针对现象2,设计一套分布式锁方案,要求高可用、可重入、支持锁续期;(8分)3.现象3中Redis进入只读状态的原因可能有哪些?给出排查步骤与解决策略。(6分)答案:1.原因:热点数据行级锁竞争+连接池配置过小+未做读写分离。优化:(1)库存扣减改为缓存预扣,异步落库;(2)数据库连接池上限调至2000,启用HikariCP快速失败;(3)利用本地缓存+分片锁,将热点SKU拆成100个子库存。2.方案:基于Redisson分布式锁,使用RLock.tryLock(waitTime,leaseTime,TimeUnit),内部采用Lua脚本保证原子性;锁key设计为seckill:sku:12345:stock,value为UUID+线程ID实现可重入;watchdog每10s续期一次;RedisCluster三主三从,每主一从,开启哨兵模式;同时兜底使用数据库唯一索引,幂等表(seckill_id,user_id,sku_id)联合主键,防止超卖。3.原因:主节点宕机,哨兵尚未完成切换,从节点被提升为只读;或主节点网络分区,剩余节点数<quorum,集群自我保护。排查:(1)redisclicclusternodes查看主从状态;(2)检查哨兵日志+sdown、+odown事件;(3)用redisclilatencymonitor监测延迟。解决:调大clusternodetimeout至15s;哨兵downaftermilliseconds设为10s;开启clusterrequirefullcoverageno;对秒杀链路采用本地缓存降级,Redis不可写时返回“排队中”,后台异步补偿。【案例二】某市政府“一网通办”系统需对接国家政务服务平台,要求采用SM2/SM3国密算法实现身份认证与数据完整性校验。系统需支持国密双证书、时间戳、PDF签章,并满足GB/T352752017。现有方案:1.前端使用JavaScript调用浏览器WebCrypto,发现不支持SM2;2.后端使用开源库“gmssl”,但性能压测显示SM2签名仅200tps,远低于需求1000tps;3.签章后的PDF在AdobeReader打开提示“签名无效”。问题:1.针对现象1,给出两种前端技术路线并比较优劣;(6分)2.现象2性能瓶颈如何定位?提出三项优化手段;(8分)3.现象3签名无效的可能原因及修复措施。(6分)答案:1.路线A:引入国密浏览器控件(如信创版360、红莲花),通过NPAPI/PPAPI暴露国密接口,优点原生支持,缺点需用户安装插件,体验差。路线B:采用服务端代理签名,前端哈希后送服务端,返回Base64签名值,优点零插件,缺点增加网络往返,需做双向TLS。推荐:B+WebAssembly,将gmssl编译为wasm,前端计算摘要,仅把32byte摘要送服务端签名,减少带宽,兼顾安全与体验。2.定位:用perftop发现sm2_sign耗时在点乘与模逆;pprof查看gc压力,发现大整数分配频繁。优化:(1)启用国密硬件加速卡(PCIE密码卡),单卡SM2签名可达8000tps;(2)使用预计算基表,将固定基点G的倍点提前算好,减少50%点乘耗时;(3)引入批量签名,将10个请求合并一次椭圆曲线计算,利用多线程OpenMP,tps提升至1200。3.原因:PDF签章字典Filter未使用Adobe认可的“SM2SM3”标识;证书链未包含根CA,导致信任链断裂;签章时间戳未嵌入。修复:(1)在PDF签章字典加入/Filter/SM2_SM3_PKCS7;(2)将根CA证书导入Adobe可信列表,并在签章时嵌入完整证书链;(3)调用国家授时中心RFC3161服务,获取SM3时间戳token,写入PDFDSS字典。【案例三】某金融公司计划将核心账务系统从IBM大型机迁移至分布式平台,要求“零停机、数据零丢失、可回滚”。现有挑战:1.账务表单表700张,最大表50亿行,日增量8000万;2.交易代码含大量COBOL运算,涉及压缩十进制(COMP3);3.监管要求保留7年流水,每日增量备份窗口仅30分钟。问题:1.设计一套在线迁移总体方案,说明如何做到零停机;(8分)2.针对COBOL运算,给出Java技术栈的等效实现策略;(6分)3.如何在30分钟内完成8000万行增量备份?列出存储与网络方案。(6分)答案:1.方案:采用双轨并行+流量灰度。(1)使用GoldenGate实时解析VSAM日志,将增量变更以Kafka消息同步至MySQL分布式集群;(2)自研“交易比对引擎”,对账维度为账号+交易流水号,每5分钟抽样比对,差异率<0.001%视为达标;(3)流量按1%→10%→50%→100

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论