2022软件水平考试-中级软件设计师考前拔高名师测验卷32(附答案解析)

上传人:新** 文档编号:513809101 上传时间:2023-02-07 格式:DOCX 页数:8 大小:13.30KB
返回 下载 相关 举报
2022软件水平考试-中级软件设计师考前拔高名师测验卷32(附答案解析)_第1页
第1页 / 共8页
2022软件水平考试-中级软件设计师考前拔高名师测验卷32(附答案解析)_第2页
第2页 / 共8页
2022软件水平考试-中级软件设计师考前拔高名师测验卷32(附答案解析)_第3页
第3页 / 共8页
2022软件水平考试-中级软件设计师考前拔高名师测验卷32(附答案解析)_第4页
第4页 / 共8页
2022软件水平考试-中级软件设计师考前拔高名师测验卷32(附答案解析)_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《2022软件水平考试-中级软件设计师考前拔高名师测验卷32(附答案解析)》由会员分享,可在线阅读,更多相关《2022软件水平考试-中级软件设计师考前拔高名师测验卷32(附答案解析)(8页珍藏版)》请在金锄头文库上搜索。

1、2022软件水平考试-中级软件设计师考前拔高名师测验卷(附答案解析)1. 填空题:甲公司购买了一工具软件,并使用该工具软件开发了新的名为“恒友”的软件。 甲公司在销售新软件的同时,向客户提供工具软件的复制品,则该行为()。甲公司未对“恒友”软件注册商标就开始推向市场,并获得用户的好评。三个月后,乙公司也推出名为“恒友”的类似软件,并对之进行了商标注册,则其行为()。问题1选项 A.侵犯了著作权 B.不构成侵权行为 C.侵犯了专利权 D.属于不正当竞争问题2选项 A.侵犯了著作权 B.不构成侵权行为 C.侵犯了商标权 D.属于不正当竞争答案:AA 本题解析:暂无解析2. 填空题:在面向对象的系统

2、中,对象是运行时实体,其组成部分不包括();一个类定义了一组大体相似的对象,这些对象共享()。问题1选项A.消息B.行为(操作)C.对象名D.状态问题2选项A.属性和状态B.对象名和状态C.行为和多重度D.属性和行为 收藏答案:AD 本题解析:暂无解析3. 填空题:假设某计算机系统中资源R的可用数为6,系统中有3个进程竞争R,且每个进程都需要i个R,该系统可能会发生死锁的最小i值是()。若信号量S的当前值为-2,则R的可用数和等待R的进程数分别为()。问题1选项A.1B.2C.3D.4问题2选项A.0、0B.0、1C.1、0D.0、2答案:CD 本题解析:暂无解析4. 填空题:已知关系模式:图

3、书(图书编号,图书类型,图书名称,作者,出版社,出版日期,ISBN),图书编号唯一识别一本图书。建立“计算机”类图书的视图Computer-BOOK,并要求进行修改、插入操作时保证该视图只有计算机类的图书。实现上述要求的SQL语句如下:CREATE()AS SELECT图书编号,图书名称,作者,出版社,出版日期FROM图书WHERE图书类型=计算机();问题1选项A.TABLE Computer-BOOKB.VIEWComputer-BOOKC.Computer-BOOK TABLED.Computer-BOOKVIEW问题2选项A.FOR ALLB.PUBLICC.WITH CHECK OP

4、TIOND.WITH GRANT OPTION答案:BC 本题解析:暂无解析5. 填空题:某医院数据库的部分关系模式为:科室(科室号,科室名,负责人,电话)、病患(病历号,姓名,住址,联系电话)和职工(职工号,职工姓名,科室号,住址,联系电话)。假设每个科室有一位负责人和一部电话,每个科室有若干名职工,一名职工只属于一个科室;一个医生可以为多个病患看病;一个病患可以由多个医生多次诊治。科室与职工的所属联系类型为(),病患与医生的就诊联系类型为()。对于就诊联系最合理的设计是(),就诊关系的主键是()。问题1选项A.1:1B.1:nC.n:1D.n:m问题2选项A.1:1B.1:nC.n:1D.

5、n:m问题3选项A.就诊(病历号,职工号,就诊情况)B.就诊(病历号,职工姓名,就诊情况)C.就诊(病历号,职工号,就诊时间,就诊情况)D.就诊(病历号,职工姓名,就诊时间,就诊情况)问题4选项A.病历号,职工号B.病历号,职工号,就诊时间C.病历号,职工姓名D.病历号,职工姓名,就诊时间答案:BDCB 本题解析:暂无解析6. 问答题:某公司购买长钢条,将其切割后进行出售。切割钢条的成本可以忽略不计,钢条的长度为整英寸。已知价格表p,其中pi(i1,2,m)表示长度为i英寸的钢条的价格。现要求解使销售收益最大的切割方案。求解此切割方案的算法基本思想如下:假设长钢条的长度为n英寸,最佳切割方案的

