2024年上半年软件设计师上午真题及答案解析

1.在计算机网络协议五层体系结构中,( )工作在数据链路层。
A.路由器        B.以太网交换机         C.防火墙        D.集线器

网络层:路由器、防火墙

数据链路层:交换机、网桥

物理层:中继器、集线器

2.软件交付之后,由于软硬件环境发生变化而对软件进行修改的行为属于( B )维护。
A.改善性           B.适应性           C.预防性        D.改正性

软件维护:

  • 适应性维护:指使应用软件适应信息技术变化和管理需求变化而进行的修改。企业的外部市场环境和管理需求的不断变化也使得各级管理人员不断提出新的信息需求
  • 改正性维护:指为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的错误,应当进行的诊断和改正错读的过程。
  • 预防性维护:系统维护工作不应总是被动地等待用户提出要求后才进行,应进行主动的预防性维护,通过预防性维护为未来的修改与调整奠定更好的基础。
  • 完善性维护:扩充功能和改善性能而进行的修改。对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。

3.以下不属于函数依赖的Armstrong公理系统的是( C )。
A.自反规则      B.传递规则        C.合并规则        D.增广规律

考查数据库基础知识:

函数依赖的 Armstrong 公理及其引理。设关系模式R(U,F),其中U为属性集,F是U上的一组函数依赖,那么有以下推理规则。

  • 公理-自反律:若 Y⊆X⊆U,则 X→Y 被 F 逻辑蕴含。
  • 公理-增广律:若 X→Y为F所蕴涵,且 Z⊆U,则 XZ→YZ 被 F 逻辑蕴含。
  • 公理-传递律:若 X→Y, Y→Z为F所蕴涵,则 X→Z被 F 逻辑蕴含。

根据上述3条推理规则又可推出下述3条推理规则:

  • 引理-合并律:若 X→Y 且 X→Z,则 X→YZ为F所蕴涵。 (证明:根据增广律可以得到 X→XY, XY→YZ,再根据传递律得到,X→YZ。)
  • 引理-伪传递律:若 X→Y 且 WY→Z,则 XW→Z为F所蕴涵。 (证明:证明方法依然是 增广律 和 传递律。)
  • 引理-分解律:若 X→Y 且 Z⊆Y,则 X→Z为F所蕴涵。( 证明:根据自反律可以得到 Y→Z,再根据传递律,得证 X→Z。)

4.结构化分析方法的基本思想是( B )。
A.自底向上逐步分解   B.自顶向下逐步分解   C.自底向上逐步抽象  D.自顶向下逐步抽象

考查软件工程开发方法:
结构化开发方法主要特征包含:自顶向下、逐步分解求精、严格区分阶段、阶段产生标准化。

5.执行以下Python语句之后,列表y为( B )。
x=[1,2,3]
y=x+[4,5,6]
A.出错        B.[1,2,3,4,5,6]        C.[5,7,9]        D.[1,2,3,[4,5,6]]

在python语言中,两数组相加,+ 属于拼接。

6.对于一棵树,每个结点的孩子结点个数称为结点的度,结点度数的最大值称为树的度。某树T的度为4,其中有5个度为4的结点,8个度为3的结点,6个度为2的结点,10个度为1的结点,则T中的叶子结点个数为( A )。
A.38        B.29        C.66        D.57 

总结点数  =  (度数1 * 该度数结点 +...+ 度数n * 该度数结点) + 1  = 边总数 + 1

                 = 5 * 4 + 8 * 3 + 6 * 2 + 10*1 +1 = 67

叶子结点 = 总结点数 - 所有度数的结点数

               = 70 -  (5 + 8 + 6 + 10)  = 38

7.8.下图是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,则一共有( B )条关键路径,关键路径长度为( B)。


A.2        B.4        C.3        D.1
A.48       B.55       C.30        D.46 

考察项目管理关键路径。

如上图可以发现,关键路径为最长的一条路线。关键路径有4条,分别为:ABEHJK、ABEFIJK、ACEHJK、ACEFIJK,总长度为55。

9.对于定点纯小数的数据编码,下述说法正确的是(  D )。
A.仅原码能表示-1        B.仅反码能表示-1        C.原码和反码均能表示-1        D.仅补码能表示-1

考察计算机基础码制相关内容。

10.软件测试过程中的系统测试主要是为了发现(  D )阶段的问题。  
A.软件实现        B.概要设计        C.详细设计        D.需求分析

考察软件测试内容。

系统测试和验收测试都是针对于需求分析阶段进行测试的。

