2022年软考-软件设计师考试内容及全真模拟冲刺卷附带答案与详解第24期.docx
《2022年软考-软件设计师考试内容及全真模拟冲刺卷附带答案与详解第24期.docx》由会员分享,可在线阅读,更多相关《2022年软考-软件设计师考试内容及全真模拟冲刺卷附带答案与详解第24期.docx(30页珍藏版)》请在三一文库上搜索。
1、2022年软考-软件设计师考试内容及全真模拟冲刺卷(附带答案与详解)1. 单选题某种机器的浮点数表示格式如下(允许非规格化表示)。若阶码以补码表示,尾数以原码表示,则1 0001 0 0000000001表示的浮点数是()问题1选项A.2-162-10B.2-152-10C.2-16 (1-2-10)D.2-15 (1-2-10)【答案】B【解析】考查对于浮点数表示。浮点数表示:N=尾数*基数指数其中尾数是用原码表示,是一个小数,通过表格和题干可知, 0 0000000001是尾数部分,共计后11位,其中第1位为0表示正数,展开得2-10阶码部分是用补码表示,是一个整数,通过表格和题干可知,1
2、 0001是整数部分,共计前5位,要计算其具体数值需要将其转换成原码,通过第1位符号位1可知其为负数,补码:10001 ,反码:10000 原码:11111,数据为-15,基数在浮点数表示为2,可得2-152-102. 案例题阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】层叠菜单是窗口风格的软件系统中经常采用的一种系统功能组织方式。层叠菜单(如图6-1示例)中包含的可能是一个菜单项(直接对应某个功能),也可能是一个子菜单,现在采用组合(composite)设计模式实现层叠菜单,得到如图6-2所示的类图层叠菜单(如图6-1示例)暂缺 图6-2 类图import
3、java.util.*;abstract class MenuComponent / 构成层叠菜单的元素(1) String name; / 菜单项或子菜单名称public viod printName() System.out.println(name); public (2) ;public abstract boolean removeMenuElement(MenuComponent element);public (3) ;class MenuItem extends MenuComponent public MenuItem(String name) this.name=name;
4、 public boolean addMenuElement(MemuComponent element) return false; public boolean removeMenuElement(MenuComponent element) return false; public List getElement() return null; class Menu extends MemuComponent private (4);public Menu(String name)this.name = name;this.elementList = new ArrayList;publi
5、c boolean addMenuElement(MenuComponent element)return elementList.add(element);public boolean removeMenuElement(MenuComponent element)return elementList.remove(element);public List getElement() return elementList;class CompositeTest public static void main(String args) MenuComponent mainMenu = new M
6、enu(“AB”); /此处字符不清晰,以“AB”代替原文MenuComponent subMenu = new Menu(“Chart”);MenuComponent element = new MenuItem(“On This Sheet”);(5);subMenu.addMenuElement(element);printMenus(mainMenu);private static void printMenus(MenuComponent ifile)ifile.printName();List children = ifile.getElement();if(children =
7、null) return; /打印for(MenuComponent element; children)printMenus(element);【答案】(1)protected(2)abstract boolean addMenuElement(MemuComponent element)(3)abstract List getElement()(4)ArrayList elementList(5)mainMenu.addMenuElement(subMenu)【解析】本题是典型的组合模式应用。首先根据类图中name标注的为#(+表示public,-表示private,#表示protecte
8、d),第(1)空对name的修饰应该是protected。然后根据抽象类和实现类的对应关系,可以补充第(2)(3)空,这两处缺失的方法根据下文代码进行补充,注意方法名必须用abstract修饰,并且注意抽象方法的写法没有具体方法体。其中第(2)空填写abstract boolean addMenuElement(MemuComponent element) ,第(3)空填写abstract List getElement()。第(4)空缺失了一个属性,此时根据下文的同名构造函数会发现,此处传参给了this.name以及this.elementList,name可以根据父类继承使用,而eleme
9、ntList需要定义,因此此处缺失的参数是elementList,类型根据后面的赋值类型进行定义,即第(4)空填写ArrayList elementList。第(5)空是对组合模式的应用拼装,根据下文可知打印需要调用mainMenu对象,而此时该对象是独立的,需要与其他菜单进行拼装,下文中subMenu拼装了element,此处需要将subMenu拼装到mainMenu,即第(5)空填写mainMenu.addMenuElement(subMenu)。3. 单选题下面是一个软件项目活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的权重表示活动的持续时间(天),则关键路径长度为(
10、 ),在该活动图中,活动( )晚16天开始不会影响上班。问题1选项A.20B.25C.27D.48问题2选项A.ACB.BEC.FID.HJ【答案】第1题:D第2题:B【解析】本题是对进度网络图分析的考查。将各个活动的最早开始和完成时间、最晚开始和完成时间、持续时间和总时差分别进行标注,结果如下:4. 案例题阅读下列说明和代码,回答问题1和问题2,将解答写在答题纸的对应栏内。【说明】凸多边形是指多边形的任意两点的连线均落在多边形的边界或内部。相邻的点连线落在多边形边界上,称为边;不相邻的点连线落在多边形内部,称为弦。假设任意两点连线上均有权重,凸多边形最优三角剖分问题定义为:求将凸多边形划分为
11、不相交的三角形集合,且各三角形权重之和最小的剖分方案。每个三角形的权重为三条边权重之和。假设N个点的凸多边形点编号为V1,V2,VN,若在VK处将原凸多边形划分为一个三角形V1VkVN,两个子多边形V1,V2,Vk和Vk,Vk+1,VN,得到一个最优的剖分方案,则该最优剖分方案应该包含这两个子凸边形的最优剖分方案。用mij表示带你Vi-1,Vi,Vj构成的凸多边形的最优剖分方案的权重,Sij记录剖分该凸多边形的k值。则其中:W(Vi-1VkVj)=Wi-1,kWk,jWj,i-1为三角形Vi-1VkVj的权重,Wi-1,k,Wk,j,Wj,i-1分别为该三角形三条边的权重。求解凸多边形的最优剖
12、分方案,即求解最小剖分的权重及对应的三角形集。C代码includestdio.hdefine N 6 /凸多边形规模int mN1 N1; /mij表示多边形Vi-1到Vj最优三角剖分的权值int SN1 N1; /Sij记录多边形Vi-1到Vj最优三角剖分的k值int WN1 N1; /凸多边形的权重矩阵,在main函数中输入/*三角形的权重a,b,c,三角形的顶点下标*/int get_ triangle_weight(int a,int b,int c) return WabWbcWca;/*求解最优值*/void triangle_partition()int i,r,k,j;int
13、temp;/*初始化*/for(i=1;i /*r为子问题规模*/ for(i=1;k (2); mij= mij+mi+1j+get_triangle_weight(i-1,i,j); /*k=j*/ Sij=i; for(k=j+1;k /*计算 ij的最小代价*/ temp=mik+mk+1j+ge_triangle_ weight(i-1,k,j); if(3) /*判断是否最小值*/ mij=temp; Sij=k; /*输出剖分的三角形i,j:凸多边形的起始点下标*/void print_triangle(int i,int j)if(i=j) return;print_trian
14、gle(i,Sij);print_ triangle(4);print(“V%d- -V%d- -V%dn“,i-1,Sij,j);【问题1】(8分)根据题干说明,填充C代码中的空(1)(4)。【问题2】(7分)根据题干说明和C代码,该算法采用的设计策略为(5)。算法的时间复杂度为(6),空间复杂度为(7)(用O表示)【答案】【问题1】(8分)(1)i3)(7)O(n2)【解析】本题考查的是凸多边形最优三角剖分动态规划设计过程。本题算法难度较大,在没有理解算法过程的前提下,首先可以根据相关信息进行部分填空。首先根据题干描述出现的将问题规模从k开始截断,此时其实就是“最优子结构”的说法,并且本题
15、出现了递归式的应用,是典型的动态规划法的应用。又根据题目中的代码,出现了三层嵌套for循环,此时代码的时间复杂度为O(n3)。本题用到的辅助空间记录中间解有2个数组mij和Sij,都是二维数组,空间复杂度的量级为O(n2)。最后分析代码填空部分。第(1)空,r表示的是子问题规模,规模划分已知从r=2开始,子问题最大应该能够取到N,因此本空填写r=N或其等价表示形式。第(2)空缺失的是j的初始化赋值,本空较难。代码计算前边界为i,链长为r的链的后边界取值,结果为i+r-1,即本题填写j=i+r-1或其等价表示形式。第(3)空缺失判断条件,此时注释明确说明此处判断最小值,判断后,mij值进行修改并
16、修改为temp,也就是意味着mij此时记录的不是最优解(最小值),需要进行修正改为最小,即填写tempDraw()(5) piece-Draw()6. 单选题某高校信息系统设计的分E-R图中,人力部门定义的职工实体具有属性:职工号、姓名、性别和出生日期;教学部门定义的教师实体具有属性:教师号、姓名和职称。这种情况属于( ),在合并E-R图时,( )解决这一冲突。问题1选项A.属性冲突B.命名冲突C.结构冲突D.实体冲突问题2选项A.职工和教师实体保持各自属性不变B.职工实体中加入职称属性,删除教师实体C.教师也是学校的职工,故直接将教师实体删除D.将教师实体所有属性并入职工实体,删除教师实体【
17、答案】第1题:C第2题:B【解析】第1题:本题是对数据库概念设计的考查。关于冲突的概念:属性冲突。同一属性可能会存在于不同的分E-R图,由于设计人员不同或是出发点不同,对属性的类型、取值范围和数据单位等可能会不一致。命名冲突。相同意义的属性在不同的分E-R图中有着不同的命名,或是名词相同的属性在不同的分E-R图中代表着不同的意义。结构冲突。同一实体在不同的分E-R图中有不同的属性,同一对象在某一分E-R图中被抽象为实体,而在另一分E-R图中又被抽象为属性,需要统一。本题属于结构冲突,选择C选项。没有实体冲突的说法。第二问本身不够严谨。根据题干来看,因为存在冲突,需要某些操作去解决,所以A选项保
18、持不变无法解决问题。C选项直接删除教师实体,会丢失教师中的职称属性。D选项并入的方式,会重复记录姓名属性。只有B选项相对合适一些,将职称属性加入职工实体,然后删除教师实体,过程中还需要对属性名称进行统一调整。本题选择B选项。第2题:7. 案例题阅读下列说明和Java代码,将应填入(n)处的字句写在题纸的对应栏内。【说明】享元(flyweight)模式主要用于减少创建对象的数量,以低内存占用,提高性能。现要开发一个网络围棋程序允许多个玩家联机下棋。由于只有一台服务器,为节内存空间,采用享元模式实现该程序,得到如图6-1所的类图。图6-1 类图【Java代码】import java.util.*:
19、enum PieceColor BLACK,WHITE棋子颜色class PiecePos棋子位置private intx;private int y;pubic PiecePos(int a,int b)x=a;y=b;public int getX( )return x;public int getY( )return y; abstract class Piece棋子定义protected PieceColor mcolor;颜色protected Piecemopos mpos;位置public Piece(PieceColor,color PiecePos pos)m_color=c
20、olor;mpos=pos;(1);class BlackPiece extends Piecepublic BlackPiece(PieceColor color,PiecePos pos)super(color,pos);public void draw ( ) System out println(draw a blackpiece); class WhitePiece extends Piecepublic WhitePiece(PieceColor color,PiecePos pos)super(color,pos);public void draw( ) System.out.p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 年软考 软件 设计师 考试内容 模拟 冲刺 附带 答案 详解 24
