- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
软件设计师(软考)考试练习题和官方答案
1.已知某二叉树的后序遍历序列为D、E、B、F、C、A,中序遍历序列为D、B、E、A、F、C。
(1)画出该二叉树的结构;
(2)写出其前序遍历序列。
答案:
(1)二叉树结构:
根节点为后序遍历最后一个元素A。中序遍历中A左侧为左子树(D、B、E),右侧为右子树(F、C)。左子树的后序遍历为D、E、B(后序最后是B),中序左子树D、B、E中B为根,D为左子树,E为右子树。右子树的后序遍历为F、C(后序最后是C),中序右子树F、C中C为根,F为左子树。最终结构:
```
A
/\
BC
/\/
DEF
```
(2)前序遍历序列:A、B、D、E、C、F。
2.某排序算法的平均时间复杂度为O(nlogn),最坏时间复杂度为O(n2),空间复杂度为O(logn)。该算法可能是以下哪一种?
A.归并排序
B.快速排序
C.堆排序
D.冒泡排序
答案:B。快速排序的平均时间复杂度为O(nlogn),最坏情况(如已排序数组选首元素为轴)退化为O(n2),递归调用栈的空间复杂度为O(logn)(平均情况)。归并排序最坏时间复杂度为O(nlogn),空间复杂度为O(n);堆排序最坏时间复杂度为O(nlogn),空间复杂度为O(1);冒泡排序时间复杂度为O(n2)。
3.操作系统中,若系统采用可变分区存储管理,当前内存分配情况(从低地址到高地址)为:已分配区1(10KB~50KB)、空闲区1(50KB~100KB)、已分配区2(100KB~180KB)、空闲区2(180KB~300KB)、已分配区3(300KB~400KB)。现有一进程申请120KB内存,采用最佳适应算法,应分配哪个空闲区?分配后空闲区的起始地址和大小如何变化?
答案:最佳适应算法选择能满足需求且最小的空闲区。空闲区1大小为50KB(100KB50KB),空闲区2大小为120KB(300KB180KB)。申请120KB,空闲区1无法满足,空闲区2刚好满足。分配后,空闲区2被占用120KB,剩余空闲区起始地址为180KB+120KB=300KB,大小为300KB(原空闲区结束地址)300KB=0KB(即被完全分配,无剩余)。因此分配空闲区2,分配后无剩余空闲区。
4.某系统有3类资源(R1、R2、R3),数量分别为9、8、5。当前进程P0~P4的资源分配情况如下表:
|进程|最大需求(Max)|已分配(Allocation)|需求(Need=MaxAllocation)|
|||||
|P0|(3,2,2)|(1,0,0)|(2,2,2)|
|P1|(6,1,3)|(4,1,1)|(2,0,2)|
|P2|(3,1,4)|(2,1,1)|(1,0,3)|
|P3|(4,2,2)|(0,0,2)|(4,2,0)|
|P4|(2,2,3)|(0,1,1)|(2,1,2)|
系统当前可用资源向量Available=(1,1,2)。
(1)计算系统剩余资源总量;
(2)判断当前系统是否处于安全状态,若安全给出安全序列。
答案:
(1)剩余资源总量=总资源已分配资源总和。已分配R1:1+4+2+0+0=7;R2:0+1+1+0+1=3;R3:0+1+1+2+1=5。总资源R1=9,剩余97=2;R2=83=5;R3=55=0。但题目中Available=(1,1,2),可能题目中总资源或已分配数据存在笔误,按题目给定Available计算即可。
(2)安全状态判断步骤:
①初始化Work=Available=(1,1,2),Finish数组全为false。
②遍历进程找Need≤Work的进程:
P0:Need=(2,2,2)Work=(1,1,2),不满足。
P1:Need=(2,0,2)≤(1,1,2)?21,不满足。
P2:Need=(1,0,3)≤(1,1,2)?32,不满足。
文档评论(0)