系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。


11.WWW服务器与客户机之间主要采用( B )安全协议进行网页的发送和接收。  
A.HTTP        B.HTTPS        C.HTML        D.SMTP
 
12.瀑布模型的主要特点是( C )。    
A.用户容易参与到开发活动中        B.易于处理可变需求            
C.缺乏灵活性                                 D.用户与开发者沟通容易

瀑布模型的缺点:
(1)各个阶段之间产生大量的文档,极大地增加了工作量。
(2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
(3)不适应用户需求的变化,并且在需求分析阶段不可能完全获取。
(4)在软件开发前期未发现的错误传到后面的开发活动中时,可能会扩散,进而可能会导致整个软件项自开发失败。
所以,瀑布模型适用于需求明确或很少变更的项目

13.TCP序号单位是( B )。  
A.赫兹        B.字节        C.比特        D.报文

序列号(SequenceNumber 简称seq):序列号是TCP报文中用于标识每个字节的唯一数
字。它表示在一个TCP连接中发送的字节的顺序。

赫兹是频率的单位;比特是信号量的基本单位;报文是TCP/IP网络中传输的信息单位,而TCP序列号是基于每个数据段中的字节的,而不是整个报文。

14,采用简单选择排序算法对序列(49,38,65,97,76,13,27,49)进行非降序排序,两趟后的序列为( A )。  
A,(13,27,65,97,76,49,38,49)  
B,(38,49,65,76,13,27,49,97)  
C,(13,38,65,97,76,49,27,49)  
D,(38,49,65,13,27,49,76,97)

直接选择排序:从题目可知采用非降序排序,在所有记录中选出最小的记录,把它与第1个记录交换,然后在剩余的记录内选出最小的记录与第2个交换......依次类推。
例:关键字序列T=(21,25,49,27,16,08)
第1趟  08,25,49,27,16,21
第2趟  08,16,49,27,25,21
第3趟  08,16,21,27,25,49
第4趟  08,16,21,25,27,49
第5趟  08,16,21,25,27,49

15.在计算机系统中,CPU中跟踪后继指令地址的寄存器是( C )。
A.指令寄存器        B.状态条件寄存器        C.程序计数器        D.主存地址寄存器

  • 指令寄存器(IR):存放即将执行的指令。
  • 状态条件寄存器:存放状态标志和控制标志。
  • 程序计数器(PC):存放下一条要执行指令的地址。
  • 主存地址寄存器:保存当前CPU访问内存单元的地址。

16.硬盘所属的存储类别是( D )。
A.寄存器       B.缓存       C.主存       D.辅存

CPU对应的存储类别:寄存器;

Cache对应的存储类别:缓存;

主存对应的存储类别:DRAM;

辅存对应的存储类别:硬盘、光盘等。

17.UML类图在软件建模时,给出软件系统的一种静态设计视图,用( C )关系可明确表示两类事物之间存在的特殊一般关系。
A.聚合       B.依赖       C.泛化       D.实现

考察UML关系:

  • 依赖关系:一个事物发生变化影响另一个事物。
  • 实现关系:接口与类之间的关系。
  • 泛化关系:特殊/一般关系。
  • 聚合关系:整体与部分生命周期不同。属于关联关系。

18.在29个元素构成的查找表中查找任意一个元素时,可保证最多与表中5个元素进行比较即可确定查找结果,则采用的查找表及查找方法是( )。
A.二叉排序树上的查找              B.顺序表上的顺序查找
C.有序顺序表上的二分查找       D.散列表上的哈希查找

  • 二叉排序树上的查找:在二叉排序树上查找一个元素时,平均查找长度通常与树的深度有关。
  • 顺序表上的顺序查找:从头到尾或从尾到头遍历整个列表。
  • 有序顺序表上的二分查找:每次比较都会排除一半的元素
  • 散列表上的哈希查找:哈希查找的性能主要取决于哈希函数的设计及哈希表的填充因子。

19.算术表达式b*(a+c)-d的后缀式是( D )。(+、-、*表示算术的加、减、乘运算,运算符的优先级和结合性遵循惯例。)
A.ba+cd*-       B.bacd+*-       C.ba*c+d*-       D.bac+*d-

20.面向对象软件从不同层次进行测试。( D )层测试类中定义的每个方法,相当于传统软件中的单元测试。
A.模板        B.系统        C.类        D.算法

一般来说,对面向对象软件的测试可分为下列4个层次进行。
(1)算法层:测试类中定义的每个方法,基本上相当于传统软件测试中的单元测试。
(2)类层:测试封装在同一个类中的所有方法与属性之间的相互作用。在面向对象软件中
类是基本模块,因此可以认为这是面向对象测试中所特有的模块测试。
(3)模板层:测试一组协同工作的类之间的相互作用,大体上相当于传统软件测试中的集
成测试,但是也有面向对象软件的特点(例如,对象之间通过发送消息相互作用)。
(4)系统层:把各个子系统组装成完整的面向对象软件系统,在组装过程中同时进行测试。

21.循环余校验码(CRC)利用生成多项式进行编码。设数据位为n位,校验位为k位,则CRC码的格式为( C )。
A.k个校验位按照指定间隔位与n个数据位混淆        B.k个校验位之后跟n个数据位
C.n个数据位之后跟k个校验位                    D.k个校验位等间隔地放入n个数据位中

考察校验码基础知识:

  • 奇偶校验码编码方法:由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码。这个校验位可以加在最前面也可以是最后面。
  • CRC的编码方法是:在k位信息位之后拼接r位校验位。
  • 海明校验码编码方法:在有效信息位中加入几个校验位形成海明码,使码距比较均匀地拉大,并把海明码的每个二进制位分配到几个奇偶校验组中。

22.以下关于通过解释器运行程序的叙述中,错误的是( C )。
A.可以由解释器直接分析并执行高级语言源程序代码
B.与直接运行编译后的机器码相比,通过解释器运行程序的速度更慢
C.解释器运行程序比运行编译和链接方式产生的机器代码效率更高
D.可以先将高级语言程序转换为字节码,再由解释器运行字节码

1.编译程序和解释程序

高级语言或汇编语言编写的程序称为源程序,源程序不能直接在计算机上执行。

  • 如果源程序是汇编语言编写的,则需要一个称为汇编程序的翻译程序将其翻译成目标程序,然后才能执行。
  • 如果源程序是为高级语言时,这个翻译程序称为编译程序
  • 按源程序中语句的执行顺序,逐条翻译并立即执行相关功能的处理程序、称为解释程序。

2、解释执行:源程序的每个语句一经解释就立即执行。

  • 优点:可移植性较好、开发速度较快、与用户通信方便。
  • 缺点:效率低。

23.进行面向对象系统设计时,若存在包A依赖于包B,包B依赖于包C,包C依赖于包A,则此设计违反了( )原则
A.稳定抽象        B.稳定依赖        C.依赖倒置        D.无环依赖

面向对象设计原则:

  • 稳定抽象原则:强调的是包的抽象程度与其稳定程度一致。
  • 稳定依赖原则:要求包之间的依赖关系都应该是稳定方向依赖的,即包要依赖的包要比自己更具有稳定性。
  • 依赖倒置原则:强调的是程序应该依赖于抽象接口,而不是具体的实现,从而降低客户与实现模块间的耦合。
  • 无环依赖:强调的是在组件的依赖关系图中不允许存在环。

24.下列算法属于Hash算法的是( A )。
A.SHA        B.DES        C.IDEA        D.RSA

消息摘要算法,也被称为哈希(Hash)算法或散列算法:MD5、SHA;

对称加密算法:DES、IDEA、AES、RC-5;

非对称加密算法:RSA;

25.在关系表中选出若干属性列组成新的关系表,可以使用( A )操作实现。
A.投影         B.笛卡儿积        C.选择        D.差

考查数据库基础SQL语言:

  • 投影:投影出某属性列。
  • 笛卡尔积:两表之间的乘积,组成新的表之后,新表的属性列为两表之和,元组数为两表之乘积。
  • 选择:选择某条件下的一条/多条元组记录。
  • 差:两表之间的差集是指在该表中减去两者之间重复的元组。

26.在撰写学术论文时,通常需要引用某些文献资料。以下叙述中,( A  )是不正确的。
A.既可引用发表的作品,也可引用未发表的作品
B.不必征得原作者的同意,不需要向他文付报酬
C.只能限于介绍、评论作品
D.只要不构成自己作品的主要部分,可适当引用资料

27.进行面向对象设计时,以下( B )不能作为继承的类型。
A.多重继承         B.分布式继承         C.单重继承         D.层次继承

考查面向对象基础:
对于面向对象的设计,支持多重继承和单重继承(多个父类和一个父类),同时也支持层次继承(一般会同时实现继承类实现接口)。

28.在采用定点二进制的运算器中,减法运算一般是通过( A )来实现的。
A.补码运算的二进制加法器         B.原码运算的二进制加法器
C.补码运算的二进制减法器         D.原码运算的二进制减法器

考查计算机基础:
在运算中,CPU分为控制器和运算器,执行算术逻辑运算的是算术逻辑运算单元,然后将其结果放到加法器执行。
在运算过程中,补码是正确的适合加减运算的,因为+0和-0对应的补码值是一样的。

29.用于收回SQL访问控制权限的操作是( C )。
A.GRANT         B.DELETE         C.REVOKE         D.DROP

考查数据库基础SQL语言部分:

  • GRANT:表示授权
  • DELETE:表示删除表结构
  • REVOKE:表示销权
  • DROP:表示删除表内部数据

30.某系统由下图所示的余部件构成。若每个部件的千小时可靠度都为R,则该系统的千小时可靠度为( D )。

A.(1-(1-R)²)(1-R)        B.(1-R)² (1-R²)        C.R(1-R²)R         D.R(1-(1-R)²)R

计算机可靠度计算:(每个部件可靠度为R)

  • 两个部件串联:R²
  • 两个部件并联:1-(1-R)²

31.已知二维数组A按行优先方式存储,每个元素占用2个存储单元,第一个元素A[0][0]的
地址为100,元素A[3][3]的存储地址是220,则元素A[5][5]的地址是(A)。
A.300        B.310        C.306        D.296

存储位置 = 起始地址 + (i*n + j) * size

其中i指行号,j指列号,n指每行元素数(数组列数)

由题目可知:A[3][3] = 220 = 100 + (3n+3)*2,可得n=19

A[5][5]的地址 = 100+(5*19+5)*2 = 300

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++ | Leetcode C++题解之第174题地下城游戏

题目&#xff1a; 题解&#xff1a; class Solution { public:int calculateMinimumHP(vector<vector<int>>& dungeon) {int n dungeon.size(), m dungeon[0].size();vector<vector<int>> dp(n 1, vector<int>(m 1, INT_MAX));dp[n][m …

并发编程-04synchronized原理

并发编程-04synchronized原理 一 synchronized基础 1.1 并发安全问题 在学习synchronized原理之前&#xff0c;我们先要了解synchronized是干嘛用的&#xff0c;什么场景下需要使用它&#xff0c;以及它的使用方式有哪些&#xff1f;接下来我们去根据一个业务场景去了解下sy…

如何高效利用iCloud指南

苹果公司提供的iCloud服务是一个强大的云平台&#xff0c;它不仅允许存储数据&#xff0c;还支持跨设备的无缝同步和备份。通过充分利用iCloud&#xff0c;用户可以在多个设备上高效地访问和管理工作文件、照片、应用程序数据等等。具体分析如下&#xff1a; iCloud基础了解和配…

mysql workbench使用schema视图导出表和列结构到excel

目的&#xff1a;导出所有表和列的名字和注释 很多时候没有正规的数据库文档&#xff0c;为了快速交流啊&#xff0c;需要一个快捷的基础。数据库建表的时候可能有注释&#xff0c;也可能没有注释。有当然好&#xff0c;查看注释就能清楚很多&#xff0c;没有的话最好一个一个补…

这表单时而能使,时而不能使【debug】

项目地址&#xff1a;StrongBySteps-GitHub(一个学习记录与时间管理系统。) 这表单时而能使&#xff0c;时而不能使 在没有填写“绑定子任务”时&#xff0c;修改计划用时&#xff0c;比如我填写的是10。显示修改成功&#xff0c;但实际上并没有修改&#xff08;还是5&#xf…

单体架构改造为微服务架构之痛点解析

1.微服务职责划分之痛 1.1 痛点描述 微服务的难点在于无法对一些特定职责进行清晰划分&#xff0c;比如某个特定职责应该归属于服务A还是服务B? 1.2 为服务划分原则的痛点 1.2.1 根据存放主要数据的服务所在进行划分 比如一个能根据商品ID找出商品信息的接口&#xff0c;把…

Web应用和Tomcat的集成鉴权1-BasicAuthentication

作者:私语茶馆 1.Web应用与Tomcat的集成式鉴权 Web应用部署在Tomcat时,一般有三层鉴权: (1)操作系统鉴权 (2)Tomcat容器层鉴权 (3)应用层鉴权 操作系统层鉴权包括但不限于:Tomcat可以和Windows的域鉴权集成,这个适合企业级的统一管理。也可以在Tomcat和应用层独立…

图神经网络实战(15)——SEAL链接预测算法

图神经网络实战&#xff08;15&#xff09;——SEAL链接预测算法 0. 前言1. SEAL 框架1.1 基本原理1.2 算法流程 2. 实现 SEAL 框架2.1 数据预处理2.2 模型构建与训练 小结系列链接 0. 前言 我们已经学习了基于节点嵌入的链接预测算法&#xff0c;这种方法通过学习相关的节点嵌…

Open AI 前 Superalignment部门研究员Leopold Aschenbrenner的关于Superintelligence担忧的真挚长文

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

JavaWeb——MySQL:DDL

目录 3.DDL&#xff1a;查询 ​编辑3.4 分组查询&#xff08;group by&#xff09; 3.4.1 什么是分组查询 3.4.2 聚合函数 3.4.3 分组查询 3.4.5 总结 3.DDL&#xff1a;查询 查询是使用最多、最频繁的操作&#xff0c;因为前面的修改以及删除&#xff0c;一般会交给数据库…

spring原理篇

第三方bean默认为方法名 自动配置 自动配置的原理 springboot的自动配置原理 首先是从 SpringBootApplication这个注解出发 有一个ComponentScan()默认扫描同级包及其子包 第二个注解是springbootconfiguration 声明当前类是一个配置类 第三个是核心 enableAutoConfigurati…

【机器学习】在【R语言】中的应用:结合【PostgreSQL数据库】的【金融行业信用评分模型】构建

目录 1.数据库和数据集的选择 1.准备工作 2.PostgreSQL安装与配置 3.R和RStudio安装与配置 2.数据导入和预处理 1.连接数据库并导入数据 1.连接数据库 2.数据检查和清洗 1.数据标准化 2.拆分训练集和测试集 3.特征工程 1.生成新特征 2.特征选择 4.模型训练和评估…

嵌入式EMC之TVS管

整理一些网上摘抄的笔记&#xff1a; TVS管认识&#xff1a; TVS的Vc要比&#xff0c;DCDC的最大承受电压要小

Flink 反压

反压 Flink反压是一个在实时计算应用中常见的问题&#xff0c;特别是在流式计算场景中。以下是对Flink反压的详细解释&#xff1a; 一、反压释义 反压&#xff08;backpressure&#xff09;意味着数据管道中某个节点成为瓶颈&#xff0c;其处理速率跟不上上游发送数据的速率…

cJSON源码解析之add_item_to_object函数

文章目录 前言add_item_to_object函数是干什么的add_item_to_object代码解析函数实现函数原理解析开头的代码constant_key参数的作用最后的if判断 add_item_to_array函数 总结 前言 在我们的日常编程中&#xff0c;JSON已经成为了一种非常常见的数据交换格式。在C语言中&#…

[深度学习] 卷积神经网络CNN

卷积神经网络&#xff08;Convolutional Neural Network, CNN&#xff09;是一种专门用于处理数据具有类似网格结构的神经网络&#xff0c;最常用于图像数据处理。 一、CNN的详细过程&#xff1a; 1. 输入层 输入层接收原始数据&#xff0c;例如一张图像&#xff0c;它可以被…

Qt 实战(6)事件 | 6.1、事件机制

文章目录 一、事件1、基本概念2、事件描述3、事件循环4、事件分发4.1、QApplication::notify()4.2、QObject::event() 5、事件传递6、事件处理器 前言&#xff1a; Qt 框架中的事件机制&#xff08;Event Mechanism&#xff09;是一种核心功能&#xff0c;它允许应用程序以事件…

【Launcher3】解决谷歌桌面的小部件重启后消失问题

1-问题摘要 这次主要解决困扰了我很久的时钟消失问题&#xff0c;大概是去年10月刚开始做EDLA项目的时候&#xff0c;需要定制谷歌桌面&#xff0c;桌面布局大概要改成这样&#xff1a; 时间显示在谷歌搜索框的上方,而安卓原生桌面大概是这样子的 我们开发一开始是使用小部件…

微服务+云原生:打造高效、灵活的分布式系统

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《未来已来&#xff1a;云原生之旅》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、云原生概述 2、微服务概述 二、微服务架构基础 1、…

二、反应式集成-spring

一、Spring WebFlux what 1、简介 - Spring WebFlux 包含一个用于执行 HTTP 请求的客户端。 有一个 基于 Reactor 的功能性、流畅的 API&#xff0c;请参阅 Reactive Libraries&#xff0c; 它支持异步逻辑的声明性组合&#xff0c;而无需处理 线程或并发。它是完全无阻塞的…