历年软考软件设计师真题分析
软件设计师中级考试真题及答案解析
1. 在软件开发生命周期中,需求分析阶段的主要任务是()。
A. 确定软件系统的总体结构B. 编写程序代码C. 识别和定义系统需求D. 对软件系统进行测试答案:C2. 以下关于软件测试的叙述中,正确的是()。
A. 测试是为了证明软件没有错误B. 测试是为了找出软件中的错误C. 测试是为了确保软件满足用户需求D. 测试是为了提高软件的性能答案:B3. 下列哪项不是软件设计的基本原则?()A. 信息隐藏B. 模块化C. 尽可能使用全局变量D. 高内聚低耦合答案:C4. 面向对象程序设计中,继承的作用是()。
A. 实现代码重用B. 提高程序可读性C. 实现封装D. 隐藏对象的属性答案:A5. 以下哪个不是软件维护的类型?()A. 改正性维护B. 预防性维护C. 适应性维护D. 创新性开发答案:D6. 在软件开发中,瀑布模型的特点是()。
A. 迭代开发B. 顺序开发C. 增量开发D. 并行开发答案:B1. 简述软件设计的主要任务。
答:软件设计的主要任务是将需求规格说明书转换为计算机可执行的程序,包括确定软件系统的总体结构、设计模块接口、设计数据结构、设计算法等。
2. 简述软件测试的目的。
答:软件测试的目的是以较小的代价发现尽可能多的错误,并期望通过此过程来修正错误,提高软件的质量。
同时,软件测试也是评估软件质量、保障软件可靠性的重要手段。
3. 简述面向对象程序设计中封装的概念。
答:封装是面向对象程序设计中的一个重要概念,它指将对象的属性和方法结合成一个独立的单元,并通过访问控制机制来限制对属性和方法的访问。
封装可以提高代码的安全性、可维护性和可重用性。
4. 简述软件维护的定义和类型。
答:软件维护是指在软件交付使用后,为了改正错误、改善性能或其他原因而修改软件的过程。
软件维护的类型包括改正性维护、适应性维护、完善性维护和预防性维护。
5. 简述瀑布模型的特点和适用场景。
答:瀑布模型是一种顺序开发的软件开发模型,它按照需求分析、设计、编码、测试和维护的顺序进行开发。
2022软考中级软件设计师历年经典真题及解析part16
第1题单选题一个程序根据输入的年份和月份计算该年中该月的天数,输入参数包括年份(正整数)、月份(用1~12表示)。
若用等价类划分测试方法进行测试,则()不是一个合适的测试用例(分号后表示测试的输出)。
A.(2013,1,31)B.(0,1,‘错误’)C.(0,13,‘错误’)D.(2001,-1,‘错误’)【解析】正确答案:C。
测试用例编写一般原则:1、设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;2、设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。
在本题中,C选项同时覆盖了两个无效等价类,所以不符合测试用例编写的一般原则。
第2题单选题下面关于栈和队列的叙述,错误的是()。
A.栈和队列都是操作受限的线性表B.队列采用单循环链表存储时,只需设置队尾指针就可使入队和出队操作的时间复杂度都为O(1)C.若队列的数据规模n可以确定,则采用顺序存储结构比链式存储结构效率更高D.利用两个栈可以模拟一个队列的操作,反之亦可【解析】正确答案:D。
第3题单选题若关系R、S如下图所示,则关系代数表达式π1,3,7 (σ3<6(R×S))与()等价。
A.π A,C,E(σ C<D (R×S))B. π A,R.C,E (σ R.C <S.D (R×S))C.πA,S.C,S.E(σR.C <S.D(R×S))D. πR.A,R.C,R.E(σR.C <S.D(R×S))【解析】正确答案:B。
本题考查关系代数运算方面的基础知识。
本题要求关系代数表达式π1,3,7 (σ3<6(R×S))的结果集,其中,R×S的属性列名分别为:R.A,R.B, R.C,R.D,S.C, S.D和S.E ,其结果如下表所示:σ3<6 (R×S)的含义是从R×S结果集中选取第个分量(R.C),小于第六个分量(S.D )的元组,故σ3<6 (R×S)与σ R.C<S.D (R×S)等价。
2024软考中级软件设计师题目
2024软考中级软件设计师题目一、在软件设计过程中,下列哪项活动不属于需求分析阶段?A. 确定软件的功能和性能要求B. 制定软件的测试计划(答案:错,测试计划通常在设计或编码后制定)C. 识别用户需求和约束条件D. 编写需求规格说明书二、关于模块化设计,下列哪项说法是不正确的?A. 模块化设计有助于提高软件的可维护性B. 模块之间应保持高耦合,以便于信息交互(答案:错,模块之间应低耦合,以便于独立修改)C. 每个模块应具有明确的功能和责任D. 模块化设计有助于代码的复用三、在面向对象的设计中,下列哪项不是类与对象的关系?A. 类是对象的模板,对象是类的实例B. 类定义了对象的属性和方法C. 对象可以继承类的所有属性和方法,但不能有自己的特有属性(答案:错,对象可以有自己的特有属性和方法)D. 通过类可以创建多个具有相同属性和方法的对象四、关于软件设计模式,下列哪项说法是正确的?A. 设计模式是一种固定的代码结构,不能根据需要进行修改B. 设计模式是为了解决特定问题而提出的最佳实践方案(答案:对,设计模式是经验的总结)C. 设计模式只适用于大型软件项目,对小型项目没有帮助D. 使用设计模式会增加代码的复杂性和维护难度五、在数据库设计中,下列哪项不是数据规范化的目的?A. 消除数据冗余B. 提高数据的一致性C. 降低数据的存储效率(答案:错,规范化通常是为了提高存储和访问效率)D. 简化数据查询和操作六、关于软件测试,下列哪项说法是不正确的?A. 软件测试是为了发现软件中的错误和缺陷B. 软件测试应该在软件开发的各个阶段进行C. 软件测试可以完全保证软件的质量和可靠性(答案:错,测试只能尽可能发现错误,不能保证完全无误)D. 软件测试应该包括功能测试、性能测试、安全测试等多个方面七、在软件配置管理中,下列哪项活动不是版本控制的主要任务?A. 跟踪和管理软件的不同版本B. 记录和报告软件的变更历史C. 防止未经授权的访问和修改软件(答案:错,这是访问控制的任务,非版本控制)D. 支持软件的并行开发和测试八、关于软件架构,下列哪项说法是不正确的?A. 软件架构描述了软件系统的整体结构和组件之间的关系B. 软件架构是软件设计的重要组成部分,对软件的质量和性能有重要影响C. 软件架构一旦确定,就不能在开发过程中进行修改(答案:错,架构可以根据需要进行调整和优化)D. 软件架构应该考虑系统的可扩展性、可维护性和可用性等因素。
历年软考软件设计师经典真题及答案
历年软考软件设计师经典真题及答案1.软件水平成熟模型(CMM)是当前国际上最流行、最实用的软件生产过程标准和软件企业成熟度的等级认证标准。
该模型将软件水平成熟度自低到高依次划分为初始级、可重复级、已定义级、已管理级、优化级。
从( )开始,要求企业建立基本的项目管理过程的政策和管理规程,使项目管理工作有章可循。
A.初始级B.可重复级C.已定义级D.已管理级参考答案:C2.一个软件开发过程描述了“谁做”、“做什么”、“怎么做”和“什么时候做”,RUP用( )来表述“谁做”。
A. 角色B. 活动C. 制品D. 工作流参考答案:A3.RUP 在每个阶段都有主要目标,并在结束时产生一些制品。
在( )结束时产生“在适当的平台上集成的软件产品”。
A. 初期阶段B. 精化阶段C. 构建阶段D. 移交阶段参考答案:C4.RUP分为4个阶段,每个阶段结束时都有重要的里程碑,其中生命周期架构是在( )结束时的里程碑。
A.初期阶段B. 精化阶段C. 构建阶段D. 移交阶段参考答案:A5.ISO/IEC 9126 软件质量模型中第一层定义了六个质量特性,并为各质量特性定义了相对应的质量子特性。
子特性( )属于可靠性质量特性。
A.准确性B. 易理解性C. 成熟性D. 易学性参考答案:C6.结构化开发方法中,数据流图是( )阶段产生的成果。
A. 需求分析B. 总体设计C. 详细设计D. 程序编程参考答案:A例如:学籍管理系统的数据流图例如:学籍管理系统的顶层图7.下列要素中,不属于DFD的是( )。
当使用DFD对一个工资系统实行建模时,( )能够被认定为外部实体。
(1)A.加工 B.数据流 C.数据存储 D.联系(2)A.接收工资单的银行 B.工资系统源代码程序C.工资单D.工资数据库的维护参考答案:D、A8.【说明】某公司拟开发一个销售管理系统,其主要功能描述如下:1.接受客户订单,检查库存货物是否满足订单要求。
如果满足,实行供货处理:即修改库存记录文件,给库房开具备货单并且保留客户订单至订单记录文件;否则实行缺货处理:将缺货订单录入缺货记录文件。
软考试题及答案
软考试题及答案近年来,软考成为越来越多从事信息技术行业的人士追逐的目标。
软考的全称是软件设计师资格考试,它是一项国家级的职业资格认证考试,对于求职、升职以及个人技术能力的提升都具有重要意义。
在备考软考的过程中,熟悉和掌握历年的软考试题及答案是非常必要的,本文将为大家提供一些软考试题及答案,希望能对大家的备考有所帮助。
1. 单选题题目:在软件开发过程中,以下哪个不属于问题域分析的内容?A. 业务需求分析B. 数据流程分析C. 系统接口分析D. 数据库设计答案:D解析:问题域分析主要集中在业务需求的分析上,包括了数据流程分析和系统接口分析。
而数据库设计属于技术层面的内容,不属于问题域分析的范畴。
2. 多选题题目:以下哪些是软件开发过程中常用的软件项目管理方法?(多选)A. 瀑布模型B. 敏捷开发C. 增量模型D. 螺旋模型答案:A、B、C、D解析:常用的软件项目管理方法有瀑布模型、敏捷开发、增量模型和螺旋模型。
这些方法都是根据软件开发的实际情况和需求来设计和实施的。
3. 判断题题目:软件测试只能在软件开发的最后阶段进行。
A. 正确B. 错误答案:B解析:软件测试应该在软件开发的每个阶段都进行,例如单元测试可以在编码阶段进行,集成测试可以在模块开发完成后进行,系统测试可以在整个软件功能完成后进行。
测试的目的是为了发现潜在的问题和错误,并及时修复。
4. 填空题题目:软件工程的基本原理是“__________”。
答案:因人而异解析:软件工程是一门涉及技术、管理和组织的学科,不同的项目和企业都可能有不同的需求和方法,因此软件工程的具体实践方法因人而异。
5. 应用题题目:请编写一个简单的Java程序,实现计算两个整数的和并输出结果。
```javapublic class SumCalculator {public static void main(String[] args) {int num1 = 10;int num2 = 20;int sum = num1 + num2;System.out.println("两个整数的和为:" + sum);}}```以上是一段简单的Java程序,它定义了一个名为`SumCalculator`的类,其中的`main`方法用于计算两个整数的和并输出结果。
2021软考中级软件设计师历年经典真题及解析part11
第1题单选题以下的算法设计方法中,()以获取问题最优解为目标。
A.回溯方法B.分治法C.动态规划D.递推【解析】正确答案:C。
本题考查算法基础知识。
回溯法的实质是在包含问题的所有解的解空间树中,按照深度优先的策略,从根节点出发搜索解空间树。
若进入某子节点的子树后没有找到解(或者需要找出全部解),则需要从子节点回退(回溯)至父节点,从而可以选择其他子节点进行搜索。
回溯法有“通用的解题法”之称,用它可以系统地搜索一个问题的所有解或任一解。
分治与递归就像一对孪生兄弟,经常同时应用于算法设计中。
分治的思路是将一个难以直接解决的大问题分成一些规模较小的相同问题,以便各个击破,分而治之。
如果规模为n的问题可分解成k个子问题,1<k≤n,这些子问题互相独立且与原问题相同。
动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。
与分治法不同的是,适合于用动态规划法求解的问题,经分解得到的子问题往往不是独立的。
若用分治法来解这类问题,则相同的子问题会被求解多次,以至于最后解决原问题需要耗费指数级时间。
动态规划算法通常用于求解具有某种最优性质的问题。
在这类问题中,可能会有许多可行解,每个解都对应于一个值,我们希望找到具有最优值(最大值或最小值)的那个解。
第2题单选题随着网站知名度不断提高,网站访问量逐渐上升,网站负荷越来越重,针对此问题,一方面可通过升级网站服务器的软硬件,另一方面可以通过集群技术,如DNS负载均衡技术来解决,在Windows的DNS服务器中通过()操作可以确保域名解析并实现负载均衡。
A.启用循环,启动转发器指向每个Web服务器B.禁止循环,启动转发器指向每个Web服务器C.禁止循环,添加每个Web服务器的主机记录D.启用循环,添加每个Web服务器的主机记录【解析】正确答案:D。
通过DNS服务器实现网络负载均衡则是一种保证用户网络访问的方式。
软考第四版试题及答案解析
软考第四版试题及答案解析一、选择题1. 在软件工程中,需求分析阶段的主要任务是什么?A. 确定软件的最终用户B. 确定软件的功能需求C. 设计软件的架构D. 编写软件的代码答案:B2. 面向对象编程中,封装的主要目的是什么?A. 隐藏数据B. 重用代码C. 简化程序的复杂度D. 提高程序的运行效率答案:A3. 在软件开发过程中,哪个阶段是进行单元测试的?A. 需求分析B. 设计阶段C. 编码阶段D. 维护阶段答案:C二、填空题1. 软件测试的目的是______,确保软件满足规定的需求并且没有缺陷。
答案:验证和验证2. 在敏捷开发方法中,______是核心实践之一,它帮助团队保持对项目进展的持续关注。
答案:每日站立会议3. 数据库管理系统(DBMS)的主要功能是______、存储和管理数据。
答案:组织三、简答题1. 请简述软件危机的概念及其产生的原因。
答案:软件危机是指在软件开发过程中遇到的一系列问题,如项目延期、成本超出预算、软件质量低下等。
产生的原因包括需求不明确、技术不断变化、缺乏有效的项目管理方法等。
2. 解释什么是软件重用,并说明其优点。
答案:软件重用是指在新的软件开发过程中,利用已有的软件组件或代码来减少开发时间和成本。
其优点包括提高开发效率、降低成本、减少错误和提高软件质量。
四、案例分析题阅读以下案例,并回答问题:案例描述:某公司开发了一个在线购物平台,但在用户测试阶段发现了许多问题,包括登录功能不稳定、支付流程复杂等。
项目经理决定采用敏捷开发方法来改进这些问题。
问题:1. 项目经理应该采取哪些措施来应对这些问题?2. 敏捷开发方法如何帮助解决这些问题?答案:1. 项目经理应该首先与用户沟通,明确需求,然后组织团队进行迭代开发,快速响应用户反馈,不断优化功能。
2. 敏捷开发方法通过短周期的迭代开发,允许团队快速适应变化,及时调整开发方向,从而有效解决用户提出的问题。
五、论述题请论述软件项目管理的重要性及其在实际开发中的应用。
2021软考中级软件设计师历年经典真题及解析part6
第1题单选题访问控制是对信息系统资源进行保护的重要措施,适当的访问控制能够阻止未经授权的用户有意或者无意地获取资源。
计算机系统中,访问控制的任务不包括()。
A.审计B.授权C.确定存取权限D.实施存取权限【解析】正确答案:A。
安全审计对主体访问和适用客体的情况进行记录和审查,以保证安全规则被正确执行,并帮助分析安全事故产生的原因。
与访问控制无关。
第2题单选题下面控制流图的环路复杂度V(G)是()。
A.3B.4C.5D.6【解析】正确答案:B。
环路复杂度的计算有固定的公式。
V(G)=e-n+2,其中,e代表有向图的边数,n代表有向图的结点数。
本题e为10,n为8,所以V(G)=10-8+2=4。
第3题案例题阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】某医疗护理机构为老年人或有护理需求者提供专业护理,现欲开发一基于Web的医疗管理系统,以改善医疗护理效率。
该系统的主要功能如下:(1)通用信息查询。
客户提交通用信息查询请求,查询通用信息表,返回查询结果。
(2)医生聘用。
医生提出应聘/辞职申请,交由主管进行聘用/解聘审批,更新医生表,并给医生反馈聘用/解聘结果;删除解聘医生的出诊安排。
(3)预约处理。
医生安排出诊时间,存入医生出诊时间表;根据客户提交的预约查询请求,查询在职医生及其出诊时间等预约所需数据并返回;创建预约,提交预约请求,在预约表中新增预约记录,更新所约医生出诊时间并给医生发送预约通知;给客户反馈预约结果。
(4)药品管理。
医生提交处方,根据药品名称从药品数据中查询相关药品库存信息,开出药品,更新对应药品的库存以及预约表中的治疗信息;给医生发送”药品已开出“反馈。
(5)报表创建。
根据主管提交的报表查询请求(报表类型和时间段),从预约数据、通用信息、药品库存数据、医生以及医生出诊时间中进行查询,生成报表返回给主管。
现采用结构化方法对医疗管理系统进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。
【软考软件设计师中级真题】软件设计师历年试题分析与解答(2010年最新版)
【软考软件设计师中级真题】第1章2005上半年软件设计师级上午试题分析与解答试题(1)、(2)在计算机中,最适合进行数字加减运算的数字编码是(1),最适合表示浮点数阶码的数字编码是(2)。
(1)A.原码B.反码C.补码D.移码(2)A.原码B.反码C.补码D.移码试题(1)、(2)分析在计算机的CPU中,通常只设置硬件加法器。
只有补码能够将减法转化为加法,故用硬件加法器可以较方便地进行数字加减法。
由于正数的移码大于负数的移码,利用这一特点,移码被广泛用来表示浮点数阶码的数字编码,这可以用比较阶码的大小来实现真值大小的比较。
参考答案(1)C (2)D试题(3)如果主存容量为16M字节,且按字节编址,表示该主存地址至少应需要(3)位。
(3)A.16 B.20 C.24 D.32试题(3)分析用二进制编码表示地址,16M字节地址最少需要24位。
参考答案(3)C试题(4)~(6)操作数所处的位置,可以决定指令的寻址方式。
操作数包含在指令中,寻址方式为(4);操作数在寄存器中,寻址方式为(5);操作数的地址在寄存器中,寻址方式为(6)。
(4)A.立即寻址B.直接寻址C.寄存器寻址D.寄存器间接寻址(5)A.立即寻址B.相对寻址C.寄存器寻址D.寄存器间接寻址(6)A.相对寻址B.直接寻址C.寄存器寻址D.寄存器间接寻址【软考软件设计师中级真题】试题(4)~(6)分析操作数包含在指令中的寻址方式为立即寻址;操作数在寄存器中的寻址方式为寄存器寻址;操作数的地址在寄存器中的寻址方式为寄存器间接寻址。
参考答案(4)A (5)C (6)D试题(7)三个可靠度R均为0.8的部件串联构成一个系统,如下图所示:则该系统的可靠度为(7)。
(7)A.0.240 B.0.512 C.0.800 D.0.992试题(7)分析本题中由三个部件串联构成系统,三个部件中任何一个部件失效就足以使系统失效。
串联系统的可靠度RS=R×R×R=0.8×0.8×0.8=0.512。
软考试题及答案近十年
软考试题及答案近十年一、选择题1. 软件工程中,需求分析阶段的主要任务是什么?A. 设计软件架构B. 确定软件需求C. 编写详细设计文档D. 进行单元测试答案:B2. 在软件开发过程中,哪个阶段是进行代码编写?A. 需求分析B. 设计C. 编码D. 测试答案:C3. 以下哪个不是敏捷开发的核心价值观?A. 个体和互动B. 过程和工具C. 客户合作D. 响应变化答案:B4. 在软件测试中,黑盒测试的主要依据是什么?A. 软件的内部逻辑B. 软件的功能需求C. 软件的源代码D. 软件的测试用例答案:B5. 面向对象编程中的“封装”是指什么?A. 将数据和操作数据的方法组合在一起B. 将数据和数据类型定义在一起C. 将方法和方法的调用组合在一起D. 将数据和数据的存储方式组合在一起答案:A二、简答题1. 请简述软件开发生命周期(SDLC)的主要阶段。
答案:软件开发生命周期(SDLC)的主要阶段包括:需求分析、设计、编码、测试、部署和维护。
2. 解释什么是软件的可维护性,并说明其重要性。
答案:软件的可维护性是指软件在生命周期内能够被修改、升级和修复的容易程度。
它的重要性在于,良好的可维护性可以降低维护成本,提高软件的适应性和延长软件的使用寿命。
三、论述题1. 论述软件项目管理中风险管理的重要性,并给出风险管理的一般步骤。
答案:软件项目管理中风险管理的重要性在于,它可以帮助项目团队识别潜在的问题,评估这些问题的影响,并制定相应的应对策略,从而减少项目失败的风险。
风险管理的一般步骤包括:风险识别、风险评估、风险优先级排序、风险应对策略制定和风险监控。
四、案例分析题1. 假设你是一个软件项目经理,你的团队正在开发一个在线购物平台。
请分析可能遇到的风险,并提出相应的风险应对措施。
答案:在线购物平台开发可能遇到的风险包括:技术风险、市场风险、竞争风险和法律风险。
应对措施可能包括:进行技术可行性研究、市场调研、竞争对手分析和法律合规性检查。
软考试题及答案近十年
软考试题及答案近十年一、单项选择题1. 以下哪个选项不是软件测试的目的?A. 验证软件是否满足需求规格说明书B. 验证软件是否满足设计文档C. 验证软件是否满足用户的实际需求D. 验证软件是否满足开发人员的需求答案:D2. 在敏捷开发过程中,以下哪个角色不是必须存在的?A. 产品负责人B. 敏捷教练C. 项目经理D. 开发团队成员答案:C3. 以下哪个不是面向对象编程的特点?A. 封装B. 继承C. 多态D. 过程化答案:D二、多项选择题1. 以下哪些是软件开发过程中的常见风险?A. 需求变更B. 技术难度C. 资金不足D. 市场变化答案:A、B、C、D2. 在软件工程中,以下哪些是软件维护的活动?A. 改正性维护B. 适应性维护C. 完善性维护D. 预防性维护答案:A、B、C、D三、填空题1. 软件工程中的______是指在软件开发过程中,对软件进行修改以提高其性能、可维护性、可靠性等。
答案:重构2. 在软件开发中,______是指在需求分析阶段,将用户的需求转化为软件需求规格说明书的过程。
答案:需求获取四、简答题1. 请简述软件测试的基本原则。
答案:软件测试的基本原则包括:- 测试显示存在缺陷的原则:测试的主要目的是发现缺陷,而不是证明软件没有缺陷。
- 穷尽测试是不可能的原则:由于时间和资源的限制,不可能对所有可能的输入进行测试。
- 早期测试原则:测试应该尽早进行,以便于发现问题并降低修复成本。
- 缺陷聚集原则:缺陷往往聚集在某些特定的模块或功能中。
- 杀虫剂悖论:如果同样的测试用例重复执行多次,那么发现新缺陷的可能性会降低。
2. 请简述敏捷开发中的迭代过程。
答案:敏捷开发中的迭代过程通常包括以下步骤:- 迭代计划:确定迭代的目标和任务。
- 迭代开发:开发团队根据计划进行开发。
- 迭代测试:对开发出的软件进行测试,确保满足需求。
- 迭代评审:与利益相关者一起评审迭代结果。
- 迭代回顾:团队成员回顾迭代过程,总结经验教训。
2022软考中级软件设计师历年经典真题及解析part15
单选题在平衡二叉树中,()。
A.任意结点的左、右子树结点数目相同目B.任意结点的左、右子树高度相同C.任意结点的左右子树高度之差的绝对值不大于1D.不存在度为1的结点【解析】正确答案:C。
本题考查平衡二叉树的基本概念。
平衡二叉树又称为AVL树,它或者是一棵空树,或者是具有下列性质的二叉树;它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。
若将二叉树结点的平衡因子(Balance Factor, BF)定义为该结点的左子树的深度减去其右子树的深度,则平衡二叉树上所有结点的平衡因子只可能是一1, 0和1。
只要树上有一个结点的平衡因子的绝对值大于1,则该二叉树就是不平衡的。
第2题单选题DMA工作方式下,在()之间建立了直接的数据通路。
A.CPU与外设B.CPU与主存C.主存与外设D.外设与外设【解析】正确答案:C。
DMA控制外设和主存之间的数据传送,无须CPU的干预。
因此DMA工作方式下,在主存和外设之间建立了直接的数据通路。
单选题某文件管理系统在磁盘上建立了位示图(bitmap),记录磁盘的使用情况。
若计算机系统的字长为 32 位,磁盘的容量为 300GB ,物理块的大小为4MB ,那么位示图的大小需要()个字。
A.1200B.2400C.6400D.9600【解析】正确答案:B。
由于磁盘容量为300GB,物理块大小4MB,所以共有300×1024/4=75×1024块物理块,位示图用每1位表示1个磁盘块的使用情况,1个字是32位,所以1个字可以表示32块物理块使用情况,那么需要75×1024/32=2400个字表示使用情况。
第4题单选题采用面向对象方法进行系统开发时,以下与新型冠状病毒有关的对象中,存在“一般-特殊’关系的是()。
A.确诊病人和治愈病人B.确诊病人和疑似病人C.医生和病人D.发热病人和确诊病人【解析】正确答案:D。
发热病人是一般对象,确诊病人是发热病人的特殊化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
历年软考软件设计师真题分析
软件设计师近几年的考试形式与考核内容已经完全趋于稳定,从2007年至2009年的考试情况分析来看,考核形式与内容变化不大,作为考生应该紧紧扣住2009新大纲,有针对性、有策略地复习。
本文将总结近几年考试的内容分布,给出软件设计师上、下午题目的组成,以帮助考生复习。
1、软件设计师上午试题
分析近三年的考试情况,上午试题的知识点分布如表1所示。
表1 近三年上午试题考核内容分布情况
鉴于软件设计师上下午考试的侧重点不同,考生在准备上午考试的时候,需要注意掌握知识面的宽度,由于上午试题出题形式的局限性,必然不会出现较深的分析与设计类考题,因此考生应该在基本知识上多下工夫。
以数据结构为例,在多次考试中出现了考察考生对栈的理解,其内容无非是
栈的操作以及栈的后进先出的特性,上午试题将很难考察栈的具体实现问题。
同样,对于面向对象基础知识,更多的是考察面向对象分析、面向对象设计、类、对象、封装、继承、消息等基本概念;而算法则考察各种不同算法的时间和空间复杂度问题。
当然,考生在掌握基本概念的同时,也需要关注基本应用题型,例如很多基本知识结合一些实际的应用小例子,如设计模式、数据结构、程序语言等考核点就曾多次出现。
笔者推荐考生参照官方推荐的教材进行复习,因为该教材基本涵盖了所有上午试题内容。
2.软件设计师下午试题
软件设计师下午的考核内容分布如表2所示。
表2 近三年下午试题考核内容分布情况
近三年来的下午考题一直都是试题一到试题四是必答题目,试题五至试题七
是选答题目,考核形式一直都没有发生变化,但笔者在观察2009年的考试时候出现了两个不同点,值得引起考生的注意:
(1)算法与C语言的结合
算法早期的出题多是以伪代码或者流程图的形式出现,但2009年算法已经和C语言结合在一起出题,分析考试大纲,C语言应该是软件设计师必须掌握的内容之一,相信这也是2009新大纲出来后考试出题所作的调整,考生需要注意不仅要掌握算法的原理,还需要掌握算法的具体实现,尤其是使用C语言实现。
另外,由于C语言与算法结合出现,意味着C语言本身是否还需要单独考核的问题,这就需要考生注意本文谈到的第二个注意点。
(2)C语言考题顺序的调整
2009年的考试中,出现了将C语言调整到第七题,而将C++与Java调整为第五题和第六题,笔者认为,顺序的调整应该不是一个随机性的事情,调整的目的极有可能是为了突出C++与Java的重要性,可能是希望考生注意C++与Java题目。
如本文第一点所述,因为C已经与算法结合进行了考核,在后续的考题中,C语言单独出题的可能性会有所降低。
这样的话,考生就需要在Java 和C++考题上多下工夫,需要详细理解并掌握设计模式与Java或者C++语言的结合问题。
如需了解更多软件设计师考试资讯,请看希赛软考学院!。