专业软件设计师网站|培训机构|服务商(加客服微信:cnitpm或QQ:800184589进软件设计师学霸群)

软题库 培训课程
当前位置:信管网 >> 软件设计师 >> 案例分析 >> 文章内容
软件设计师下午真题及答案16
来源:信管网 2021年08月17日 【所有评论 分享到微信

为帮助广大软考中级软件设计师考生更好备考,信管网特整理汇总了软件设计师部分下午真题、答案及解析供考生查阅,并提供免费在线模拟答题、历年真题免费下载等服务,了解软件设计师更多备考信息请关注信管网。

相关推荐:

点击查看/下载:软件设计师历年真题汇总

点击查看:软件设计师在线培训课程免费试听课程

免费练习:软件设计师考试题库(模拟试题、章节练习、每日一练)

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

【说明】

某机器上需要处理n个作业.job1,job2,…,jobn,其中:

(1)每个作jobi(1≤i≤n)的编号为i,jobi有一个收益值p[i]和最后期限值d[i]小

(2)机器在一个时刻只能处理一个作业,而且每个作业需要一个单位时间进行处理,一旦作业开始就不可中断,每个作业的最后期限值为单位时间的正整数倍;

(3)job1~jobn的收益值呈非递增顺序排列,即p[1)≥p[2]≥…[n):

(4)如果作业jobi在其期限之内完成,则获得收益9[i];如果在其期限之后完成,则没有收益。

为获得较高的收益,采用贪心策略求解在期限之内完成的作业序列。图4*1是基于贪心策略求解该问题的流程图。

(1)整型数组j[]有n个存储单元,变量k众表示在期限之内完成的作业j[1..k]存储所有能够在期限内完成的作业编号,数组j[1..k]里的作业按其最后期限非递减排序,即d[j[1]]≤…≤d[j[k]]。

(2)为了便于在数组j中加入作业,增加一个虚拟作业job0,并令d[0]=0,j[0]=0。

(3)算法大致思想:先将作业.job1的编号1放入j[1],然后,依次对每个作业.jobi (2≤i≤n)进行判定,看其能否插入到数组j中。若能,则将其编号插入到数组j的适当位置,并保证j中作业按其最后期限非递减排列;否则不插入。

jobi能插入数组j的充要条件是:jobi和数组j中已有作业均能在其期限之内完成。

(4)流程图中的主要变量院明如下。

i:循环控制变量,表示作业的编号;

k:表示在期限内完成的作业数:

r:若.jobi能插入数组j,则其在数组了中的位置为r+1:

q:循环控制变量,用于移动数组j中的元素。

【问题1】

请填充图4-1中的空缺(1)、(2)和(3)处。

【问题2】

假设有6个作业job1,job2,…,job6;

完成作业的收益数组p=(p[1],p[2],p[3],p[4],p[5],p[6])=(90,80,50,30,20,10):

每个作业的处理期限数组d=(d[1],d[2],d[3],d[4],d[5],d[6])=(1,2,1,3,4,3)。

请应用试题中描述的贪心策略算法,给出在期限之内处理的作业编号序列 (4) (按作业处理的顺序给出),得到的总收益为 (5) 。

【问题3】

对于本题的作业处理问题,用图4-1的贪心算法策略,能否求得最高收益? (6) 。用贪心算法求解任意给定问题时,是否一定能得到最优解? (7) 。

查看答案及解析:www.cnitpm.com/st/245608949.html

扫码关注公众号

温馨提示:因考试政策、内容不断变化与调整,信管网网站提供的以上信息仅供参考,如有异议,请以权威部门公布的内容为准!

信管网致力于为广大信管从业人员、爱好者、大学生提供专业、高质量的课程和服务,解决其考试证书、技能提升和就业的需求。

信管网软考课程由信管网依托10年专业软考教研倾力打造,官方教材参编作者和资深讲师坐镇,通过深研历年考试出题规律与考试大纲,深挖核心知识与高频考点,为学员考试保驾护航。面授、直播&录播,多种班型灵活学习,满足不同学员考证需求,降低课程学习难度,使学习效果事半功倍。

相关内容

发表评论  查看完整评论  

推荐文章