2022年职业考证-软考-软件设计师考试名师押题精选卷I(带答案详解)试卷号11_第1页
2022年职业考证-软考-软件设计师考试名师押题精选卷I(带答案详解)试卷号11_第2页
2022年职业考证-软考-软件设计师考试名师押题精选卷I(带答案详解)试卷号11_第3页
2022年职业考证-软考-软件设计师考试名师押题精选卷I(带答案详解)试卷号11_第4页
2022年职业考证-软考-软件设计师考试名师押题精选卷I(带答案详解)试卷号11_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

住在富人区的她2022年职业考证-软考-软件设计师考试名师押题精选卷I(带答案详解)(图片可根据实际调整大小)题型12345总分得分一.综合题(共50题)1.案例题

【说明】

希尔排序算法又称最小增量排序算法,其基本思想是:

步骤1:构造一个步长序列delta1、delta2…、deltak,其中delta1=n/2,后面的每个delta是前一个的1/2,deltak=1;

步骤2:根据步长序列、进行k趟排序;

步骤3:对第i趟排序,根据对应的步长delta,将等步长位置元素分组,对同一组内元素在原位置上进行直接插入排序。

【C代码】

下面是算法的C语言实现。

(1)常量和变量说明

data:待排序数组data,长度为n,待排序数据记录在data[0]、data[1]、…、data[n-1]中。

n:数组a中的元素个数。

delta:步长数组。

(2)C程序

#include

