中级软件设计师2017上半年下午试题及答案解析

合集下载

2017年上半年计算机水平考试(中级)《系统集成项目管理工程师》真题(下午考卷)及答案

2017年上半年计算机水平考试(中级)《系统集成项目管理工程师》真题(下午考卷)及答案

2017年上半年计算机水平考试(中级)《系统集成项目管理工程师》真题(下午考卷)(总分75, 考试时间90分钟)1. 试题一阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】A公司想要升级其数据中心的安防系统,经过详细的可行性分析及项目评估后,决定通过公开招标的方式进行采购。

某系统集成商B公司要求在投标前按照项目实际情况进行综合评估后才能做出投标决策。

B公司规定:评估分数(按满分为100分进行归一化后的得分)必须在70分以上的投标项目才具有投标资格。

于是B公司项目负责人张工在购买标书后,综合考虑竞争对手、项目业务与技术等因素,编制了如下评估表:1. 【问题1】(6分)综合上述案例,请帮助项目经理张工计算该项目的评估结果(包括合计得分和归一化结果)。

该问题分值: 6答案:合计得分83分归一化评估结果是项目有投标资格。

2. 【问题2】(4分)基于以上案例,如果你是B公司管理层领导,对于该项目,是决定投标还是放弃投标?为什么?该问题分值: 4答案:决定投标因为该项目:A、回款容易B、公司对项目业务熟悉程度较高。

C、公司对项目的技术熟悉程度很高。

虽然竞争胜出的可能性不超过50%,但是综合考虑符合公司的归一化评估要求,值得投标。

3. 【问题3】(8分)请指出项目论证应包括哪几个方面?该问题分值: 8答案:项目论证的内容包括项目运行环境评价、项目技术评价、项目财务评价、项目国民经济评价、项目环境评价、项目社会影响评价、项目不确定性和风险评价、对可能的其他投标者的相关情况分析等。

2. 试题二阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。

【说明】某项目细分为A、B、C、D、E、F、G、H共八个模块,而且各个模块之间的依赖关系和持续时间如下表所示:1. 【问题1】(4分)计算该活动的关键路径和项目的总工期该问题分值: 4答案:关键路径:A-C-E-H,总工期28天2. 【问题2】(8分)(1)计算活动B、C、D的总体时差(2)计算活动B、C、D的自由时差(3)计算活动D、G的最迟开始时间该问题分值: 8答案:(1),B的总时差为3,C的总时差为0,D的总时差为4(2),B的自由时差为3,C的自由时差为0,D的自由时差为0(3),活动D的最迟开始时间为28-9-6-4+1=10,第10天早上必须开始。

2017年上半年软考程序员考试真题(案例分析)下午试题

2017年上半年软考程序员考试真题(案例分析)下午试题

是不合法的。 【函数】 int isLegal(char*ipaddr) ﹛ int flag; int cur Val;//curVal 表示分析出的一个十进制数 int decNum=0,dotNum=0;//decNum 用于记录十进制数的个数 //dotNum 用户记录点的个数 Char*p=() for(;*p;p++)﹛ curVal=0;flag=0 While(isdigit(*p))﹛//判断是否伟数字字符 CurVal=() +*p-′0′; () flag=1; ﹜ if(curVal>255)﹛ return0; ﹜ if(flag)﹛ () ﹜if(*p=′.′﹛ dotNum++;
函数 enqueue(queue*q,KeyType new_elem)的功能是将元素 new_elem 加入队尾。 函数 Dnqueue(queue*q,KeyType*elem)的功能使将非空队列 的队头元素出队(从 队列中删除),并通过参数带回刚出队的元素。 用单向循环链表表示的队列如图 4-1 所示。
Link:queue rear; }queue; 【C 函数】 int enqueue(queue*q,KeyType new_elem)﹛//元素 new_elem 入队列 qNode*p; P=(qNode*)malloc(sizeof(qNode)); if(!p) return errOr; P->data=new_elem; if(q->rear)﹛ P->next=q->rear->next; (); ﹜ else P->next=p; ﹙﹚; q->size++; return OK; ﹜ int Dequeue(queue*q,KeyType*elem) ﹛//出队列

2017年上半年软件设计师考试下午真题(完整版)

2017年上半年软件设计师考试下午真题(完整版)

