首页 > 软考
题目内容 (请给出正确答案)
[主观题]

绘图题:用SA方法画出下列问题的顶层和0层数据流图。某运动会管理系统接受来自运动员的报名单、裁判

的比赛项目及项目成绩,产生运动员号码单发送给运动员,项目参加者发送给裁判,单项名次、团体名次发送给发布台。该系统有两部分功能:(1)登记报名单:接受报名单、比赛项目,产生运动员号码单、项目参加者,形成运动员名单及团体成绩表两种数据存储。(2)统计成绩:接受项目成绩,查询运动员名单,产生单项名次,填写团体成绩,最后产生团体名次。

答案
收藏

如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“绘图题:用SA方法画出下列问题的顶层和0层数据流图。某运动会…”相关的问题
第1题
设哈希表的地址范围为0~17,哈希函数为:H(key)=key%16。用线性探测法处理冲突,输入关键字序列:(1
设哈希表的地址范围为0~17,哈希函数为:H(key)=key%16。用线性探测法处理冲突,输入关键字序列:(1

0,24,32,17,31,30,46,47,40,63,49),构造哈希表,试回答下列问题:

①画出哈希表的示意图;

②若查找关键字63,需要依次与哪些关键字进行比较?

③若查找关键字60,需要依次与哪些关键字比较?

④假定每个关键字的查找概率相等,求查找成功时的平均查找长度。

点击查看答案
第2题
绘图时,轮廓线是用粗实线画出,中心线则用虚线画出。()
点击查看答案
第3题
阅读下列说明,回答问题1至问题3。 【说明】 以下代码由C语言书写,在输入3个整数后,能够输出最大数和

阅读下列说明,回答问题1至问题3。

【说明】

以下代码由C语言书写,在输入3个整数后,能够输出最大数和最小数。

int main(void)

{

int a, b, c, max, min;

printf("input three numbers: ");

scanf("%d%d%d", &a, &b, &c);

if(a>b) /*判断1*/

{

max=a;

min=b;

}

else

{

max=b;

min=a;

}

if(max<c) /*判断2*/

max=c;

else if(min>c) /*判断3*/

min=c;

printf("max=%d\nmin=%d", max, min);

return 0;

}

请画出该程序段的控制流图,并分析该控制流图中有多少条线性独立路径(V(G)的值)。

为了用分支(判定)覆盖方法测试该程序,需要设计测试用例,使其能对该程序中的每个判断语句的各种分支情况全部进行过测试。

对两组输入数据(1)a=3,b=5,c=7;(2)a=4,b=6,c=5,请分别写出程序中各个判断语句的执行结果(以T表示真,以F表示假),填入答题纸的相应栏中。

上述两组测试数据是否能实现该程序的分支(判定)覆盖?如果能,请说明理由。如果不能,请再增设一组输入数据,使其能实现分支(判定)覆盖。

请帮忙给出每个问题的正确答案和分析,谢谢!

点击查看答案
第4题
阅读下列说明和C代码,回答问题 1 至问题 3,将解答写在答题纸的对应栏内。 【说明】 假币问题:有n
枚硬币,其中有一枚是假币,己知假币的重量较轻。现只有一个天平,要求用尽量少的比较次数找出这枚假币。 【分析问题】 将n枚硬币分成相等的两部分: (1)当n为偶数时,将前后两部分,即 1...n/2和n/2+1...0,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币: (2)当n为奇数时,将前后两部分,即1..(n -1)/2和(n+1)/2+1...0,放在天平的两端,较轻的一端里有假币,继续在较轻的这部分硬币中用同样的方法找出假币;若两端重量相等,则中间的硬币,即第 (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 ì; 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++){ firstSum+= 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]; } 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 ) } } }

【问题一】 根据题干说明,填充C代码中的空(1)-(3) 【问题二】 根据题干说明和C代码,算法采用了()设计策略。 函数getCounterfeitCoin的时间复杂度为()(用O表示)。 【问题三】 若输入的硬币数为30,则最少的比较次数为(),最多的比较次数为()。

点击查看答案
第5题
阅读下列说明,回答问题1至问题3,将解答填入的对应栏内。[说明] 场景法是黑盒测试中重要的测试用例

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

[说明]