6、最左边切割段长度为i英寸,则继续求解剩余长度为ni英寸钢条的最佳切割方案。考虑所有可能的i,得到的最大收益rn对应的切割方案即为最佳切割方案。rn的递归定义如下:rn=max1in(pi+rn-i)对此递归式,给出自顶向下和自底向上两种实现方式。【C代码】/*常量和变量说明n:长钢条的长度p:价格数组*/#define LEN 100int Top_Down_Cut_Rod(int p,int n)/*自顶向下*/int r=0;int i;if(n=0)return 0;for(i=1;(1);i+)int tmp=pi+Top_Down_Cut_Rod(p,n-i);r=(r=tmp)r:

7、tmp;return r;int Bottom_Up_Cut_Rod(int p,int n)/*自底向上*/int rLEN=0;int temp=0;int i,j;for(j=1;j=n;j+)temp=0;for(i=1;(2);i+)temp=(3);(4);return rn;【问题1】(8分)根据说明,填充C代码中的空(1)(4)。【问题2】(7分)根据说明和C代码,算法采用的设计策略为(5)。求解rn时,自顶向下方法的时间复杂度为(6);自底向上方法的时间复杂度为(7)(用O表示)。答案: 本题解析:【问题1】(1):i=n(2):i=j(3):(temp=pi+rj-i)?t

8、emp:(pi+rj-i)(4):rj=temp或(3):(temp=ri+rj-i)?temp:(ri+rj-i)(4):rj=(temppj)?temp:pj;【问题2】(5)动态规划法(6)O(2n)(7)O(n2)【问题1】在自顶向下实现过程中,n-i表示规模从大到小即n-10,即对应i的初始值为1,结束值为n,第一空填写i=n,递归式也有范围提示可以参照。在自底向上实现过程中,采用双重嵌套循环,内层循环从1j,第二空填写i=j。第三空和第四空比较复杂,是具体的实现过程,是本题的难点。根据题干内容,本题考查的是钢条切割问题最优化问题,求解的思路即先考虑最左侧的切割考虑,再依次向右扩展,

9、中间的最优解结果记录在数组r中,并用temp中间变量传递最大值。根据递归式rn=max1in(pi+rn-i),即r最终结果是该过程的最大值,(3)空给temp赋值,那么(4)空应该是将这个中间值传给最终的rn,也就是代码中的rj,即第四空填写rj=temp,那么此时第三空对应最大值的求取,也就是本算法的核心,这里的最大值是在1j的规模范围循环比较,用temp放置本轮结果,再与下一轮结果进行比较,第三空temp=(temp=pi+rj-i)?(temp:(pi+rj-i)。【问题2】题干中提到说考虑所有可能的i,得到最大收益的方式,而自底向上算法实现时,使用到数组把其中最优的解记录,并用r记录

10、中间解,因此本题算法策略是动态规划法。动态规划法自顶向下时需要对规模n进行求取,此时需要递归至规模1并最终返回结果规模n的解并记录,规模n-1同样如此,时间复杂度较大,可以达到O(2n);动态规划法自底向上时先求取规模1的解并记录,然后查询规模1的解从而求解规模2的解,以此类推,直至求取至规模n,有查询和循环求解2层嵌套循环,时间复杂度为O(n2)。7. 问答题:现欲构造一文件目录树,采用组合(Composite)设计模式来设计,得到的类图如6-1所示:图图6-1类图【Java代码】import java.util.ArrayList;import.java.util.List;(1)clas

11、s AbstractFileprotected String name;public void printName()System.out.println(name);public abstract boolean addChild(AbstractFile file);public abstract boolean removeChild(AbstracFile file);public abstract ListAbstractFilegetChildren();class File extends AbstractFilepublic File(String name)this.name

12、=name;public?boolean addChild(AbstractFile file)return false;public?boolean?removeChild(AbstracFile file)return false;public?ListAbstractFilegetChildren()return(2);class Folder extends AbstractFileprivate ListAbstracFilechildList;public Folder(String name)this.name=name;this.childList=new ArrayListA

13、bstractFile();public boolean addChild(AbstractFile file)return childList.add(file);public boolean removeChild(AbstractFile file)return childList.remove(file);public(3)AbstractFilegetChildren()return(4);public class Clientpublic static void main(Stringargs)/创造一个树形的文件/目录结构AbstractFile rootFolder=new F

14、older(“c:”);AbstractFile compositeFolder=new Folder(“composite”);AbstractFile windowsFolder=new Folder(“windows”);AbstractFile file=new File(“TestComposite.java”);rootFolder.addChild(compositeFolder);rootFolder.addChild(windowsFolder);compositeFolder.addChild(file);/打印目录文件数printTree(rootFolder);private static void printTree(AbstractFile ifile)ifile.printName();ListAbstractFilechildren=ifile.getChildren():if(Children=null)return;for(AbstractFile file:Children)(5

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号