全职师资直播+录播双保障
1v1全程辅导
希赛网() 400-111-9811
2 ){ Return getCounterfeitCoin(coins,first,first+(last-first)/2;) }else{ Return getCounterfeitCoin(coins,first+(lastfirst)/2+1,last;) } } else{ /*奇数枚硬币*/ For(i=first;i<first+(last-first)/2;i++){ firstSum+=coins[i]; } For(i=first+(last-first)/2+1;i<last+1;i++){ lastSum+=coins[i]; } If(firstSum<lastSum){ return getCounterfeitCoin(coins,first,first+(last-first)/2-1); }else if(firstSum>lastSum){ return getCounterfeitCoin(coins,first+(last-first)/2-1,last); }else{ Return( 3 ) } } } 问题内容:【问题一】(6 分) 根据题干说明,填充 C 代码中的空(1)-(3) 【问题二】(6 分) 根据题干说明和 C 代码,算法采用了( )设计策略。 函数 getCounterfeitCoin 的时间复杂度为( )(用 O 表示)。 【问题三】(3 分) ),最多的比较次数为 若输入的硬币数为 30,则最少的比较次数为( ( )。

2017年上半年 软件设计师 详细答案

2017年上半年 软件设计师 详细答案

2017年5月第1题CPU 执行算术运算或者逻辑运算时,常将源操作数和结果暂存在(1)中。

(1)A. 程序计数器 (PC) B. 累加器 (AC) C. 指令寄存器 (IR) D. 地址寄存器 (AR) 【答案】B【解析】程序计数器(PC)是用于存放下一条指令所在单元的地址的地方。

累加器(AC)全称累加寄存器,是一个通用寄存器。

其功能是,当运算器的算术逻辑单元(ALU)执行算术或逻辑运算时,为 ALU 提供一个工作区。

累加寄存器暂时存放 ALU 运算的结果信息。

指令寄存器(IR)用于存放当前从主存储器读出的正在执行的一条指令。

地址寄存器(AR)用来保存当前 CPU 所访问的内存单元的地址。

由于在内存和 CPU 之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。

2017年5月第2题要判断宇长为 16 位的整数 a 的低四位是否全为 0,则(2)。

(2)A.将 a 与 0x000F 进行"逻辑与"运算,然后判断运算结果是否等于 0B. 将 a 与 0x000F 进行"逻辑或"运算,然后判断运算结果是否等于 FC. 将 a 与 0x000F 进行"逻辑异或"运算,然后判断运算结果是否等于 OD. 将 a 与 0x000F 进行"逻辑与"运算,然后判断运算结果是否等于 F【答案】A【解析】判断是否为1, 让1和它做与运算,为1时为1,不为1时为02017年5月第3题计算机系统中常用的输入/输出控制方式有无条件传送、中断、程序查询和 DMA 方式等。

当采用(3)方式时,不需要 CPU 执行程序指令来传送数据。

(3)A.中断 B.程序查询 C.无条件传送 D.DMA 【答案】D【解析】DMA(直接存储器访问方式),DMA 将数据从一个地址空间复制到另外一个地址空间时,CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器来执行和完成。

2017年上半年软件水平考试(中级)信息系统管理工程师下午(应用

2017年上半年软件水平考试(中级)信息系统管理工程师下午(应用

2017年上半年软件水平考试(中级)信息系统管理工程师下午(应用技术)真题试卷(题后含答案及解析)题型有:1. 试题一 2. 试题二 3. 试题三 4. 试题四 5. 试题五试题一阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。

【说明】某婚庆公司为了便于开展和管理公司各项业务活动、方便用户,提高公司的知名度和影响力,拟构建一个基于网络的婚礼策划系统。

【需求分析】1.公司设有受理部、策划部和其他部门。

部门信息包括部门号、部门名、部门主管、联系方式。

每个部门只有一名主管,每个主管只负责一个部门的管理工作;一个部门有多名员工,每名员工只属于一个部门。

2.员工信息包括员工号、姓名、部门号、职位、联系方式和薪资;其中,职位包括主管、业务员、策划员等。

业务员负责受理用户申请,设置受理标志,并填写业务员的员工号。

一名业务员可以受理多个用户申请,但一个用户申请只能由一名业务员受理。

3.用户信息包括用户号、用户名、电话、联系地址。

其中,用户号唯一标识用户信息中的每一个元组。

4.用户申请信息包括申请号、婚礼日期、婚礼地点、用户号、预算费用、受理标志和业务员(参照员工关系的员工号)。

申请号唯一标识申请信息中的每一个元组,且一个用户可以提交多个申请,但一个用户申请只对应一个用户号。

5.策划部主管为已受理的用户申请制定婚礼策划任务。

策划任务包括申请号、策划内容、参与人数、要求完成时间、主管(参照员工关系的员工号),申请号唯一标识策划任务的每一个元组。

一个策划任务只对应一个已受理的用户申请,但一个策划任务可由多名策划员参与执行,且一名策划员可以参与执行多项策划任务。

【概念模型设计】根据需求阶段收集的信息,设计的实体联系图和关系模式(不完整)如下:【关系模式设计】部门(部门号,部门名称,主管,电话,邮箱号) 员工(员工号,姓名,(a) ,职位,联系方式,薪资) 用户(用户号,用户名,联系电话,联系地址) 用户申请(申请号,婚礼日期,婚礼地点,用户号,(b) ,受理标志,(c) ) 策划任务( (d) ,策划内容,参与人数,要求完成时间,主管) 执行(申请号,策划员,实际完成时间)1.根据题意,将关系模式中的空(a)~(d)的属性补充完整,并填入答题纸对应的位置上。

2017年上半年 软件设计师 详细答案

2017年上半年 软件设计师 详细答案

‘’2017年5月第1题CPU 执行算术运算或者逻辑运算时,常将源操作数和结果暂存在(1)中。

(1)A. 程序计数器 (PC) B. 累加器 (AC) C. 指令寄存器 (IR) D. 地址寄存器 (AR) 【答案】B【解析】程序计数器(PC)是用于存放下一条指令所在单元的地址的地方。

累加器(AC)全称累加寄存器,是一个通用寄存器。

其功能是,当运算器的算术逻辑单元(ALU)执行算术或逻辑运算时,为 ALU 提供一个工作区。

累加寄存器暂时存放 ALU 运算的结果信息。

指令寄存器(IR)用于存放当前从主存储器读出的正在执行的一条指令。

地址寄存器(AR)用来保存当前 CPU 所访问的内存单元的地址。

由于在内存和 CPU 之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。

2017年5月第2题要判断宇长为 16 位的整数 a 的低四位是否全为 0,则(2)。

(2)A.将 a 与 0x000F 进行"逻辑与"运算,然后判断运算结果是否等于 0B. 将 a 与 0x000F 进行"逻辑或"运算,然后判断运算结果是否等于 FC. 将 a 与 0x000F 进行"逻辑异或"运算,然后判断运算结果是否等于 OD. 将 a 与 0x000F 进行"逻辑与"运算,然后判断运算结果是否等于 F【答案】A【解析】判断是否为1,让1和它做与运算,为1时为1,不为1时为02017年5月第3题计算机系统中常用的输入/输出控制方式有无条件传送、中断、程序查询和 DMA 方式等。

当采用(3)方式时,不需要 CPU 执行程序指令来传送数据。

(3)A.中断 B.程序查询 C.无条件传送 D.DMA 【答案】D【解析】DMA(直接存储器访问方式),DMA 将数据从一个地址空间复制到另外一个地址空间时,CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器来执行和完成。

2017年上半年软件设计师下午案例分析真题(试题六)

2017年上半年软件设计师下午案例分析真题(试题六)

2017年上半年软件设计师下午案例分析真题(试题六)6、阅读下列说明和Java代码,将应填入(n) 处的字句写在答题纸的对应栏内。

【说明】某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种类可能不同,但其制作过程相同。

前台服务员(Waiter) 调度厨师制作套餐。

现采用生成器(Builder) 模式实现制作过程,得到如图6-1 所示的类图。

【Java代码】class Pizza {private String parts;public void setParts(String parts) { this.parts = parts; }public String toString() { return this.parts; }}abstract class PizzaBuilder {protected Pizza pizza;public Pizza getPizza() { return pizza; }public void createNewPizza() { pizza = new Pizza(); }public (1) ;}class HawaiianPizzaBuilder extends PizzaBuilder {public void buildParts() { pizza.setParts("cross + mild + ham&pineapp1e”};}class SpicyPizzaBuilder extends PizzaBuilder {public void buildParts() { pizza.setParts("pan baked + hot + pepperoni&salami"); } }class Waiter {private PizzaBuilder pizzaBuilder;public void setPizzaBuilder(PizzaBuilder pizzaBuilder) { /*设置构建器*/ ( 2 ) ;}public Pizza getPizza(){ return pizzaBuilder.getPizza(); }public void construct() { /*构建*/pizzaBuilder.createNewPizza();( 3 ) ;}}Class FastFoodOrdering {public static viod mainSting[]args) {Waiter waiter = new Waiter();PizzaBuilder hawaiian_pizzabuilder = new HawaiianPizzaBuilder();( 4 ) ;( 5 ) ;System.out.println("pizza: " + waiter.getPizza());}}程序的输出结果为:Pizza:cross + mild + ham&pineapple。

2017年上半年程序员考试真题及答案解析

2017年上半年程序员考试真题及答案解析

全国计算机技术与软件专业技术资格(水平)考试2017年上半年程序员上午试卷(考试时间9 : 00 〜11 : 30 共150分钟)1. 在答题卡的指定位置上正确写入你的姓名和准考证号,并用正规2B铅笔在你写入的准考证号下填涂准考证号。

2. 本试卷的试题中共有75个空格,需要全部解答,每个空格1分,满分75分。

3. 每个空格对应一个序号,有A、B、C、D四个选项,请选择一个最恰当的选项作为解答,在答题卡相应序号下填涂该选项。

4. 解答前务必阅读例题和答题卡上的例题填涂样式及填涂注意事项。

解答时用正规2B铅笔正确填涂选项,如需修改,请用橡皮擦干净,否则会导致不能正确评分。

例题• 2017年上半年全国计算机技术与软件专业技术资格(水平)考试日期是(88)月(89)日。

(88) A. 3 B. 4 C. 5 D. 6(89) A. 20 B. 21 C. 22 D. 23因为考试日期是“ 5月20日”,故(88)选C,(89)选A,应在答题卡序号88下对C填涂,在序号89下对A填涂(参看答题卡)•在Win dows资源管理中,如果选中的某个文件,再按Delete 键可以将该文件删除,但需要时还能将该文件恢复。

若用户同时按下 Delete 和(1)组合键时,则可以删除此文件且无法从“回收站”恢复。

•计算机软件有系统软件和应用软件,下列(2)属于应用软件。

(2)A.Li nux B.U nixC.Wi ndows7D.l nternetExplorer•某公司2016年10月员工工资表如下所示。

若要计算员工的实发工资, 可先在J3单元格中输入(3),再向垂直方向拖动填充柄至Jl 2单元格,则可 自动算出这些 员工的实发工资。

若要将缺勤和全勤的人数统计分别显示在 B13和D13单元格中,则可B13和D13中分别填写(4))(3) A.=SUM(D$3: F$3)-(H$3 : I$3) B.=SUM(D$3 F$3)+(H$3 :I$3)C.=SUM(D3 F3)-SUM(H3 I3)D.SUM(D3 F3)+SUM(H3 I3)(4) A.=COUNT(E3 E12, >=0)和=COUNT(E3:E12,=300)B. =COUNT(E3:E12, “》=0” 和 COUNT(E3:E12, “ =300”C. =COUNTIF(E3:E12,>=0和 COUNTIF(E3 E12, =300)D. =COUNTIF(E3 E12, “ =0”)和 COUNTIF(E3:E12, “ =300” )⑴A.CtrlB.ShiftC.AltD.Alt 和 Ctrl“工■woroisocoo4 JOO ooCO300000 400MW) DO杓独00代如00J 400 A0 37'0 OO 1IOOOO150 OT2WQOO JU100M1JOC.OOW50.0G'* i1(^0 00 1950,00” I -- i ™*mow瞰 OO"WIN 期 •WCM)•统一资源地址(URL) /index.html 中的http 和index.html 分别表示(5)。

最新2017年上半年全国计算机软考软件设计师真题解析(上午选择+下午案例)完整版

最新2017年上半年全国计算机软考软件设计师真题解析(上午选择+下午案例)完整版

本题考查计算机组成原理中的高速缓存基础知识。高速缓存 Cache 有如下特点: 它位于 CPU 和主存之间,由硬件实现;容量小,一般在几 KB 到几 MB 之间;速 度一般比主存快 5 到 10 倍,由快速半导体存储器制成;其内容是主存内容的副 本(所以 Cache 无法扩大主存的容量) ,对程序员来说是透明的;Cache 既可存 放程序又可存放数据。 Cache 存储器用来存放主存的部分拷贝(副本) 。控制部分的功能是:判断 CPU 要访问的信息是否在 Cache 存储器中,若在即为命中,若不在则没有命中。命中 时直接对 Cache 存储器寻址。未命中时,若是读取操作,则从主存中读取数据, 并按照确定的替换原则把该数据写入 Cache 存储器中:若是写入操作,则将数据 写入主存即可。 7 、HTTPS 使用()协议对报文进行封装 A. SSH B. SSL C. SHA-1 D. SET 答案: B HTTPS 以保密为目标研发,简单讲是 HTTP 的安全版。其安全基础是 SSL 协议, 全称 Hypertext Transfer Protocol over Secure Socket Layer。 它是一个 URI scheme, 句法类同 http:体系。它使用了 HTTP,但 HTTPS 存在不同于 HTTP 的默认端口及 一个加密/身份验证层(在 HTTP 与 TCP 之间) 。这个协议的最初研发由网景公司 进行, 提供了身份验证与加密通讯方法,现在它被广泛用于互联网上安全敏感的 通讯,例如交易支付方面。 SSL 极难窃听,对中间人攻击提供一定的合理保护。 严格学术表述 HTTPS 是两个协议的结合,即传输层 SSL+应用层 HTTP。 8、以下加密算法中适合对大量的明文消息进行加密传输的是( ) A. RSA B. SHA-1 C. MD5 D. RC5 答案: D 本题考查的是信息安全中的加密算法。其中:RSA 是非对称加密算法;SHA-1 与 MD5 属于信息摘要算法;RC-5 属于非对称加密算法。这些算法中 SHA-1 与 MD5 是不能用来加密数据的, 而 RSA 由于效率问题, 一般不直接用于大量的明文加密, 适合明文加密的,也就只有 RC-5 了。 9、假定用户 A、B 分别在 I1 和 I2 两个 CA 处取得了各自的证书, 下面()是 A、 B 互信的必要条件。 A. A、B 互换私钥 B. A、B 互换公钥 C. I1、I2 互换私钥 D. I1、I2 互换公钥 答案: D 本题考查的是信息安全中的 CA 认证。题目难度较高,但用排除法来分析不难得

2017年上半年软件水平考试(中级)多媒体应用设计师下午(应用技

2017年上半年软件水平考试(中级)多媒体应用设计师下午(应用技

2017年上半年软件水平考试(中级)多媒体应用设计师下午(应用技术)真题试卷(题后含答案及解析)题型有:1. 试题一 2. 试题二 3. 试题三 4. 试题四试题一(15分)计算机只能处理数字化的图像。

分辨率、像素深度和色彩类型等均是数字化图像的重要参数。

1.1.简述图像分辨率的含义;2.简述显示分辨率的含义;3.简述像素分辨率的含义。

正确答案:1.图像分辨率是组成一幅图像的像素数目。

图像分辨率越高,像素越多。

2.显示分辨率是指显示屏上能够显示出的像素数目。

3.像素分辨率是指一个像素的宽和高之比。

解析:分辨率是位图图像的重要参数,常见的分辨率有图像分辨率、显示分辨率和像素分辨率3种。

图像分辨率是组成一幅图像的像素数目,是一幅图像的像素密度的度量方法。

对于同样大小的一幅图,组成该图的图像像素数目越多,则说明图像的分辨率越高,看起来就越逼真。

显示分辨率是屏幕上能够显示出的像素数目。

屏幕能够显示的像素越多,说明显示设备的分辨率越高,显示图像的质量也越高。

像素分辨率是指一个像素的宽和长之比。

在像素分辨率不同的计算机间传播图像时会产生图像变形。

2.已知有一幅8×6英寸的彩色图像,如果采用图像扫描仪将其转化为数字图像,扫描参数设置为150DPI。

1.给出DPI的英文全称,并写出其中文含义;2.请说明经扫描所得到的图像分辨率为多少像素,以a×b格式表示;3.若将该扫描得到的图像在显示分辨率为1920×1280的显示屏上进行100%显示,能否完整显示?请给出该图像显示区域占屏幕区域的比例。

正确答案:1.DPI(Dots Per Inch),每英寸多少个点。

2.1200×900 3.可以完整显示。

该图像所占屏幕比例为(1200×900)/(1920×1280),约44%解析:在用扫描仪扫描彩色图像时,通常需要指定图像的分辨率,即DPI(Dots Per Inch),用每英寸多少个点表示。

中级软件设计师2017上半年下午试题及答案解析

中级软件设计师2017上半年下午试题及答案解析

试题一(15 分)阅读下列说明和图,回答问题 1 至问题4.某医疗器械公司作为复杂医疗产品的集成商,必须保持高质量部件的及时供应。

为了实现这一目标,该公司欲开发一采购系统。

系统的主要功能如下:1。

检查库存水平。

采购部门每天检查部件库存量,当特定部件的库存量降至其订货点时,返回低存量部件及库存量。

2。

下达采购订单。

采购部门针对低存量部件及库存量提交采购请求,向其供应商(通过供应商文件访问供应商数据)下达采购订单,并存储于采购订单文件中。

3。

交运部件.当供应商提交提单并交运部件时,运输和接收(S/R)部门通过执行以下三步过程接收货物:(1)验证装运部件。

通过访问采购订单并将其与提单进行比较来验证装运的部件,并将提单信息发给S/R 职员。

如果收货部件项目出现在采购订单和提单上,则已验证的提单和收货部件项目将被送去检验。

否则,将S/R 职员提交的装运错误信息生成装运错误通知发送给供应商。

(2)检验部件质量。

通过访问质量标准来检查装运部件的质量,并将己验证的提单发给检验员.如果部件满足所有质量标准,则将其添加到接受的部件列表用于更新部件库存。

如果部件未通过检查,则将检验员创建的缺陷装运信息生成缺陷装运通知发送给供应商。

(3)更新部件库存。

库管员根据收到的接受的部件列表添加本次采购数量,与原有库存量累加来更新库存部件中的库存量.标记订单采购完成.现采用结构化方法对该采购系统进行分析与设计,获得如图1-1 所示的上下文数据流图和图1—2 所示的0 层数据流图。

1-1 上下文数据流图1-2 0层数据流图1使用说明中的词语,给出图1—1中的实体E1~E5(5分)2使用说明中的词语,给出图1-2中的数据存储D1~D4的名称。

(4分)3根据说明和图中术语,补充图1-2中缺失的数据流及其起点和终点。

(4分)4用200 字以内文字,说明建模图1—1 和图1-2 时如何保持数据流图(2分)试题二(15)1至问题3,将解答填入答题纸的对应栏内。

2017年11月全国计算机技术与软件专业技术资格(水平)考试《软件评测师(中级)》下午考试真题及详解

2017年11月全国计算机技术与软件专业技术资格(水平)考试《软件评测师(中级)》下午考试真题及详解

2017年11月全国计算机技术与软件专业技术资格(水平)考试《软件评测师(中级)》下午考试真题及详解试题一(15分)阅读下列C程序,回答问题1至问题3,将解答填入答题纸的对应栏内。

【C程序】Int DoString(char *string){char *argv[100];int argc=1;while(1) { //1while(*string&&*string!='-')//2,3string++;//4if(!*string) //5break; //6argv[argc]=string;while(*string&&*string!="&&*string!='\n'&&*string!='\t')//7,8,9,10string++; //11argc++;//12}return 0; //13}【问题1】(3分)请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。

【问题2】(8分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。

【问题3】(4分)请给出问题2中控制流图的线性无关路径。

【答案】【问题1】*string&&* String!='-'T/F!*StringT/F*string&&*String!=''&&*String!='\n'&&*String!='\t'T/F 【问题2】控制流图如图1所示。

图1环路复杂度V(g)=8。

【问题3】线性无关路径:(1)1—2—5—6—13(2)1—2—3—5—6—13(3)1—2—3—4—2—5—6—13(4)1—2—5—7—12—1(5)1—2—5—7—8—12—1(6)1—2—5—7—8—9—12—1(7)1—2—5—7—8—9—10—12—1(8)1—2—5—7—8—9—10—11—7—12—1【解析】【问题1】判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次“真”值和“假”值,从而使程序的每一个分支至少都通过一次。

上半年软件设计师下午真题及答案

上半年软件设计师下午真题及答案

上半年软件设计师下午真题及答案集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)2019上半年软件设计师下午真题及答案试题一(共15分)阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。

【说明】某学校欲开发一学生跟踪系统,以便更自动化、更全面地对学生在校情况(到课情况和健康状态等)进行管理和追踪,使家长能及时了解子女的到课情况和健康状态,并在有健康问题时及时与医护机构对接。

该系统的主要功能是:(1)采集学生状态。

通过学生卡传感器,采集学生心率、体温(摄氏度)等健康指标及其所在位置等信息并记录。

每张学生卡有唯一的标识(ID)与一个学生对应。

(2)健康状态告警。

在学生健康状态出问题时,系统向班主任、家长和医护机构健康服务系统发出健康状态警告,由医护机构健康服务系统通知相关医生进行处理。

(3)到课检查。

综合比对学生状态、课表以及所处校园场所之间的信息对学生到课情况进行判定。

对旷课学生,向其家长和班主任发送旷课警告。

(4)汇总在校情况。

定期汇总在校情况,并将报告发送给家长和班主任。

(5)家长注册。

家长注册使用该系统,指定自己子女,存入家长信息,待审核。

(6)基础信息管理。

学校管理人员对学生及其所用学生卡和班主任、课表(班级、上课时间及场所等)、校园场所(名称和所在位置区域)等基础信息进行管理;对家长注册申请进行审核,更新家长状态,将家长ID加入学生信息记录中使家长与其子女进行关联,向家长发送注册结果。

一个学生至少有一个家长,可以有多个家长。

课表信息包括班级、班主任、时间和位置等。

现采用结构化方法对学生跟踪系统进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。

【问题1】(5分)使用说明中的词语,给出图1-1中的实体E1?E5的名称。

【问题2】(4分)使用说明中的词语,给出图1-2中的数据存储D1?D4的名称。

【问题3】(3分)根据说明和图中术语,补充图1-2中缺失的数据流及其起点和终点(三条即可)。

2017年上半年程序员考试下午真题(完整版)

2017年上半年程序员考试下午真题(完整版)

问题内容:【函数】 int isLegal (char*ipaddr) ﹛ int flag; int curVal; 的一个十进制数
//curVal 表示分析出
全职师资直播+录播双保障 1v1全程辅导
希赛网() 400-111-9811
int decNum=0,dotNum=0;
CustomerFactory ( 7 ) ; Customer customer1 = cf.getCustomer( "Rob" ); Customer customer2 = cf.getCustomer( "Bob" ); Customer customer3 = cf.getCustomer( "Julie" ); Customer customer4 = cf.getCustomer( "Laura" ); System.out.println( "Customers" ); System.out.println( customer1.getName() ); System.out.println( customer2.getName() ); System.out.println( customer3.getName() ); System.out.println( customer4.getName() ); } public static void main (String[] args){
QNode*p; p=(QNode*)malloc(sizeof(QNode)); if(!p)
return ERROR; p->data=new_elem;
if(Q->rear)﹛ p->next=Q->rear->next; ( 1 );
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

试题一(15 分)阅读下列说明和图,回答问题1 至问题4。

某医疗器械公司作为复杂医疗产品的集成商,必须保持高质量部件的及时供应。

为了实现这一目标,该公司欲开发一采购系统。

系统的主要功能如下:1.检查库存水平。

采购部门每天检查部件库存量,当特定部件的库存量降至其订货点时,返回低存量部件及库存量。

2.下达采购订单。

采购部门针对低存量部件及库存量提交采购请求,向其供应商(通过供应商文件访问供应商数据)下达采购订单,并存储于采购订单文件中。

3. 交运部件。

当供应商提交提单并交运部件时,运输和接收(S/R)部门通过执行以下三步过程接收货物:(1)验证装运部件。

通过访问采购订单并将其与提单进行比较来验证装运的部件,并将提单信息发给S/R 职员。

如果收货部件项目出现在采购订单和提单上,则已验证的提单和收货部件项目将被送去检验。

否则,将S/R 职员提交的装运错误信息生成装运错误通知发送给供应商。

(2) 检验部件质量。

通过访问质量标准来检查装运部件的质量,并将己验证的提单发给检验员。

如果部件满足所有质量标准,则将其添加到接受的部件列表用于更新部件库存。

如果部件未通过检查,则将检验员创建的缺陷装运信息生成缺陷装运通知发送给供应商。

(3)更新部件库存。

库管员根据收到的接受的部件列表添加本次采购数量,与原有库存量累加来更新库存部件中的库存量。

标记订单采购完成。

现采用结构化方法对该采购系统进行分析与设计,获得如图1-1 所示的上下文数据流图和图1-2 所示的0 层数据流图。

页脚内容11-1 上下文数据流图1-2 0层数据流图页脚内容21使用说明中的词语,给出图1-1中的实体E1~E5(5分)2使用说明中的词语,给出图1-2中的数据存储D1~D4的名称。

(4分)3根据说明和图中术语,补充图1-2中缺失的数据流及其起点和终点。

(4分)4用200 字以内文字,说明建模图1-1 和图1-2 时如何保持数据流图(2分)试题二(15)1至问题3,将解答填入答题纸的对应栏内。

某房屋租赁公司拟开发一个管理系统用于管理其持有的房屋、租客及员工信息。

请根据下述需求描述完成系统的数据库设计。

【需求描述】1、公司拥有多幢公寓楼,每幢公寓楼有唯一的楼编号和地址。

每幢公寓楼中有(不同公寓楼内的公寓号可相同)。

系统需记录每套公寓的卧室数和卫生间数。

2、员工和租客在系统中有唯一的编号(员工编号和租客编号)。

3、对于每个租客,系统需记录姓名、多个联系电话、一个银行账号(方便自动扣房租)、一个紧急联系人的姓名及联系电话。

4、系统需记录每个员工的姓名、一个联系电话和月工资。

员工类别可以是经理或维修工,也可兼任。

每个经理可以管理多幢公寓楼。

每幢公寓楼必须由一个经理管理。

系统需记录每个维修工的业务技能,比如:水暖维修,电工,木工等。

5、租客租赁公寓必须和公司签订租赁合同。

一份租赁合同通常由一个或多个租客(合租)与该公寓楼的经理签订,一个租客也可租赁多套公寓。

合同内容应包含签订日期,开始时间,租期,押金页脚内容3和月租金。

【概念模型设计】根据需求阶段收集的信息,设计的实体联系图(不完整)如图2-1所示。

【逻辑结构设计】根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整):联系电话(电话号码,租客编号)租客(租客编号,姓名,银行账户,联系人姓名,联系人电话)员工(员工编号,姓名,联系电话,类别,月工资,(a))公寓楼((b),地址,经理编号)公寓(楼编号,公寓号,卧室数,卫生间数)合同(合同编号,租客编号,楼编号,公寓号,经理编号,签订日期,起始日期,(c),押金)页脚内容41补充图2-1中的“签约”联系所关联的实体及联系类型。

(4.5分)2补充逻辑结构设计中的(a)、(b)、(c)三处空缺。

(4.5分)3在租期内,公寓内设施如出现问题,租客可在系统中进行故障登记,填写故障描述,每项故障由系统自动生成唯一的故障编号,由公司派维修工进行故障维修,系统需记录每次维修的维修日期和维修内容。

根据此需求,对图2-1进行补充,并将所补充的ER图内容转换为一个关系模式,请给出该关系模式。

试题三(15分)1至问题3,将解答填入答题纸的对应栏内。

某玩具公司正在开发一套电动玩具在线销售系统,用于向注册会员提供端到端的玩具定制和销售服务。

在系统设计阶段,"创建新订单(New Order)" 的设计用例详细描述如表3-1 所示,候选设计类分类如表3-2 所示,并根据该用例设计出部分类图如图3-1所示。

表3-1 创建新订单(NewOrder) 设计用例页脚内容5页脚内容63-2 候选设计类分类页脚内容7Entity,负责持久化数据的存储)(c)在订单处理的过程中,会员可以点击“取消订单"取消该订单。

如果支付失败,该订单将被标记为挂起状态,可后续重新支付,如果挂起超时30分钟未支付,系统将自动取消该订单。

订单支付成功后,系统判断订单类型:(1)对于常规订单,标记为备货状态,订单信息发送到货运部,完成打包后交付;快递发货(2)对于定制订单,会自动进入定制状态,定制完成后交付快递发货。

会员在系统中点击”收货"按钮变为收货状态,结束整个订单的处理流程。

根据订单处理过程所设计的状态图如图3-2所示。

页脚内容81根据表3-1中所标记的候选设计类,请按照其类别将编号C1~C12分别填入3-2中的(a)、(b)和(c)处。

(6分)2根据创建新订单的用例描述,请给出图3-1中X1~X4处对应类的名称。

(4分)3根据订单处理过程的描述,在图3-2中S1~S5处分别填入对应的状态名称。

(5分)试题四:C代码,回答问题1 至问题3,将解答写在答题纸的对应栏内。

假币问题n枚硬币,其中有一枚是假币,己知假币的重量较轻。

现现只有一个天平,要求用尽量少的比较次数找出这枚假币。

【分析问题】将n 枚硬币分成相等的两部分:(1)当n 为偶数时,将前后两部分,即1...n/2 和n/2+1... n,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币:(2)当n 为奇数时,将前后两部分,即1..(n -1)/2 和(n+1)/2+1...n,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币:若两端重量相等,则中间的硬币,页脚内容9即第(n+1)/2 枚硬币是假币。

【C代码】下面是算法的C 语言实现,其中:coins[]: 硬币数组first,last:当前考虑的硬币数组中的第一个和最后一个下标#include <stdio.h>int getCounterfeitCoin(int coins[],int first,int last){int firstSum = 0,lastSum = 0;int i;if(first==last-1) { /*只剩两枚硬币*/if(coins[first] < coins[last])return first;return last;}if((last - first + 1) % 2 =0){ /*偶数枚硬币*/for(i = first;i < ( 1) ; i++){页脚内容10firstSum+= coins[i];}for(i=first + (last-first) / 2 + 1;i < last +1;i++){lastSum += coins[i];}if(( 2 ) ){Return getCounterfeitCoin(coins,first,first+(last-first)/2;) }else{Return getCounterfeitCoin(coins,first+(last-first)/2+1,last;)}}else{ /*奇数枚硬币*/for(i=first;i<first+(last-first)/2;i++){firstSum+=coins[i];}for(i=first+(last-first)/2+1;i<last+1;i++){lastSum+=coins[i];页脚内容11}if(firstSum<lastSum){return getCounterfeitCoin(coins,first,first+(last-first)/2-1);}else if(firstSum>lastSum){return getCounterfeitCoin(coins,first+(last-first)/2-1,last);}else{return ( 3 )}}}1根据题干说明,填充C代码中的空(1)-(3)2根据题干说明和C代码,算法采用了()设计策略。

函数getCounterfeitCoin的时间复杂度为()(用O表示)。

3若输入的硬币数为30,则最少的比较次数为(),最多的比较次数为()。

试题五(共15 分) (请从试题五、试题六中选答一题)阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。

页脚内容12某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种类可能不同,但其制作过程相同。

前台服务员(Waiter)调度厨师制作套餐。

现采用生成器(Builder) 模式实现制作过程,得到如图5-1 所示的类图。

图5-1 l类图【C++代码】#include<iostream>#include <string>using namespace std;class Pizza {private: string parts;public:void setParts(string parts) { this->parts=parts; }string getParts() { return parts; }页脚内容13};class PizzaBuilder {protected:Pizza* pizza;public:Pizza* getPizza() { retum pizza; }void createNewPizza() { pizza = new Pizza(); }( 1 );}class HawaiianPizzaBuilder :public PizzaBuilder {public:void buildParts() {pizza->setParts("cross +mild + ham&pineapple");}}class SpicyPizzaBuider: public PizzaBuilder {public:void buildParts() {页脚内容14pizza->setParts("pan baked +hot + ham&pineapple");}}Class Waiter{Private:PizzaBuilder* pizzaBuilder;public:void setPizzaBuilder(PizzaBuilder* pizzaBuilder) { /*设置构建器*/ ( 2 )}Pizza* getPizza() { return pizzaBuilder->getPizza(); }void construct() { /*构建*/pizzaBuilder->createNewPizza();( 3 )}};int main(){页脚内容15Waiter*waiter=new Waiter();PizzaBuilder*hawaiian pizzabuilder=newHawaiianPizzaBuilder()( 4 );( 5 );cout<< "pizza: "<< waiter->getPizza()->getParts()<< endl;}程序的输出结果为:pizza: cross + mild + ham&pineapple试题六(共15 分)阅读下列说明和Java 代码,将应填入(n) 处的字句写在答题纸的对应栏内。

相关文档
最新文档