voidshellsort(intdata[],intn){

int*delta,k,i,t,dk,j;

k=n;

delta=(int*)nalloc(sizeof(int)*(n/2));

if(i=0)

do{

(1);

delta[i++]=k;

}while(2);

i=0;

while((dk=delta[i])>0){

for(k=delta[i];k=0&&t

【问题1】(8分)

根据说明和c代码,填充c代码中的空(1)~(4)。

【问题2】(4分)

根据说明和c代码,该算法的时间复杂度(5)O(n2)(小于、等于或大于)。该算法是否稳定(6)(是或否)。

【问题3】(3分)

对数组(15、9、7、8、20、-1、4)用希尔排序方法进行排序,经过第一趟排序后得到的数组为(7)。

【答案】【问题1】(8分)

(1)k=k/2

(2)k>1

(3)data[k]【问题3】(3分)

(7)(4,9,-1,8,20,7,15)

【解析】问题1:

希尔排序是一种经典的高效插入类排序算法。不稳定的排序算法,将每个步长划分为多个不连续的子序列,对每个子序列再次采用直接插入排序算法。

如对某数组A=(a1,a2,a3...a10),在某趟排序时,若delta=3,则将A分成三个子序列,A1=(a1,a4,a7,a10),A2=(a2,a5,a8),A3=(a3,a6,a9),然后分别在原位置上对A1、A2和A3进行直接插入排序处理。最后一趟排序中,delta=1,这样可以确保输出序列是有序的。delta序列是希尔排序算法在具体实现的过程中定义的,本题在题干中已经给出,delta1=n/2,后面的每个delta是前面的1/2,最后一个deltak=1。根据题干,很容易得到空(1)为k=k/2,空(2)填k>1。

接下来的代码段是根据delta值进行每一趟的排序,每趟排序是对不连续的每个子序列进行插入排序,因此,空(3)填data[k]问题2:

希尔排序算法是一种不稳定的排序算法,时间复杂度约在O(n^1.3)。

问题3:

对于数组(15、9、7、8、20、-1、4)用希尔排序方法进行排序,n=7,根据题干说明delta=n/2=3,A1(15,8,4),A2(9,20),A3(7,-1),每个子序列排序后得到A1(4,8,15),A2(9,20),A3(-1,7),还原得到(4,9,-1,8,20,7,15)

2.单选题

以下信息交换情形中,采用异步传输方式的是()。

问题1选项

A.CPU与内存储器之间交换信息

B.CPU与PCI总线交换信息

C.CPU与l/O接口交换信息

D.I/O接口与打印设备间交换

【答案】C

【解析】本题考查的是I/O接口相关概念。

CPU与I/O接口交换信息是异步传输的,C选项描述正确。

3.案例题

阅读下列说明和C++代码。将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

在软件系统中,通常不会给用户提供取消、不确定或者错误操作的选择,允许将系统恢复到原先的状态。现使用备忘录(Memento)模式实现该要求,得到如图5-1所示的类图。Memento包含了要被恢复的状态。Originator创建并在Memento中存储状态。Caretaker负责从Memento中恢复状态。

图5-1类图

【C++代码】

#include

#include

#include

usingnamespacestd;

classMemento{

private:

stringstate;

public:

Memento(stringstate){this->state=state;}

stringgetState(){returnstate;}

}

classOriginator{

private:

stringstate;

public:

voidsetState(stringstate){this>sate=state;}

stringgetState(){returnstate;}

MementosaveStateToMemento(){return(1)}

voidgetStateFromMemento(MementoMemento){state(2)}

classCareTaker{

private:

vector

mementoList;

pubilc:

viod(3){mementoList.pushback(state)

(4);returnmementoList(index);}

intmian(){

Originator*originator=newOriginator();

CareTaker*careTaker=newCareTaker();

originator->setState("State#1");

originator->setState("State#2");

careTaker->add(_(5)_);

originator->setState("State#3");

careTaker->add((6));

originator->setState("State#4");

coutgetState()getStateFromMemento(careTaker->get(0);

coutgetStatee()getStateFromMemento(careTaker->get(1);

coutgetState()

【答案】本题代码存在缺失,暂未给出答案。请参照JAVA代码题。

4.单选题

给定关系R(A,B,C,D)和关系S(A,D,E,F),若对这两个关系进行自然连接运算R▷◁S后的属性列有()个;关系代数表达式σR.B>S.F(R▷◁S)与()等价。

问题1选项

A.4

B.5

C.6

D.8

问题2选项

A.σ2>8(RxS)

B.π1,2,3,4,7,8(σ1=5∧2>8∧4=6(R×S)

C.σ”2">"8"(RxS)

D.π1,2,3,4,7,8(σ1=5∧"2">"8"∧4=6(RxS))

【答案】第1题:C

第2题:B

【解析】第1题:本题考查关系代数相关知识。

自然连接的属性列数是二者之和减去重复列数,本题R和S进行自然连接后,结果属性列数为4+4-2=6,第一空选择C选项。

第2题:判断自然连接与笛卡尔积关系表达式是否等价时,需要注意需要同名属性列取值相等才可以与自然连接等价,本题应该选择B选项,其他选项都不满足S.A=R.AANDR.D=S.D。

5.单选题

采用面向对象方法进行系统设计时,不应该强迫客户依赖于他们不用的方法,接口属于客户,不属于它所在的类层次结构。即:依赖于抽象,不要依赖于具体,同时在抽象级别不应该有对于细节的依赖。这属于(

)。

问题1选项

A.单一责任

B.开放-封闭

C.接口分离

D.里氏替换

【答案】C

【解析】单一职责原则:设计目的单一的类。

开放-封闭原则:对扩展开放,对修改封闭。

里氏替换原则:子类可以替换父类。

依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程。

接口隔离原则:使用多个专门的接口比使用单一的总接口要好。不强迫客户依赖于他们不用的方法,即:依赖于抽象,不要依赖于具体,同时在抽象级别不应该有对于细节的依赖。

本题题干看起来类似于依赖倒置原则,但依赖倒置不涉及强迫客户依赖于他们不用的方法。本题描述的应该是接口隔离原则。本题选择C选项。

6.单选题

排序算法的稳定性是指将待排序列排序后,能确保排序码中的相对位置保持不变。()是稳定的排序算法。

问题1选项

A.冒泡排序

B.快速排序

C.堆排序

D.简单选择排序

【答案】A

【解析】本题考查常见算法的应用。

将待排序列排序后,能确保排序码中的相对位置保持不变指的是稳定性排序,本题中只有冒泡排序是稳定的排序,快速排序、堆排序、简单选择排序都是不稳定排序。本题选择A选项。

7.单选题

在OSI参考模型中,()在物理线路上提供可靠的数据传输。

问题1选项

A.物理层

B.数据链路层

C.网络层

D.应用层

【答案】B

8.单选题

下图所示为一个非确定有限自动机(NFA),S0为初态,S3为终态。该NFA识别的字符串(

)。

问题1选项

A.不能包含连续的字符“0”

B.不能包含连续的字符“1”

C.必须以“101”开头

D.必须以“101”结尾

【答案】D

【解析】本题考查NFA有限自动机相关问题。

针对这类问题,可以采取找出对应反例的形式表示。

S0是初态,S3是终态,识别出从S0为初态到S3为终态的路径。

可以看到无论如何到达S3终态都需要经过S1-S2,即末尾必须存在”101“结尾的。

对于A和B选项不能包含连续字符的”0“和“1”,我们可以看到在S0初态中,有1个字符串0和1自循环,是可以包含连续的”0“和”1“的,所以错误。

对于C选项必须以“101”开头,说法错误,可以任意10的字符开头。

9.单选题

以下对于路由协议的叙述中,错误的是(

)。

问题1选项

A.路由协议是通过执行一个算法来完成路由选择的一种协议

B.动态路由协议可以分为距离向量路由协议和链路状态路由协议

C.路由协议是一种允许数据包在主机之间传送信息的种协议

D.路由器之间可以通过路由协议学习网络的拓扑结构

【答案】C

【解析】本题考查计算机网络路由协议。

路由协议:是一种指定数据包转送方式的网上协议。Internet网络的主要节点设备是路由器,路由器通过路由表来转发接收到的数据。转发策略可以是人工指定的(通过静态路由、策略路由等方法)。在具有较小规模的网络中,人工指定转发策略没有任何问题。但是在具有较大规模的网络中(如跨国企业网络、ISP网络),如果通过人工指定转发策略,将会给网络管理员带来巨大的工作量,并且在管理、维护路由表上也变得十分困难。为了解决这个问题,动态路由协议应运而生。动态路由协议可以让路由器自动学习到其他路由器的网络,并且网络拓扑发生改变后自动更新路由表。网络管理员只需要配置动态路由协议即可,相比人工指定转发策略,工作量大大减少,其中动态路由协议又分为距离向量路由协议和链路状态路由协议。

工作原理:路由协议通过在路由器之间共享路由信息来支持可路由协议。路由信息在相邻路由器之间传递,确保所有路由器知道到其它路由器的路径。总之,路由协议创建了路由表,描述了网络拓扑结构;路由协议与路由器协同工作,执行路由选择和数据包转发功能。

10.单选题

AES是一种()算法。

问题1选项

A.公钥加密

B.流密码

C.分组加密

D.消息摘要

【答案】C

【解析】AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥。并且使用128位分组加密和解密数据。

11.单选题

浏览器开启无痕浏览模式时,()仍然会被保存。

问题1选项

A.浏览历史

B.搜索历史

C.下载的文件

D.临时文件

【答案】C

【解析】本题考查的是浏览器应用。

在浏览器开启无痕浏览模式时,浏览历史、搜索历史和临时文件都不会被保存,只有下载的文件可以被保存。本题选择C选项。

12.案例题

某工业制造企业欲开发一款智能缺陷检测系统,以有效提升检测效率,节约人力资源,该系统的主要功能是:

(1)基础信息管理。管理员对检测质量标准和监控规则等基础信息进行设置。

(2)检测模型部署。管理员对采用机器学习方法建立的检测模型进行部署。

(3)图像采集。实时接收生产线上检测设备拍摄的产品待检信息进行存储和缺陷检测,待检信息包括产品编号、生产时间、图像序号和产品图像。

(4)缺陷检测。根据检测模型和检测质量标准对图像采集接收到的产品待检信息中所有图像进行检测。若所有图像检测合格,设置检测结果信息为合格;若一个产品出现一张图像检测不合格,就表示该产品不合格。对不合格的产品,其检测结果包括产品编号和不合格类型。给检测设备发送检测结果,检测设备剔除掉不合格产品。

(5)质量监控。根据监控规则对产品质量进行监控,将检测情况展示给检测业务员,若满足报警条件。向检测业务员发送质量报警,检测业务员发起远程控制命令,系统给检测设备发送控制指令进行处理。

(6)模型监控。在系统中部署的模型、产品的检测信息结合基础信息进行监测分析,将模型运行情况发给监控人员。

现采用结构化方法对智能检测系统进行分析与设计,获得如图1-1的上下文数据流图和图1-2所示的0层数据流图。

图1-1顶层图

图1-20层图

【问题1】(4分)

使用说明中的语句,给出图1-1中的实体E1~E4的名称。

【问题2】(3分)

使用说明中的语句,给出图1-2中的数据存储D1~D3的名称。

【问题3】(5分)

根据注明和图中术语,补充图1-2中缺失的数据及起点和终点。

【问题4】(3分)

根据说明,采用结构化语言对“缺陷检测”的加工逻辑进行描述。

【答案】【问题1】(4分)

E1:检测设备;E2:管理员;E3:检测业务员;E4:监控人员

【问题2】(3分)

D1:检测模型文件;D2:产品检测信息文件;D3:基础信息文件

【问题3】(5分)

待检信息,起点:P2,终点:P3

远程控制命令,起点:E3,终点:P5

监控规则,起点:D3,终点:P5

检测信息,起点:D2,终点:P5

基础信息,起点:D3,终点:P6

【问题4】(3分)

根据说明,采用结构化语言对缺陷检测的加工逻辑进行描述。

DO{

检测所收到的所有图像;

IF(出现一张图像检测不合格)

THEN{

设置检测结果信息为不合格;

不合格产品检测结果=产品星号+不合格类型;

}ELSE{

设置检测结果信息为合格

}

ENDIF

给检测设备发送检测结果;

检测设备剔除掉不合格产品;

}

ENDDO

【解析】本题是典型的数据流图分析题型。

问题1:

对于这类型题型的分析,我们可以直接看到0层图比较合适,找到对应的实体与其所在加工名称,并在题干描述找到关键信息。

根据“实时接收生产线上检测设备拍摄的产品待检信息进行存储和缺陷检测”,”给检测设备发送检测结果”,“系统给检测设备发送控制指令进行处理”可知E1为检测设备;根据“管理员对常用机器学习方法建立的检测模型分布”,“管理员对检测标准和检测规则等基础信息设置”可知E2为管理员;根据“根据监控规则对产品质量进行监控,将检测情况展示给检测业务员,若满足报警条件。向检测业务员发送质量报警,检测业务员发起远程控制命令”可知E3为业务员;根据“在系统中部署的模型、产品的检测信息结合基础信息进行监测分析,将模型运行情况发给监控人员。”可知E4为监控人员。

问题2:

由于题干中没有对于这些存储进行介绍,所以我们根据关于该存储的信息流来判断该存储存放的内容,然后在其后附加文件、表、记录的关键词即可,表示数据存储,那D1、D2、D3可分别为:D1:检测模型文件;D2:产品检测信息文件;D3:基础信息文件

问题3:

可根据数据流图平衡原则得:0层图缺少了一条由E3流向检测系统的名为远程控制命令的数据流。根据(5)质量监控描述可得应该补充一条由E3到P5的远程控制命令的数据流。其次再根据(5)质量监控的说明“根据监控规则对产品质量进行监控,将检测情况展示给检测业务员”说明加工“质量监控”需要D3“监控规则

”中监控规则,产品信息来源于产品图像的D2“检测信息”;这里没有明确描述,但是需要补充(3)加工“图像采集”相关输出的数据流完整给出,缺少“产品待检信息进行缺陷检测”,即P2为起点、P3为终点的待检信息;说明(6)根据描述“对系统部署的模型、产品检测信息结合基础信息进行监测分析”可知需要从D3中读取“基础信息”。

问题4:

本问题采用结构化有语言描述“缺陷检测”加工逻辑。常用的加工逻辑描述方法有结构化语言、判定表和判定树。

根据规则说明:答案言之有理即可。

DO{

检测所收到的所有图像;

IF(出现一张图像检测不合格)

THEN{

设置检测结果信息为不合格;

不合格产品检测结果=产品星号+不合格类型;

}ELSE{

设置检测结果信息为合格

}

ENDIF

给检测设备发送检测结果;

检测设备剔除掉不合格产品;

}

ENDDO

13.单选题

在某系统中,不同组(GROUP)访问数据的权限不同,每个用户(User)可以是一个或多个组中的成员,每个组包含零个或多个用户。现要求在用户和组之间设计映射,将用户和组之间的关系由映射进行维护,得到如下所示的类图。该设计采用(

)模式,用一个对象来封装系列的对象交互;使用户对象和组对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。该模式属于(

)模式,该模式适用(

)。

问题1选项

A.状态(State)

B.策略(Strategy)

C.解释器(Interpreter)

D.中介者(Mediator)

问题2选项

A.创建型类

B.创建型对象

C.行为型对象

D.行为型类

问题3选项

A.需要使用一个算法的不同变体

B.有一个语言需要解释执行,并且可将句子表示为一个抽象语法树

C.一个对象的行为决定于其状态且必须在运行时刻根据状态改变行为

D.一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解

【答案】第1题:D

第2题:C

第3题:D

【解析】本题考查设计模式的问题。

针对于题干和图示来看,不同组(GROUP)访问数据的权限不同,每个用户(User)可以是一个或多个组中的成员,每个组包含零个或多个用户。现要求在用户和组之间设计映射,将用户和组之间的关系由映射进行维护,在组和用户之间用UserGroupMapper实现两者的交互,两者之间不直接交互,用一个对象来封装系列的对象交互;使用户对象和组对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互,是典型关于中介者模式的描述和应用。

中介者模式属于行为型对象模型,可以适用于一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解。

其中以下场景中A选项是对策略模式的描述,B选项是对解释器的描述,C选项是对状态模式的描述。

综上所述,本题选择D,C,D

14.案例题

阅读下列说明和代码,回答问题1和问题2,将解答写在答题纸的对应栏内。

【说明】

凸多边形是指多边形的任意两点的连线均落在多边形的边界或内部。相邻的点连线落在多边形边界上,称为边;不相邻的点连线落在多边形内部,称为弦。假设任意两点连线上均有权重,凸多边形最优三角剖分问题定义为:求将凸多边形划分为不相交的三角形集合,且各三角形权重之和最小的剖分方案。每个三角形的权重为三条边权重之和。

假设N个点的凸多边形点编号为V1,V2,……,VN,若在VK处将原凸多边形划分为一个三角形V1VkVN,两个子多边形V1,V2,…,Vk和Vk,Vk+1,…VN,得到一个最优的剖分方案,则该最优剖分方案应该包含这两个子凸边形的最优剖分方案。用m[i][j]表示带你Vi-1,Vi,…Vj构成的凸多边形的最优剖分方案的权重,S[i][j]记录剖分该凸多边形的k值。

其中:W(Vi-1VkVj)=Wi-1,k+Wk,j+Wj,i-1为三角形Vi-1VkVj的权重,Wi-1,k,Wk,j,Wj,i-1分别为该三角形三条边的权重。求解凸多边形的最优剖分方案,即求解最小剖分的权重及对应的三角形集。

[C代码]

#include<stdio.h>

#defineN6//凸多边形规模

intm[N+1][N+1];//m[i][j]表示多边形Vi-1到Vj最优三角剖分的权值

intS[N+1][N+1];//S[i][j]记录多边形Vi-1到Vj最优三角剖分的k值

intW[N+1][N+1];//凸多边形的权重矩阵,在main函数中输入

/*三角形的权重a,b,c,三角形的顶点下标*/

intget_triangle_weight(inta,intb,intc)

{

returnW[a][b]+W[b][c]+W[c][a];

}

/*求解最优值*/

voidtriangle_partition(){

inti,r,k,j;

inttemp;

/*初始化*/

for(i=1;i{

/*r为子问题规模*/

for(i=1;k

{

(2);

m[i][j]=m[i][j]+m[i+1][j]+get_triangle_weight(i-1,i,j);/*k=j*/

S[i][j]=i;

for(k=j+1;k

{

/*计算[i][j]的最小代价*/

temp=m[i][k]+m[k+1][j]+ge_triangle_weight(i-1,k,j);

if((3))

{

/*判断是否最小值*/

m[i][j]=temp;

S[i][j]=k;

}

}

}

}

}

/*输出剖分的三角形i,j:凸多边形的起始点下标*/

voidprint_triangle(inti,intj){

if(i==j)return;

print_triangle(i,S[i][j]);

print_triangle((4));

print(“V%d--V%d--V%d\n“,i-1,S[i][j],j);

}

【问题1】(8分)

根据题干说明,填充C代码中的空(1)~(4)。

【问题2】(7分)

根据题干说明和C代码,该算法采用的设计策略为(5)。

算法的时间复杂度为(6),空间复杂度为(7)(用O表示)

【答案】【问题1】(8分)

(1)i3)

(7)O(n2)

【解析】本题考查的是凸多边形最优三角剖分动态规划设计过程。

本题算法难度较大,在没有理解算法过程的前提下,首先可以根据相关信息进行部分填空。

首先根据题干描述出现的将问题规模从k开始截断,此时其实就是“最优子结构”的说法,并且本题出现了递归式的应用,是典型的动态规划法的应用。

又根据题目中的代码,出现了三层嵌套for循环,此时代码的时间复杂度为O(n3)。

本题用到的辅助空间记录中间解有2个数组m[i][j]和S[i][j],都是二维数组,空间复杂度的量级为O(n2)。

最后分析代码填空部分。

第(1)空,r表示的是子问题规模,规模划分已知从r=2开始,子问题最大应该能够取到N,因此本空填写r<=N或其等价表示形式。

第(2)空缺失的是j的初始化赋值,本空较难。代码计算前边界为i,链长为r的链的后边界取值,结果为i+r-1,即本题填写j=i+r-1或其等价表示形式。

第(3)空缺失判断条件,此时注释明确说明此处判断最小值,判断后,m[i][j]值进行修改并修改为temp,也就是意味着m[i][j]此时记录的不是最优解(最小值),需要进行修正改为最小,即填写temp<m[i][j]或其等价表示形式(某一个数值比最小值还小,则修改最小值)。

第(4)空缺失的是打印参数,结合代码上下文进行分析,上文打印print_triangle(i,S[i][j]);即截断的前一部分编号,下面print_triangle((4));打印的应该是截断的后一部分,即填写s[i][j]+1,j。

15.单选题

函数foo、hoo的含义如下所示,函数调用hoo(a,x)的两个参数分别采用引用调用(callbyreference)和值调用(callbyvalue)方式传递,则函数调用foo(5)的输出结果为(

)。

问题1选项

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选项。

16.单选题

以下关于SRAM和DRAM储存器的叙述中正确的是()。

问题1选项

A.与DRAM相比,SRAM集成率低,功率大、不需要动态刷新

B.与DRAM相比,SRAM集成率高,功率小、需要动态刷新

C.与SRAM相比,DRAM集成率高,功率大、不需要动态刷新

D.与SRAM相比,DRAM集成率低,功率大、需要动态刷新

【答案】D

【解析】本题考查存储器分类相关知识。

DRAM集成率相对较低,功耗相对较大,需要动态刷新。

SRAM集成率相对较高,功耗相对较小,不需要动态刷新。

本题D选项描述正确。

17.单选题

某销售公司员工关系E(工号、姓名、部门名、电话、住址),商品关系C(商品号、商品名、库存数)和销售关系EC(工号、商品号、销售数、销售日期)。查询“销售部1”在2020年11月11日销售“HUWEIMate40”商品的员工工号、姓名、部门名及其销售的商品名,销售数的关系代数表达式为

π1,2,3,7,8((

)

⋈((

)⋈(

)))

问题1选项

A.σ3=销售部1(E)

B.σ3=销售部1(C)

C.σ3=‘销售部1’(E)

D.σ3=‘销售部1’(C)

问题2选项

A.π2,3(σ2=‘HUWEIMate40’(C))

B.π1,2(σ2=‘HUWEIMate40’(C))

C.π2,3(σ2=‘HUWEIMate40’(EC))

D.π1,2(σ2=‘HUWEIMate40’(EC))

问题3选项

A.σ4=‘2020年11月11日’(C)

B.σ3=‘2020年11月11日’(C)

C.σ4=‘2020年11月11日’(EC)

D.σ3=‘2020年11月11日’(EC)

【答案】第1题:C

第2题:B

第3题:C

【解析】本题考查的是关系代数相关知识内容。

本题看起来逻辑非常复杂,涉及到了3个关系表的联合使用,但结合选项来看,可以快速找到正确答案。

首先对于第一空,选择的对象一定是表E或表C,而此时C是没有部门名的,因此筛选对象一定是表E,其次判断某个列的取值,需要用引号标注,排除错误格式A,本题选择的应该是C选项。

接着对于第二空,选择的对象一定是表C或表EC,而此时EC是没有商品名的,因此筛选对象一定是表C,并且投影需要保留商品号和商品名,因此投影的列号是1和2,本题选择的应该是B选项。

接着对于第二空,选择的对象一定是表C或表EC,而此时C是没有销售日期的,因此筛选对象一定是表EC,并且位于EC的第4列即列号为4,本题选择的应该是C选项。

18.案例题

阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。

[说明]

某公司的人事部门拥有一个地址簿(AddressBook)管理系统(AddressBookSystem),用于管理公司所有员工的地址记录(PersonAddress)。员工的地址记录包括:姓名、住址、城市、省份、邮政编码以及联系电话等信息。

管理员可以完成对地址簿中地址记录的管理操作,包括:

(1)管理地址记录。根据公司的人员变动情况,对地址记录进行添加、修改、删除等操作。

(2)排序。按照员工姓氏的字典顺序或邮政编码对系统中的所有记录进行排序。

(3)打印地址记录。以邮件标签的格式打印一个地址单独的地址簿。

系统会对地址记录进行管理,为便于管理,管理员在系统中为公司的不同部门建立员工的地址簿的操作,包括:

(1)创建地址簿。新建一个地址簿并保存。

(2)打开地址簿。打开一个已有的地址簿。

(3)修改地址簿。对打开的地址簿进行修改并保存。

系统将提供一个GUI(图形用户界面)实现对地址簿的各种操作。

现采用面向对象方法分析并设计该地址簿管理系统,得到如图3-1所示的用例图和图3-2所示的类图。

图3-2类图

[问题1](6分)

根据说明中的描述,给出图3-1中U1~U6所对应的用例名。

[问题2](5分)

根据说明中的描述,给出图3-2中类AddressBook的主要属性和方法以及类PersonAddress的主要属性(可以使用说明中的文字)。

[问题3](4分)

根据说明中的描述以及图3-1所示的用例图,请简要说明extend和include关系的含义是什么?

【答案】

【问题1】

U1:按姓氏字典顺序排序;U2:按邮政编码排序(其中U1和U2可互换)

U3:修改地址簿

U4:创建地址簿

U5:打开地址簿

U6:保存地址簿

【问题2】

类PersonAddress的主要属性包括:姓名、住址、城市、省份、邮政编码以及联系电话等。

类AddressBook的主要属性包括:部门名/编号,姓名、住址、城市、省份、邮政编码以及联系电话等。

类AddressBook的需要包括创建地址簿、打开地址簿、修改地址簿。综上,类AddressBook的方法包括:添加、修改、删除、创建、打开、打印、排序等。

【问题3】

extend属于用例图的三种关系之一,表示的是扩展关系。

描述为:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能会发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,关系图示指向为扩展用例指向基本用例。

如图所示,创建和打开就是一对扩展关系,创建成功之后可以直接保存关闭之后,如果想要进行后续修改工作,就需要打开地址簿,由扩展用例指向基本用例。

include属于用例图的三种关系之一,表示的是包含关系。

描述为:当可以从两个或两个以上用例中提取公共行为的时候,应该使用包含关系来表示它们。其中这个提取出来的公共用例称之为抽象用例,而把原始用例称为基本用例和扩展用例。

如图所示:创建、修改和保存就是一对包含关系,在创建和修改它们都有公共的行为保存,提取出来称之为抽象用例,用包含关系表示它们。

【解析】

【问题1】

本题根据题干描述可以找到相应的用例名称有维护地址记录、排序、打印地址记录、创建地址簿、打开地址簿、修改地址簿,又根据图示可知,U1、U2与排序有泛化关系,此时根据排序的用例描述“按照员工姓氏的字典顺序或邮政编码对系统中的所有记录进行排序”,排序有两种方式,按姓氏字典顺序排序或按邮政编码排序,也就是对应用例U1和U2。剩余用例由于题目信息不全,无法确定具体位置。

【问题2】

类PersonAddress也就是员工地址记录,根据题干描述“员工的地址记录包括:姓名、住址、城市、省份、邮政编码以及联系电话等信息”,因此类PersonAddress的主要属性包括:姓名、住址、城市、省份、邮政编码以及联系电话等。

类AddressBook也就是地址簿用于管理公司所有员工的地址记录,由于“管理员在系统中为公司的不同部门建立员工的地址簿”,因此类AddressBook的主要属性除了员工地址记录信息以外,还需要增加部门信息。此时类AddressBook的主要属性包括:部门名/编号,姓名、住址、城市、省份、邮政编码以及联系电话等。

“管理地址记录。根据公司的人员变动情况,对地址记录进行添加、修改、删除等操作”,因此类AddressBook的需要包括添加、修改、删除等操作。又因为“管理员在系统中为公司的不同部门建立员工的地址簿的操作,包括:(1)创建地址簿。(2)打开地址簿。(3)修改地址簿。”,因此类AddressBook的需要包括创建地址簿、打开地址簿、修改地址簿。综上,类AddressBook的方法包括:添加、修改、删除、创建、打开等。

【问题3】

extend属于用例图的三种关系之一,表示的是扩展关系。

描述为:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能会发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,关系图示指向为扩展用例指向基本用例。

include属于用例图的三种关系之一,表示的是包含关系。

描述为:当可以从两个或两个以上用例中提取公共行为的时候,应该使用包含关系来表示它们。其中这个提取出来的公共用例称之为抽象用例,而把原始用例称为基本用例和扩展用例。

还需结合用例图说明扩展用例、包含用例的应用。此处题干说明不全,暂未确定。

19.单选题

下列关于风险的叙述中,不正确的是(

)。

问题1选项

A.风险是可能发生的事件

B.如果能预测到风险,则可以避免其发生

C.风险是可能会带来损失的事件

D.对于风险进行干预,以期减少损失

【答案】B

【解析】风险是可能发生的事件,并且可能会带来损失,预测到风险后,可以进行干预以期减少损失,但是无法避免。B选项的描述是错误的。

20.单选题

以下关于冯诺依曼计算机的叙述中,不正确的是()。

问题1选项

A.程序指令和数据都采用二进制表示

B.程序指令总是存储在主存中,而数据则存储在高速缓存中

C.程序的功能都由中央处理器(CPU)执行指令来实现

D.程序的执行工作由指令进行自动控制

【答案】B

【解析】本题考查的是计算机体系结构相关知识。

在冯诺依曼结构中,程序指令和数据存在同一个存储器中。B选项描述错误。本题选择B选项,其他描述都是正确的。

21.单选题

在网络系统设计时,不可能使所有设计目标都能达到最优,下列措施中最为合理的是(

)。

问题1选项

A.尽量让最低建设成本目标达到最优

B.尽让最短的故障时间达到最优

C.尽量让最大的安全性目标达到最优

D.尽量让优先级较高的目标达到最优

【答案】B

【解析】暂无。

22.案例题

阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。

【说明】

某工程计算中经常要完成多个矩阵相乘(链乘)的计算任务,对矩阵相乘进行以下说明。

(1)两个矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,计算量主要由进行乘法运算的次数决定,假设采用标准的矩阵相乘算法,计算Amxn*Bnxp需要m*n*p次行乘法运算的次数决定、乘法运算,即时间复杂度为O(m*n*p)。

(2)矩阵相乘满足结合律,多个矩阵相乘时不同的计算顺序会产生不同的计算量。以矩阵A15×100,A2100*8,A38x50三个矩阵相乘为例,若按(A1*A2)*A3计算,则需要进行5*100*8+5*8*50=6000次乘法运算,若按A1*(A2*A3)计算,则需要进行100*8*50+5*10

0*50=65000次乘法运算。

矩阵链乘问题可描述为:给定n个矩阵,对较大的n,可能的计算顺序数量非常庞大,用蛮力法确定计算顺序是不实际的。经过对问题进行分析,发现矩阵链乘问题具有最优子结构,即若A1*A2**An的一个最优计算顺序从第k个矩阵处断开,即分为A1*A2*…*Ak和Ak+1*Ak+2*...*An两个子问题,则该最优解应该包含

A1*A2*…*Ak的一个最优计算顺序和

Ak+1*Ak+2*...*An

的一个最优计算顺序。据此构造递归式,

其中,cost[i][j]表示Ai+1*Ai+2*...Aj+1的最优计算的计算代价。最终需要求解cost[0][n-1]。

【C代码】

算法实现采用自底向上的计算过程。首先计算两个矩阵相乘的计算量,然后依次计算3个矩阵、4个矩阵、…、n个矩阵相乘的最小计算量及最优计算顺序。下面是该算法的语言实现。

(1)主要变量说明

n:矩阵数

seq[]:矩阵维数序列

cost[i][j]:二维数组,长度为n*n,其中元素cost[i][j]表示Ai+1*Ai+2**Aj+1的最优的计算代价。

trace[][]:二维数组,长度为n*n,其中元素trace[i][j]表示Ai+1*Ai+2**Aj+1的最优计算顺序对应的划分位置,即k。

(2)函数cmm

#defineN100

intcost[N[N];

inttrace[N][N];

intcmm(intn,intseq[]){

inttempCost;

inttempTrace;

inti,j,k,p;

inttemp;

for(i=0;i

for(p=1;p

for(i=0;

i

(1)

;

tempCost=-1;

for(k=i;

(2);k++){

temp=

(3)

;

if(tempCost==-1||tempCost>temp){

tempCost=temp;

tempTrace=k;

}

}

cost[i][j]=tempCost;

(4)

;

}

}

returncost[0][n-1];

}

【问题1】(8分)

根据以上说明和C代码,填充C代码中的空(1)~(4)。

【问题2】(4分)

根据以上说明和C代码,该问题采用了(5)算法设计策略,时间复杂度为(6)(用O符号表示)。

【问题3】(3分)

考虑实例n=4,各个矩阵的维数为A1为15*5,A2为5*10,A3为10*20,A4为20*25,即维度序列为15,5,10,20和25。则根据上述C代码得到的一个最优计算顺序为(7)(用加括号方式表示计算顺序),所需要的乘法运算次数为(8)。

【答案】【问题1】

(1)j=i+p

(2)k3)

【问题3】

(7)A1*((A2*A3)*A4)

(8)5375

【解析】【问题3】

先计算A2*A3,乘法次数为5*10*20=1000,结果B1维数为5*20

接着计算B1*A4,乘法次数为5*20*25=2500,结果B2维数为5*25

最后计算A1*B2,乘法次数为15*5*25=1875。

总计算次数为1000+2500+1875=5375

计算次序为A1*((A2*A3)*A4)

23.案例题

阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。

【说明】某现代农业种植基地为进一步提升农作物种植过程的智能化,欲开发智慧农业平台,集管理和销售于一体,该平台的主要功能有:

1.信息维护。农业专家对农作物、环境等监测数据的监控处理规则进行维护。

2.数据采集。获取传感器上传的农作物长势、土壤墒情、气候等连续监测数据,解析后将监测信息进行数据处理、可视化和存储等操作。

3.数据处理。对实时监测信息根据监控处理规则进行监测分析,将分析结果进行可视化并进行存储、远程控制对历史监测信息进行综合统计和预测,将预测信息进行可视化和存储。

4.远程控制。根据监控处理规则对分析结果进行判定,依据判定结果自动对控制器进行远程控制。平台也可以根据农业人员提供的控制信息对控制器进行远程控制。

5.可视化。实时向农业人员展示监测信息:实时给农业专家展示统计分析结果和预测信息或根据农业专家请求进行展示。

现采用结构化方法对智慧农业平台进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。

【问题1】(4分)

使用说明中的词语,给出图1-1中的实体E1~E4的名称。

【问题2】(4分)

使用说明中的词语,给出图1-2中的数据存储D1~D4的名称。

【问题3】

(4分)

根据说明和图中术语,补充图1-2中缺失的数据流及其起点和终点。

【问题4】(3分)

根据说明,“数据处理”可以分解为哪些子加工?进一步进行分解时,需要注意哪三种常见的错误?

【答案】【问题1】(4分)

E1:传感器;E2:农业专家;E3:农业人员;E4:控制器

【问题2】(4分)

D1:监控处理规则文件D2:监测信息文件D3:分析结果文件D4:预测信息文件

【问题3】

(4分)

起点D1,终点P4,监控规则

起点P5,终点E2,根据请求进行展示

起点P3,终点P5,分析结果

起点P3,终点P5,预测信息

【问题4】(3分)

数据处理加工分为数据分析,可视化与存储;

黑洞、奇迹、灰洞

【解析】问题1:补充实体名,找出题干给出的名词形式。

可以通过下方0层图对比,根据“农业专家对农作物、环境等监测数据的监控处理规则进行维护。”描述,我们可知E2是农业专家;根据“获取传感器上传的农作物长势、土壤墒情、气候等连续监测数据”得知E1是传感器;根据“平台也可以根据农业人员提供的控制信息对控制器进行远程控制”,得知E3是农业人员;根据“根据监控处理规则对分析结果进行判定,依据判定结果自动对控制器进行远程控制。”,得知E4是控制器。

问题2:补充数据存储,给出题干关键信息,文件,数据、表、信息等名词。

通过下文0层图信息得知,根据“农业专家对农作物、环境等监测数据的监控处理规则进行维护。”,可知D1是存储相关监控处理规则文件;根据“解析后将监测信息进行数据处理、可视化和存储等操作。”得知D2是监测信息文件;根据“对实时监测信息根据监控处理规则进行监测分析,将分析结果进行可视化并进行存储”,D3和D4分别是分析结果文件和预测信息文件。

问题3:补充数据流,根据平衡原则和题干的提示。

首先根据数据流图平衡原则可知,父子图不平衡,对于父图中的由加工指向实体E2的一条数据流的名称为”统计分析数据“与子图中加工P5指向实体的E2的一条数据流”统计分析结果“表示不同,根据题干说明要求从1-2子图补充,说明父图的统计分析数据=子图的分析结果+缺失的数据流构成,根据题干信息”实时给农业专家展示统计分析结果和预测信息或根据农业专家请求进行展示。“得知由P5-E2的根据请求进行展示数据流。

其余的三条需要根据题干描述,对于加工和数据存储或加工与加工之间的数据流。

根据题干”根据监控处理规则对分析结果进行判定”得知存在一条有D1-P4监控规则;

根据题干“实时给农业专家展示统计分析结果和预测信息”得知存在P3-P5的分析结果和P4-P5的预测结果。

问题4:数据处理根据题干描述“对实时监测信息根据监控处理规则进行监测分析,将分析结果进行可视化并进行存储、远程控制对历史监测信息进行综合统计和预测,将预测信息进行可视化和存储。”可分为数据分析,可视化和存储三个步骤。需要注意哪三种常见的错误:黑洞、奇迹、灰洞。

24.单选题

以下关于数据库两级映像的叙述中,正确的是(

)。

问题1选项

A.模式/内模式映像实现了外模式到内模式之间的相互转换

B.模式/内模式映像实现了概念模式到内模式之间的相互转换

C.外模式/模式的映像实现了概念模式到内模式之间的相互转换

D.外模式/内模式的映像实现了外模式到内模式之间的相互转换

【答案】B

【解析】本题考查数据库的基本概念。

数据库系统在三级模式之间提供了两级映像:模式/内模式映像、外模式/模式映像。正因为这两级映像保证了数据库中的数据具有较高的逻辑独立性和物理独立性。

(1)模式/内模式的映像。存在于概念级和内部级之间,实现了概念模式到内模式之间的相互转换。

(2)外模式/模式的映像。存在于外部级和概念级之间,实现了外模式到概念模式之间的相互转换。

25.单选题

用户在电子商务网站上使用网上银行支付时,必须通过(

)在Internet与银行专用网之间进行数据交换。

问题1选项

A.支付网关

B.防病毒网关

C.出口路由器

D.堡垒主机

【答案】A

【解析】本题计算机网络相关交互协议。

用户在电子商务网站上使用网上银行支付时,必须通过支付网关才能在Internet与银行专用网之间进行数据交换。

A、支付网关:是银行金融网络系统和Internet网络之间的接口,是由银行操作的将Internet上传输的数据转换为金融机构内部数据的一组服务器设备,或由指派的第三方处理商家支付信息和顾客的支付指令。

B、防病毒网关:防病毒网关是一种网络设备,用以保护网络内(一般是局域网)进出数据的安全。主要体现在病毒杀除、关键字过滤(如色情、反动)、垃圾邮件阻止的功能,同时部分设备也具有一定防火墙(划分Vlan)的功能。如果与互联网相连,就需要网关的防病毒软件。

C、出口路由器:一般指局域网出外网的路由器,或者指一个企业、小区、单位、城域网、省级网络、国家网络与外界网络直接相连的那台路由器。在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。

D、堡垒主机:堡垒主机是一种被强化的可以防御进攻的计算机,作为进入内部网络的一个检查点,以达到把整个网络的安全问题集中在某个主机上解决,从而省时省力,不用考虑其它主机的安全的目的。

26.单选题

为了实现多级中断,保存程序现场信息最有效的方法是使用()。

问题1选项

A.通用寄存器

B.累加器

C.堆栈

D.程序计数器

【答案】C

【解析】本题考查的是中断相关概念。

在中断过程中,程序现场信息保存在堆栈部分。本题选择C选项。

通用寄存器、累加器、程序计数器都是属于CPU内部的子部件,与本题无关。

27.案例题

阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

享元(flyweight)模式主要用于减少创建对象的数量,以降低内存占用,提高性能。现要开发-一个网络围棋程序,允许多个玩家联机下棋。由于只有一台服务器,为节省内存空间,采用享元模式实现该程序,得到如图5-1所示的类图。

图5-1类图

【C++代码】

#include

#include

usingnamespacestd;

enumPieceColor{BLACK,WHITE};

//棋子颜色

classPiecePos{

//棋子位置

private:

intx;

inty;

public:

PiecePos(inta,intb):x(a),y(b){}

intgetX(){returnx;}

intgetY()(returny;)

};

classPiece{

//棋子定义

protected:

PieceColorm_color;

//颜色

【答案】(1)virtualvoidDraw()=0

(2)Piece*

(3)Piece*

(4)piece->Draw()

(5)piece->Draw()

28.单选题

甲乙丙三者分别就相同内容的发明创造,先后向专利管理部门提出申清,()可以获得专利申请权。

问题1选项

A.甲乙丙均

B.先申请者

C.先试用者

D.先发明者

【答案】B

【解析】本题考查的是知识产权人确定的相关内容。

对于专利权,谁先申请就给谁;同时申请则协商。

29.单选题

以下关于敏捷统一过程(AUP)的叙述中,不正确的是(

)。

问题1选项

A.在大型任务上连续

B.在小型活动上迭代

C.每一个不同的系统都需要一套不同的策略、约定和方法论

D.采用经典的UP阶段性活动,即初始、精化、构建和转换

【答案】C

【解析】本题考查的是敏捷统一过程(AUP)

敏捷统一过程(AUP)采用“在大型上连续”以及在“小型上迭代”的原理来构建软件系统。采用经典的UP阶段性活动(初始、精化、构建和转换),提供了一系列活动,能够使团队为软件项目构想出一个全面的过程流。在每个活动里,一个团队迭代了使用敏捷,并将有意义的软件增量尽可能快地交付给最终用户。

在每一个不同地系统都需要一套不同地策略、约定和方法论是属于敏捷方法-----水晶法的描述。

注意区别这里面是考查敏捷统一过程,而非敏捷方法,两者之间有区别。

30.单选题

最大尺寸和问题描述为,在n个整数(包含负数)的数组A中,求之和最大的非空连续子数组,如数组A=(-2,11,-4,13,-5,-2),其中子数组B=(11,-4,13)具有最大子段和20(11-4+13=20)。求解该问题时,可以将数组分为两个n/2个整数的子数组最大子段或或者在前半段,或者在后半段,或者跨越中间元素,通过该方法继续划分问题,直至最后求出最大子段和,该算法的时间复杂度为(

)。

问题1选项

A.O(nlgn)

B.O(n2)

C.O(n2lgn)

D.O(n3)

【答案】A

【解析】

本题中将数组不断进行二分,这个过程的时间复杂度为O(log2n),划分后求解问题需要2个并列的for循环对划分后的数组进行求和比较,此时时间复杂度为O(n),划分和求和过程应该是嵌套的,所以时间复杂度综合为O(nlgn),本题应该选择A选项。

其算法过程可以设计如下:

intMaxSubSum(int*Array,intleft,intright){

intsum=0;

inti;

if(left==right){/*分解到单个整数,不可继续分解*/

if(Array[left]>0)

sum=Array[left];

else

sum=0;//和小于等于0时,最大和记作0

}/*if*/

else{

/*从left和right的中间分解数组*/

intcenter=(left+right)/2;/*划分位置*/

intleftsum=MaxSubSum(Array,left,center);

intrightsum=MaxSubSum(Array,center+1,right);

/*计算包含center的最大值,判断是情形1(前半段)--Array[1...n]的最大子段和与Array[1...n/2]的最大子段和相同、情形2(后半段)--Array[1...n]的最大子段和与Array[n/2+1...n]的最大子段和、还是情形3(跨越中间元素)--Array[1...n]的最大子段和为Array[i...j]的最大子段和,且1≤i≤n/2,n/2+1≤j≤n。*/

ints1=0;

intlefts=0;

for(i=center;i>=left;i--){

lefts+=Array[i];

if(leftss1=lefts;

}/*for*/

ints2=0;

intrights=0;

for(i=center+1;irights+=Array[i];

if(rights>s2)

s2=rights;

}/*for*/

sum=s1+s2;

/*情形1*/

if(sumsuml=leftsum;

/*情形2*/

if(sumsuml=rightsum;

}/*else*/

returnsum;

}

31.单选题

在CPU中,用(

)给出将要执行的下一条指令在内存中的地址。

问题1选项

A.程序计数器

B.指令寄存器

C.主存地址寄存器

D.状态条件寄存器

【答案】A

【解析】A选项程序计数器PC:存储下一条要执行指令的地址。本题选择A选项。

B选项指令寄存器IR:存储即将执行的指令。

C选项主存地址寄存器MAR:用来保存当前CPU所访问的内存单元的地址。

D选项状态条件寄存器PSW:存状态标志与控制标志。

32.单选题

二叉树的高度是指其层数,空二叉树的高度为0,仅有根结点的二叉树高度为1,若某二叉树中共有1024个结点,则该二叉树的高度是整数区间(

)中的任一值。

问题1选项

A.(10,1024)

B.[10,1024]

C.(11,1024)

D.[11,1024]

【答案】D

【解析】本题考查关于二叉树的构造问题。

根据题干描述,空二叉树的高度为0,仅有根结点的二叉树高度为1,当若某二叉树中共有1024个结点,求其取值范围?

我们不妨求出取值范围的极限值,当1024个结点都为根结点的时候,表示1024个二叉树高度为1,高度累计为1024,区间能够取到1024,属于闭区间,排除A,C

再求出其最小值的情况,最小值应该是按照满二叉树进行排列,对于二叉树的规律如下:第一层的结点树2^0=1,第二层2^1=2,第3层2^2=4,依次类推。

对于1024而言,2^10=1024,所以我们不能取到11层,应该先到第10层2^9=512,此时10层共累计的节点有:2^0+2^1+...+2^9=1023,共有1024还缺少1个结点,只能存放到第11层,第11层仅有1个结点,但是它的层次已经到了11层,所以能取到11,属于闭区间,排除B选项,故表达式取值范围应该是[11,1024]。

33.案例题

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

在线支付是电子商务的一一个重要环节,不同的电子商务平台提供了不同的支付接口。现在需要整合不同电子商务平台的支付接口,使得客户在不同平台上购物时,不需要关心具体的支付接口。拟采用中介者(Mediator)设计模式来实现该需求,所设计的类图如图6-1所示。

【Java代码】

【答案】(1)voidbuy(doublemoney,WebServiceservice)

(2)WebServiceMediator

(3)abstractvoidbuyService(doublemoney)

(4)mediator.buy(money,this)

(5)mediator.buy(money,this)

【解析】(1)空是属于接口WebServiceMeditor内的方法,我们可以通过下文的实现类中找到ConcreteServiceMeditor可知缺少了一个buy()方法

故第一空填写voidbuy(doublemoney,WebServiceservice);(2)空类WebService中属性的参数类型,Colleague与Mediator之间的关联关系由属性meditor实现,所以第2空应该填写WebServiceMediator;(3)空类WebService中的抽象方法,根据其具体子类可以看到缺少的是buyService方法,书写成abstractvoidbuyService(doublemoney);(4)空和(5)空具体同事类Amazon、Ebay与中介者的通信,调用中介者之间的支付接口,所以空(4)和(5)都填写mediator.buy(money,this)。

34.单选题

对长度为n的有序顺序进行折半查找(即二分查找)的过程可用一棵判定树表示,该判定树的形态符合()的特点。

问题1选项

A.最优二叉树(即哈夫曼树)

B.平衡二叉树

C.完全二叉树

D.最小生成树

【答案】B

【解析】本题考查的是二分查找相关内容。

二分查找是将序列均分,每一次都是平均分配后左右序列数相同,相当于一棵二叉树,左右结点都是相同个数,最终形成的是平衡二叉树的形态。本题选择B选项。

35.单选题

在单处理机计算机系统中有1台打印机、1台扫描仪,系统采用先来先服务调度算法。假设系统中有进程P1、P2、P3、P4,其中P1为运行状态,P2为就绪状态,P3等待打印机,P4等待扫描仪。此时,若P1释放了扫描仪,则进程P1、P2、P3、P4的状态分别为()。

问题1选项

A.等待、运行、等待、就绪

B.运行、就绪、等待、就绪

C.就绪、就绪、等待、运行

D.就绪、运行、等待、就绪

【答案】B

【解析】考查三态模型相关问题。

在题干提示有相关进程P1,P2,P3,P4,两个资源打印机和扫描仪,三个状态:运行,就绪,等待。

首先题干已经明确说明P1处于运行态,释放了扫描仪,此时P1还有打印机没有运行完成,应该仍处于运行状态。

对于P2而言,单处理机计算机系统只允许拥有1个运行状态,P1此时还未运行完成,未分配对应的CPU,仍处于就绪态。

对于P3而言,等待打印机,处于等待状态,此时没有关于打印机的资源释放,仍处于等待状态。

对于P4而言,等待扫描仪,处于等待状态,有相关的扫描仪资源释放,应该得到相应的资源发生,从等待状态变成了就绪状态。

36.单选题

根据《计算机软件保护条例》的规定,对软件著作权的保护不包括(

)。

问题1选项

A.目标程序

B.软件文档

C.源程序

D.开发软件所有的操作方法

【答案】D

【解析】《计算机软件保护条例》保护的是软件程序以及文档,其中软件程序包括源程序和目标程序。

开发软件所用的思想、处理过程、操作方法或者数学概念不受软件著作权保护。本题选择D选项。

37.单选题

面向对象分析的第一项活动是();面向对象程序设计语言为面向对象()。

问题1选项

A.组织对象

B.描述对象间的相互作用

C.认定对象

D.确定对象的操作

问题2选项

A.用例设计

B.分析

C.需求分析

D.实现

【答案】第1题:C

第2题:D

【解析】第1题:本题考查的是面向对象分析与设计相关内容。

面向对象分析的活动有:认定对象(名词)、组织对象(抽象成类)、对象间的相互作用、基于对象的操作,第一项活动是认定对象,本题选择C选项。

第2题:面向对象实现需要选择一种面向对象程序设计语言。第二空选择D选项。

38.单选题

关于螺旋模型,下列陈述中不正确的是(

),(

)。

问题1选项

A.将风险分析加入到瀑布模型中

B.将开发过程划分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符

C.适合于大规模、复杂且具有高风险的项目

D.可以快速的提供一个初始版本让用户测试

问题2选项

A.支持用户需求的动态变化

B.要求开发人员具有风险分析能力

C.基于该模型进行软件开发,开发成本低

D.过多的迭代次数可能会增加开发成本,进而延迟提交时间

【答案】第1题:D

第2题:C

【解析】第一空选项中,可以快速提供一个初始版本给用户的是增量模型而不是瀑布模型。D选项描述错误。其他描述都是正确的。

第二空选项中,在螺旋模型中过多的迭代次数会增加开发成本,C选项开发成本低的描述是错误的。其他描述都是正确的。

39.单选题

SQL注入是常见的web攻击,以下不能够有效防御SQL注入的手段是()。

问题1选项

A.对用户输入做关键字过滤

B.部署Web应用防火墙进行防护

C.部署入侵检测系统阻断攻击

D.定期扫描系统漏洞并及时修复

【答案】C

【解析】本题考查的是SQL注入攻击相关内容。对用户输入做关键字过滤、Web应用防火墙、定期扫描系统漏洞并及时修复都可以有效防御SQL注入攻击,入侵检测系统无法防御SQL注入。本题选择C选项。

40.单选题

广大公司(经销商)擅自复制并销售恭大公司开发的OA软件已构成侵权。鸿达公司在不知情时从广大公司(经销商)处购入该软件并已安装使用,在鸿达公司知道了所使用的软件为侵权复制的情形下其使用行为()

问题1选项

A.侵权,支付合理费用后可以继续使用该软件

B.侵权,须承担赔偿责任

C.不侵权,可继续使用该软件

D.不侵权,不需承担任何法律责任

【答案】A

【解析】本题考查知识产权。

我国计算机软件保护条例第30条规定“软件的复制品持有人不知道也没有合理理由应当知道该软件是侵权复制品的,不承担赔偿责任;但是,应当停止使用、销毁该侵权复制品。如果停止使用并销毁该侵权复制品将给复制品使用人造成重大损失的,复制品使用人可以在向软件著作权人支付合理费用后继续使用。”鸿达公司在获得软件复制品的形式上是合法的(向经销商购买),但是由于其没有得到真正软件权利人的授权,其取得的复制品仍是非法的,所以鸿达公司的使用行为属于侵权行为。

鸿达公司应当承担的法律责任种类和划分根据主观状态来确定。首先,法律确立了软件著作权人的权利进行绝对的保护原则,即软件复制品持有人不知道也没有合理理由应当知道该软件是侵权复制品的,也必须承担停止侵害的法律责任,只是在停止使用并销毁该侵权复制品将给复制品使用人造成重大损失的情况下,软件复制品使用人可继续使用,但前提是必须向软件著作权人支付合理费用。其次,如果软件复制品持有人能够证明自己确实不知道并且也没有合理理由应当知道该软件是侵权复制品的,软件复制品持有人除承担停止侵害外,不承担赔偿责任。

软件复制品持有人一旦知道了所使用的软件为侵权复制品时,应当履行停止使用、销毁该软件的义务。不履行该义务,软件著作权人可以诉请法院判决停止使用并销毁侵权软件。如果软件复制品持有人在知道所持有软件是非法复制品后继续使用给权利人造成损失的,应该承担赔偿责任。

41.单选题

如下图如下E-R图中,两个实体R1、R2之间有一个联系E,当E的类型为(

)时必须将E转换成—个独立的关系模式?

问题1选项

A.1:1

B.1:*

C.*:1

D.*:*

【答案】D

【解析】本题考查的是E-R转换为关系模式的转换规则。其中1:1和1:*类型的联系可以归并到实体中,而*:*联系必须单独转换为1个独立的关系模式。本题选择D选项。

42.单选题

IPv6地址长度为(

)bit。

问题1选项

A.16

B.32

C.64

D.128

【答案】D

【解析】本题考查IPv6的基本概念。IPv6地址由128位二进制表示。

43.单选题

Python语言的特点不包括()。

问题1选项

A.跨平台、开源

B.编译型

C.支持面向对象程序设计

D.动态编程

【答案】B

【解析】本题考查python相关问题。

python语义的特点:

跨平台、开源、简单易学、面向对象、可移植性、解释性、开源、高级语言、可扩展性、丰富的库、动态编程等等

综上所述B选项错误,python不是编译型语言,而是解释型语言。

44.单选题

云计算有多种部署模型(DeploymentModels)。若云的基础设施是为某个客户单独使用而构建的,那么该部署模型属于(

)。

问题1选项

A.公有云

B.私有云

C.社区云

D.混合云

【答案】B

【解析】A选项公有云通常指第三方提供商为用户提供的能够使用的云,公有云一般可通过Internet使用,可能是免费或成本低廉的,公有云的核心属性是共享资源服务。

B选项私有云(PrivateClouds)是为一个客户单独使用

温馨提示

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

评论

0/150

提交评论