场景法是黑盒测试中重要的测试用例设计方法。目前多数软件系统都是用事件触发来控制业务流程,事件触发时的情景便形成了场景,场景的不同触发顺序构成用例。场景法通过场景描述业务流程(包括基本流(基本流程)和备选流(分支流程)),设计用例遍历软件系统功能,验证其正确性。

下面是对网上银行支付交易系统的基本流和备选流的描述:

基本流A:

备选流:

注:假定输入的银行卡号是正确的:不考虑备选流内循环情况。

使用场景法设计测试用例,指出所涉及到的基本流和备选流。基本流用字母A表示,备选流用题干中描述对应编号表示。

请针对问题1设计的测试用例,依次将银行卡号、初次输入密码、最终输入密码、卡内余额、银行卡可支付额度等信息填入下述测试用例表中。表中行代表各个测试甩例,列代表测试用例的输入值,用V表示有效数据元素,I表示无效数据元素,n/a表示不适用,例如C01表示“成功支付”用例。

测试用例表

在上述系统中,假设银行卡号只能输入0~9的数字,请参考下表,给出用边界值法检查卡号字符合法性的关键测试数据(字符或ASCⅡ值)。

请帮忙给出每个问题的正确答案和分析,谢谢!

点击查看答案
第6题
阅读下列说明,回答问题1至问题3,将解答填入的对应栏内。[说明] 场景法是黑盒测试中重要的测试用例

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

[说明]

场景法是黑盒测试中重要的测试用例设计方法。目前多数软件系统都是用事件触发来控制业务流程,事件触发时的情景便形成了场景,场景的不同触发顺序构成用例。场景法通过场景描述业务流程(包括基本流(基本流程)和备选流(分支流程)),设计用例遍历软件系统功能,验证其正确性。

下面是对网上银行支付交易系统的基本流和备选流的描述:

基本流A:

备选流:

注:假定输入的银行卡号是正确的:不考虑备选流内循环情况。

使用场景法设计测试用例,指出所涉及到的基本流和备选流。基本流用字母A表示,备选流用题干中描述对应编号表示。

请针对问题1设计的测试用例,依次将银行卡号、初次输入密码、最终输入密码、卡内余额、银行卡可支付额度等信息填入下述测试用例表中。表中行代表各个测试甩例,列代表测试用例的输入值,用V表示有效数据元素,I表示无效数据元素,n/a表示不适用,例如C01表示“成功支付”用例。

测试用例表

在上述系统中,假设银行卡号只能输入0~9的数字,请参考下表,给出用边界值法检查卡号字符合法性的关键测试数据(字符或ASCⅡ值)。

请帮忙给出每个问题的正确答案和分析,谢谢!

点击查看答案
第7题
●试题一 阅读下列说明和数据流图,回答问题1~问题3。 【说明】 某考务处理系统主要功能是考生管理

●试题一

阅读下列说明和数据流图,回答问题1~问题3。

【说明】

某考务处理系统主要功能是考生管理和成绩管理:

1.对考生送来的报名表进行检查。

2.对合格的报名表编好准考证号码后将准考证送给考生,将汇总后的考生名单送给阅卷站。

3.对阅卷站送来的成绩表进行检查,并根据考试中心指定的合格标准审定合格者。

4.填写考生通知单(内容包含该考生的准考证号、姓名、各课程成绩及最终合格/不合格标志),送给考生。

5.根据考生信息及考试成绩,按地区、年龄、文化程度和职业进行成绩分类统计及试题难度分析,产生统计分析表。

考务处理系统的顶层图如图1所示,第0层图如图2所示,加工2子图如图3所示。

【数据流图】

图1顶层图

图2 0层图

图3加工2子图

【问题1】

指出哪张图的哪些文件可以不必画出。

【问题2】

数据流图1-3中缺少3条数据流,请直接在图中添加。

【问题3】

根据系统功能和数据流图填充下列数据字典条目中的 (1) 和 (2) :

试题得分表=准考证号+{课程名+成绩}

考生名册=报名号+准考证号+姓名+通信地址+出生年份+文化程度+职业

考生通知单= (1)

报名表= (2)

点击查看答案
第8题
阅读下列说明和数据流图,回答问题1至问题3,将解答填入对应栏内。 [说明] 某供销系统接受顾客的订

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

[说明]

某供销系统接受顾客的订货单,当库存中某配件的数量小于订购量或库存量低于一定数量时,向供应商发出采货单;当某配件的库存量大于或等于订购量时,或者收到供应商的送货单时并更新了库存后,向顾客发出提货单。该系统还可随时向总经理提供销售和库存情况表。

