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

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值