2023年上半年
# 一、计算机中,系统总线用于 (1) 连接。
A. 接口和外设
B. 运算器、控制器和寄存器
C. CPU、主存及外设部件
D. DMA 控制器和中断控制器
笔记
计算机中,系统总线用于连接 CPU、主存及外设部件。选项 C 为正确答案。系统总线是计算机内部不同部件之间进行数据传输和控制信号传送的通道,将计算机的各个部分连接在一起,使其协同工作。CPU、主存和各种外设之间都通过系统总线进行通信和数据传输。运算器、控制器和寄存器是 CPU 的组成部分,DMA 控制器和中断控制器则属于计算机系统中对外设进行管理的部分,因此不是系统总线所用于连接的对象。
# 二、在 OSI 参考模型中,负责对应用层消息进行压缩、加密功能的层次为 (7)。
A. 传输层
B. 会话层
C. 表示层
D. 应用层
笔记
在 OSI 参考模型中,负责对应用层消息进行压缩、加密功能的层次为表示层(PresentationLayer)。表示层介于会话层和应用层之间,主要处理数据格式转换、加解密以及压缩等工作,确保了通信双方之间的数据可互相理解和无误传输。
# 三、在 PKI 体系中,由 SSL / TSL 实现 HTTPS 应用。浏览器和服务器之间用于加密 HTTP 消息 的方式是 (8),如果服务器证书被撤销那么所产生的后果是 (9) 。
(8) A. 对方公钥 + 公钥加密
B. 本方公钥 + 公钥加密
C. 会话密钥 + 公钥加密
D. 会话密钥 + 对称加密
(9) A. 服务器不能执行加解密
B. 服务器不能执行签名
C. 客户端无法再信任服务器
D. 客户端无法发送加密信息给服务器
笔记
HTTPS 采用混合加密方式,即使用非对称加密算法和对称加密算法相结合的方式。整个握手过程中,服务器和客户端通过非对称加密算法进行通信,确认彼此身份后,再生成一个会话密钥,采用对称加密算法对后续的通信数据进行加密传输。因此,浏览器和服务器之间用于加密 HTTP 消息的方式是会话密钥 + 对称加密。在 PKI 体系中,为了避免证书被恶意使用或泄露造成损失,引入了证书吊销机制,即当证书被撤销时,应及时向证书颁发机构(CA)发起吊销请求,将该证书列入证书吊销列表(CRL)中。此外,还可以使用在线证书状态协议(OCSP)查询证书是否被吊销。如果服务器证书被撤销,那么客户端无法再信任服务器,选项 C 正确。客户端在建立 SSL/TLS 连接时,会验证服务器证书的有效性,如果证书被撤销,则无法验证证书的合法性,此时可能会出现安全漏洞,导致网络攻击。因此,证书被撤销将会影响到客户端与服务器之间的通信安全。
# 四、以下关于入侵防御系统功能的描述中,不正确的是 (10) 。
A. 监测并分析用户和系统的网络活动
B. 匹配特征库识别已知的网络攻击行为
C. 联动入侵检测系统使其阻断网络攻击行为
D. 检测僵尸网络,木马控制等僵尸主机行为
笔记
入侵防御系统是一种网络安全防护工具,旨在监测、识别和阻断各种网络攻击行为,保护计算机系统和网络的安全。常见的入侵防御系统包括入侵检测系统、入侵防火墙等。以下是关于入侵防御系统功能的描述:
A. 监测并分析用户和系统的网络活动:入侵防御系统可以监测并记录所有用户和系统的网
络活动,然后进行分析,以便及时发现可疑的行为。
B. 匹配特征库识别已知的网络攻击行为:入侵防御系统通常会维护一个特征库,其中包含各种已知的网络攻击行为的特征信息。当系统检测到一个可疑的行为时,会将其与特征库进行匹配,以便及时发现和阻断已知的网络攻击行为。
C. 联动入侵检测系统使其阻断网络攻击行为:本选项不正确。入侵防御系统本身就是一种入侵检测系统,不需要与其他入侵检测系统进行联动。入侵防御系统的主要功能之一就是阻断网络攻击行为。
D. 检测僵尸网络,木马控制等僵尸主机行为:入侵防御系统可以检测并阻断各种僵尸网络、木马控制等僵尸主机的行为,从而保护计算机系统和网络的安全。
# 五、以下关于数据流图基本加工的叙述中,不正确的是 (15) 。
A. 对每一个基本加工,必须有一个加工规格说明
B. 加工规格说明必须描述把输入数据流变换为输出数据流的加工规则
C. 加工规格说明需要给出实现加工的细节
D. 决策树、决策表可以用来表示加工规格说明
笔记
加工规格说明需要描述把输入数据流变换为输出数据流的加工规则,并给出实现加工的细节,但并不一定描述实现的细节。加工规格说明应该是高层次的、抽象的规范,描述了输入和输出之间的转换过程,而不是具体实现步骤。实现加工的细节应该在程序设计中进行描述。
# 六、某文件管理系统采用位示图(bitmap)来记录磁盘的使用情况,若计算机系统的字长为 64 位, 磁盘容量为 512GB,物理块的大小为 4MB,那么位示图的大小为(23) 个字。
A. 1024
B. 2048
C. 4096
D. 9600
笔记
由于物理块的大小为 4MB,因此整个磁盘共有:(注意单位的换算)512GB ** 1024 / 4MB = 131072 个物理块 由于计算机系统的字长为 64 位,而一个位只能记录一个物理块的使用情况,因此位示图的 大小为: 131072 / 64 = 2048(个字)
# 七、磁盘调度分为移臂调度和旋转调度两类,在移臂调度的算法中, (24)算法可能会随时改变移动臂的运行方向。
A. 单向扫描和先来先服务
B. 电梯调度和最短寻道时间优先
C. 电梯调度和最短寻道时间优先
D. 先来先服务和最短寻道时间优先
笔记
因为先来先服务是谁先请求先满足谁的请求,而最短寻找时间优先是根据当前磁臂到要请求访问磁道的距离,谁短满足谁的请求,故先来先服务和最短寻找时间优先算法可能会随时改变移动臂的运行方向。
# 八、以下关于增量模型优点的叙述中,不正确的是 (29) 。
A. 能够在较短的时间提交一个可用的产品系统
B. 可以尽早让用户熟悉系统
C. 优先级高的功能首先交付,这些功能将接受更多的测试
D. 系统的设计更加容易
笔记
增量模型是一种迭代式软件开发模型,每个迭代周期都会交付一部分可用的功能。以下是对其他选项的解释:
A. 能够在较短的时间提交一个可用的产品系统:由于每个迭代周期都会交付一部分可用的功能,因此能够在较短的时间内提交一个可用的产品系统。
B. 可以尽早让用户熟悉系统:由于每个迭代周期都会提交部分功能,因此可以让用户尽早熟悉系统,并根据用户的反馈进行调整和优化。
C. 优先级高的功能首先交付,这些功能将接受更多的测试:由于优先级高的功能将优先交付,因此这些功能将接受更多的测试,从而提高产品质量。
D. 系统的设计更加容易:这个说法不正确。增量模型强调逐步迭代开发,每个迭代周期都需要完成一部分功能,因此需要预先规划好所需功能,并且要考虑未来的扩展性和兼容性,因此系统的设计并不比其它开发模型更加容易。
# 九、以下敏捷开发方法中, (30) 使用迭代的方法,把一段短的时间(如 30 天)的迭代称为一 个冲刺,并按照需求优先级来实现产品。
A. 极限编程(XP)
B. 水晶法(Crystal)
C. 并列争求法(Scrum)
D. 自适应软件开发(ASD)
笔记
使用迭代的方法,把一段短的时间(如 30 天)的迭代称为一个冲刺,并按照需求优先级来实现产品的敏捷开发方法是 Scrum。 Scrum
是一种敏捷软件开发的过程框架,用于管理和控制软件开发过程。Scrum 中的团队通 过计划、迭代、回顾等方式进行项目管理,采用迭代式开发模式,以 30 天左右的迭代周期(称为冲刺)为基本单位,按照需求优先级来实现产品。在每个迭代周期结束时,团队会举行回顾会议,总结经验教训,不断优化团队的开发过程。 其他选项的描述如下:
极限编程(XP)是一种敏捷软件开发方法,关注团队成员之间的沟通、快速反馈、持续集成等开发实践。
水晶法(Crystal)是一种敏捷软件开发方法,强调团队合作、迭代开发、反馈机制等方面。
自适应软件开发(ASD)是一种敏捷软件开发方法,倡导根据需求的变化及时调整开发过程,实现软件开发的自适应性能力。
# 十、以下流程图中,至少需要 (34) 个测试用例才能覆盖所有路径。采用 McCabe 方法计算程序复杂度为 (35) 。
(34)
A. 3
B. 4
C. 5
D. 6
(35)
A. 2
B. 3
C. 4
D. 5
笔记
该流程图需要用 4 个用例实现覆盖所有路径。
用例一:开始、语句 1、判断 1(N)、语句 6、结束
用例二:开始、语句 1、判断 1(Y)、语句 2、判断 2(N)、语句 3、语句 5、语句 6、结束
用例三:开始、语句 1、判断 1(Y)、语句 2、判断 2(Y)、判断 3(N)、语句 4、语句 5、 语句 6、结束
用例四:开始、语句 1、判断 1(Y)、语句 2、判断 2(Y)、判断 3(Y)、判断 1(Y)......
采用 McCabe 方法计算程序的复杂度,首先需要确定流程图中的环路数。该流程图中有 3 个环路,因此程序的复杂度为 3+1=4。
# 十一、对采用面向对象方法开发的系统进行测试时,通常从不同层次进行测试。测试类中定义的每个方法属于(39) 层。
A. 算法
B. 类
C. 模板
D. 系统
笔记
面向对象测试。
(1) 算法层。测试类中定义的每个方法,基本上相当于传统软件测试中的单元测试。
(2) 类层。测试封装在同一个类中的所有方法与属性之间的相互作用。
(3) 模板层。测试一组协同工作的类之间的相互作用,大体上相当于传统软件测试中的集成测试,但是也有面向对象软件的特点 (例如,对象之间通过发送消息相互作用)。
(4) 系统层。把各个子系统组装成完整的面向对象软件系统,在组装过程中同时进行测试。
# 十二、以下关于 UML 序列图的描述是(41),下图所示 UML 图中消息可能执行的顺序是(42)。
(41)
A. 系统在它的周边环境的语境中所提供的外部可见服务
B. 某一时刻一组对象以及它们之间的关系
C. 系统内从一个活动到另一个活动的流程
D. 以时间顺序组织的对象之间的交互活动
(42)
A. a→b→c→a→b
B. c
C. a→b→a→b→c
D. a→b→c→a→b→c
笔记
对于 UML 图中的描述,其中
A 选项系统在它的周边环境的语境中所提供的外部可见服务是 “用例图” 的描述
B 选项某一时刻一组对象以及它们之间的关系是 “对象图” 的描述
C 选项系统内从一个活动到另一个活动的流程是 “活动图” 的描述
D 选项以时间顺序组织的对象之间的交互活动是 “序列图” 的描述 其中序列图中有一个大的矩形将其包裹,并且矩形中存在一个 Loop 循环为 Loop [1..2],表示循环的次数最少 1 次,最多两次,矩形中存在消息 a 和 b,并且按从左到右的顺序执行。该序列图先执行完循环中的消息再执行最后的消息 c。那么选项 A 和 D 在执行完 c 消息后又执行了循环的内容,然而此时循环已经结束。同理 B 选项没有执行循环直接执行 c 消息也不正确。
而 C 选项 执行了两次循环并退出执行最后的消息 c。
# 十三、某旅游公司欲开发一套软件系统,要求能根据季节,节假日等推出不同的旅行定价包,如淡季打折、一口价等。实现该要求适合采用 (46) 模式,该模式的主要意图是(47) 。
(46)
A. 策略模式(Strategy)
B. 状态(State)
C. 观察者(Observer)
D. 命令(Command)
(47)
A. 将一个请求封装为对象,从而可以用不同的请求对客户进行参数化
B. 当一个对象的状态发生改变时,依赖于它的对象都得到通知并被自动更新
C. 允许一个对象在其内部状态改变时改变它的行为
D. 定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换
笔记
策略模式适合于解决一类问题,该类问题有多种不同的解决方法,需要根据不同的情况采用不同的解决方法。在这种情况下,可以使用策略模式将每种解决方法封装成一个独立的策略对象,客户端可以根据需要选择不同的策略对象。
对于旅游定价系统来说,不同的季节和节假日需要采取不同的定价策略,因此可以把不同的定价策略封装成独立的策略对象,并通过策略模式实现动态选择不同的策略。
因为策略模式的主要意图就是定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。
# 十四、Python 中采用 (48) 方法来获取一个对象的类型。
A. str()
B. type()
C. id()
D. object()
# 十五、在 Python 语言中,语句 x = (49) 不能定义一个元组。
A. (1, 2, 1, 2)
B. 1, 2, 1, 2
C. tuple()
D. (1)
笔记
在 Python 语言中,用逗号分隔一组值,可以创建一个元组。因此,选项 A 和 B 都可以定 义一个元组。选项 C 中的 tuple () 是一个空元组的构造方式。
对于选项 D,由于括号 () 既可以用来表示数学中的一个表达式,也可以用来括起元组,因此 (1) 并不表示一个元组,它实际上等价于整数 1。
如果想要定义只有一个元素的元组,需要在 元素后面加上逗号来消除歧义,例如 (1,) 表示只包含一个元素的元组。
# 十六、关于 Python 语言的叙述中,不正确的是 (50) 。
A. for 语句可以用在序列(如列表、元组和字符串)上进行迭代访问
B. 循环结构如 for 和 while 后可以加 else 语句
C. 可以用 if...else 和 switch...case
D. 支持嵌套循环
笔记
选项 C 中的 "可以用 if...else 和 switch...case 语句表示选择结构" 是不正确的。 在 Python 中,并没有像其他编程语言(如
C/C++、Java)一样的 switch 语句,因此我们无法 用 switch...case 语句来表示选择结构。相反,Python 使用 if 语句来实现选择结构。if
语句允许在条件为真时执行一个代码块,否则执行另一个代码块。
# 十七、在数据库应用系统的开发过程中,开发人员需要通过视图层、逻辑层次上的抽象来对用户屏蔽系统的复杂性,简化用户与系统的交互过程。错误的是 (51) 。
A. 视图层是最高层次的抽象
B. 逻辑层是比视图层更低一层的抽象
C. 物理层是最低层次的抽象
D. 物理层是比逻辑层更高一层的抽象
笔记
在数据库应用系统的开发过程中,开发人员需要通过视图层、逻辑层次上的抽象来对用户屏蔽系统的复杂性,简化用户与系统的交互过程。
正确的说法是视图层是最高层次的抽象,逻辑层是比视图层更低一层的抽象,物理层是最低层次的抽象,因此选项 D 错误。
视图层是用户看到的数据库的外部表现形式,也称为外模式,它提供给用户一个简化的、符合用户需要的数据视图。视图层的设计应该是与具体应用程序无关的,即可以被多个应用程序使用。
逻辑层是数据库管理系统内部,具体的说是在外模式和内模式之间的一个中介层,它把外模式映射为内模式,同时向上层提供数据加工、查询、更新等操作的接口,实现了数据独立性和操作独立性。
物理层是最低层次的抽象,它定义了数据在磁盘或其他存储设备上的组织方式和存取方法,包括数据存储结构、访问路径、存储设备的安排和控制等。
# 十八、利用栈对算术表达式 10 ** (40 -- 30 / 5) + 20 求值时,存放操作数的栈(初始为空)的容量至 少为 (57),才能满足暂存该表达式中的运算数或运算结果的要求。
A. 2
B. 3
C. 4
D. 5
笔记
在计算算术表达式的值时,通常需要使用两个栈:一个运算符栈和一个操作数栈。对于给定的表达式 10 ** (40 -- 30 / 5) + 20,可以按照以下步骤进行计算:将表达式转换为后缀(逆波兰)表达式:10 40 30 5 /- ** 20 + 从左到右扫描表达式,遇到数字就将其压入操作数栈中,遇到运算符就从操作数栈中弹出相应的操作数进行计算,计算结果再压入操作数栈中。在这个过程中,需要使用一个运算符栈来保存运算符及其优先级。在扫描完整个表达式后,操作数栈中所剩余的元素即为表达式的计算结果。因此,在扫描后缀表达式时,遇到 10、40、30、5 等数字都压入操作数栈,而当遇到 / 时才进行出栈操作。遇到第一个符号之前操作数栈中已有 4 个元素,之后进行运算再将结果重新压入操作数栈,不断计算得到最终结果。因此操作数栈的容量至少为 4 才能满足运算结果的要求。
# 十九、设有 5 个字符,根据其使用频率为其构造哈夫曼编码。以下编码方案中(58) 是不可能的。
A. { 111, 110, 101, 100, 0 }
B. { 0000, 0001, 001, 01, 1 }
C. { 11, 10, 01, 001, 000 }
D. { 11, 10, 011, 010, 000 }
笔记
这个题只用把树构造出来就行了,左边是 0 右边是 1,只要记住度不能为 1 就可以了。
# 二十、对某有序顺序表进行折半查找(二分查找)时,进行比较的关键字序列不可能是(60) 。
A. 42, 61, 90, 85, 77
B. 42, 90, 85, 61, 77
C. 90, 85, 61, 77, 42
D. 90, 85, 77, 61, 42
笔记
这个题解题思路就是第一个为根结点,比它大的放右边,小的放左边,如果有一层左右都有了那么肯定是错的。
# 二十一、设由三棵树构成的森林中,第一棵树、第二棵树和第三棵树的结点总数分别为 n1、n2 和 n3。 将该森林转换为一颗二叉树,那么该二叉树的右子树包含(61) 个结点。
A. n1
B. n1 + n2
C. n3
D. n2 + n3
笔记
在计算机科学中,森林是由若干棵互不相交的树组成的。我们可以将森林转换为二叉树。在这个转换过程中,森林中的每一棵树都会成为二叉树的一个子树。
具体来说,森林中的第一棵树会成为二叉树的左子树。然后,森林中剩下的所有树(如果有的话)会成为第一棵树的右兄弟,也就是二叉树的右子树。
# 二十二、采用 Kruskal 算法求解下图的最小生成树,采用的算法设计策略是 (64)。该最小生成树 的权值是 (65) 。
(64) A. 分治法 B. 动态规划 C. 贪心法 D. 回溯法
(65) A. 14 B. 16 C. 20 D. 32
笔记
Kruskal 算法是一种使用贪心策略的最小生成树算法。该算法按照边权值的大小依次选择边,并保证在选择每条边时不会形成环,直到选出 n−1 条边为止。n 指的是多少个结点。
# 二十三、www 的控制协议是 (66) 。
A. FTP B. HTTP C. SSL D. DNS
笔记
"www" 代表 World Wide Web(万维网),是一种基于超文本标记语言(HTML)的信息共享、交流平台。而 "www" 的控制协议是 B. HTTP(Hypertext Transfer Protocol,超文本传输协议), 它是一种用于传输超媒体文档(例如 HTML)的应用层协议。HTTP 是一个请求 / 响应模型的协议,客户端向服务器发送请求,服务器向客户端返回响应内容。
A. FTP(File Transfer Protocol,文件传输协议)是另一种常见的 Internet 协议。FTP 协议用于 在网络上进行文件传输,支持上传和下载文件。
C. SSL(Secure Sockets Layer,安全套接字层)是一种加密协议,用于保护在 Internet 上进行的通信数据。SSL 通常在 HTTP 上使用,称为 HTTPS。
D. DNS(Domain Name System,域名系统)是一种分布式数据库系统,用于将域名解析为 IP 地址,以便计算机能够访问互联网。DNS
是一个应用层协议,常用于网络中的命名服务。
# 二十四、在 Linux 操作系统中通常使用 (67) 。作为 Web 服务器,其默认的 Web 目录为 (68) 。
(67) A. IIS B. Apache C. NFS D. MYSQL
(68) A. /etc/httpd B. /var/log/httpd C. /etc/home D. /home/httpd
笔记
在 Linux 操作系统中通常使用 Apache 作为 Web 服务器,Apache 是一个开放源代码的 HTTP 服务器软件,也是最流行的 Web 服务器之一。 默认情况下,在 Apache 中网站文件存放的根目录为 /var/www/html 或 /var/www。而 Apache 记录的日志文件一般存放在 /var/log/httpd 目录下。 在 Linux 中,一般使用 Apache 作为 Web 服务器,其站点主目录是 /home/httpd。
# 二十五、SNMP 的传输层协议是 (69) 。
A. UDP B. TCP C. IP D. ICM
笔记
SNMP(Simple Network Management Protocol)的传输层协议是 A. UDP(User Datagram Protocol)。 SNMP 是一种用于管理网络设备的协议,可以监控和控制网络上的各种网络设备,包括路由 器、交换机、服务器等。SNMP 消息是通过 UDP 协议进行传输的,其中 SNMP 协议为应用层协议,而 UDP 协议为传输层协议,用于在网络上发送数据报,没有连接建立和数据可靠性保证,但传输效率高。