以下是经分析得到的数据流图及部分数据字典,有些地方有待填充,假定顶层数据流图是正确的。图1-1是顶层数据流图,图1-2是第0层数据流图,图1-3是第1层数据流图,其中(A)是加工1的子图,(B)是加工2的子图。

[图1-1]

[图1-2]

[图1-3]

[数据字典]

(1)数据流条目

订货单=配件号+配件名+规格+数量+顾客名+地址

提货单=订货单+金额

采货单=配件号+配件名+规格+数量+供应商名+地址

送货单=配件号+配件名+规格+数量+金额

(2)文件说明

文件名:配件库存

组成:{配件号+配件名+规格+数量+允许的最低库存量}

根据题意,图1-2中哪个文件可不必画出。

点击查看答案
第9题
阅读以下说明和流程图,回答问题1至问题3,将答案写在对应栏内。【说明】 下面给出的是某高级公寓管理

阅读以下说明和流程图,回答问题1至问题3,将答案写在对应栏内。

【说明】

下面给出的是某高级公寓管理系统的一套分层数据流图。其功能描述如下所述。

(1)系统随时根据住户送来的入住单更新住户基本信息文件。

(2)每月初系统根据物业管理委员会提供的月附加费(清洁费、保安费等)表和房租调整表,计算每家住户的月租费(包括月附加费),向住户发出交费通知单。住户交费时,系统输入交费凭证,核对后输出数据给住户。

(3)系统定期向物业管理委员会提供住房分配表和交费情况表。

(4)住户因分户或换房,在更新账户基本信息文件的同时,系统应立即对这些住户做月租费计算,以了结分尸或换房前的房租。

假定题中提供的顶层图是正确的,请回答下列问题。

指出哪张图中的哪些文件可不必画出。

点击查看答案
第10题
题9.10图所示电路为一波形转换电路,输入信号为矩形波,设电容的初始电压为零,试计算t=0、10s、20
s时uo1和u0的值,并画出uo1和u0的波形。

点击查看答案
第11题
试题四(共15分)阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。【说明】模式匹

试题四(共15分)

阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。

【说明】

模式匹配是指给定主串t和子串s,在主串t中寻找子串s的过程,其中s称为模式。

如果匹配成功,返回s在t中的位置,否则返回-1 。

KMP算法用next数组对匹配过程进行了优化。KMP算法的伪代码描述如下:

1.在串t和串s中,分别设比较的起始下标i=J=O

2.如果串t和串s都还有字符,则循环执行下列操作:

(1)如果j=-l或者t[i]-s[j],则将i和j分别加1,继续比较t和s的下一个字符;

(2)否则,将j向右滑动到next[j]的位置,即j =next[J]

3.如果s中所有字符均已比较完毕,则返回匹配的起始位置(从1开始);否则返回一1.

其中,next数组根据子串s求解。求解next数组的代码已由get_next函数给出。

【C代码】

(1)常量和变量说明

t,s:长度为悯铂Is的字符串

next:next数组,长度为Is

(2)C程序

include <stdio.h>

nclude <stdliB.h>

include <string.h>

/*求next【】的值*/

void get_next(int *next, char *s, int Is) {

int i=0,j=-1;

next[0]=-1;/*初始化next[0]*/

while(i< ils){/*还有字符*/

if(j=-1l ls[i]=s[j]){/*匹配*/

j++;

i++;

if(s[i]一s[jl)

next [i]- next[j];

else

Next[i]=j;

}

else

J= next[j];

}

}

int kmp(int *next, char *t ,char *s, int.lt, int Is )

{

inti= 0,j =0 ;

while (i<lt && (1 ) {

if(j=-1 II 2_) {

i++ ;

j ++ ;

} else

(3) :

}

if (j>= ls)

Retum (4)

else .

retum-1;

【问题1】(8分)

根据题干说明,填充C代码中的空(1)~(4).

【问题2】(2分)

根据题干说明和C代码,分析出kmp算法的时间复杂度为 (5)(主串和子的长度分别为It和Is,用O符号表示)。

【问题3】(5分)

根据C代码,字符串“BBABBCAC”的next数组元素值为 (6) (直接写素值,之间用逗号隔开)。若主串为“AABBCBBABBCACCD”,子串为“BBABBCAC则函数Kmp的返回值是 (7)

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改