精编版上半年软件设计师考试真题及答案下午卷文档格式.docx
- 文档编号:17282228
- 上传时间:2022-11-30
- 格式:DOCX
- 页数:22
- 大小:137.39KB
精编版上半年软件设计师考试真题及答案下午卷文档格式.docx
《精编版上半年软件设计师考试真题及答案下午卷文档格式.docx》由会员分享,可在线阅读,更多相关《精编版上半年软件设计师考试真题及答案下午卷文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
缺少对应右括号:
第5行,第4列;
第4行,第1列
在算法2-1中,stack为一整数栈。
算法中各函数的说明如表4-1所示。
[算法2-1]
将栈stack置空,置EOF为False
ch←nextch();
while(notEOF.
k←kind(ch);
if(k==
(1)
)
push(
(2)
);
push(
(3)
elself(k==
(4)
if(notempty())
pop(),pop(),
else
显示错误信息(缺少对应左括号或右括号);
显示行号row;
显示列号col;
endif
ch←nextch();
endwhile
if(notempty())
显示错误信息(缺少对应左括号或右括号);
while(notempty())
row←pop();
col←pop();
显示行号row;
显示列号col
cndwhile
为了识别更多种类的括号,对算法2-1加以改进后得到算法2-2。
算法2-2能够识别圆括号,方括号和花括号(不同类型的括号不能互相匹配)。
改进后,函数kinnd(charch)的参数及其对应的返回值如表4-2所示。
表4-2
函数的参数及其返回值
[算法2-2]
if(k>0)
if(
判断条件1
(5)
(6)
(7)
elseif(
判断条件2
and
判断条件3
pop();
ch←nexteh();
endif
5、[问题1]
试将[算法2-1)和[算法2-2]中
(1)~(7)处补充完整。
[问题2]
从下面的选项中选择相应的判断逻辑填补[算法2-2]中的“判断条件1”至“判断条件3”。
注意,若“判断条件2”的逻辑判断结果为假,就无需对“判断条件3”进行判断。
(a)字符是括号(b)字符是左括号(c)字符是右括号(d)栈空(e)栈不空
(f)栈顶元素表示的是与当前字符匹配的左括号
(g)栈顶元素表示的是与当前字符匹配的右括号
试题三
阅读下列说明以及图4-4和图4-5,回答问题1、问题2和问题3,将解答填入答题纸的对应栏内。
某电话公司决定开发一个管理所有客户信息的交互式网络系统。
系统的功能如下。
1.浏览客户信息:
任何使用因特网的用户都可以浏览电话公司所有的客户信息(包括姓名、住址、电话号码等)。
2.登录:
电话公司授予每个客户一个账号。
拥有授权账号的客户,可以使用系统提供的页面设置个人密码,并使用该账号和密码向系统注册。
3.修改个人信息:
客户向系统注册后,可以发送电子邮件或者使用系统提供的页面,对个人信息进行修改。
4.删除客户信息:
只有公司的管理人员才能删除不再接受公司服务的客户的信息。
系统采用面向对象方法进行开发,在开发过程中确定的类如表4-3所示。
表4-3
开发过程中确定的类
[图4-4]
[图4-5]
6、[问题1]
在需求分析阶段,采用UML的用例图(usecasediagram)描述系统功能需求,如图4-4所示。
指出图中的A,B,C和D分别是哪个用例?
7、[问题2]
在UML中,重复度(multiplicity)定义了某个类的一个实例可以与另一个类的多个实例相关联。
通常把它写成一个表示取值范围的表达式或者一个具体的值。
例如,图4-5中的类InternetClient和CustomerList,InternetClient端的“0...*”表示:
1个CustomerList的实例可以与0个或多个InternetClient的实例相关联;
CustomerList端的“1”表示:
1个InternetClient的实例只能与1个CustomerList的实例相关。
指出图4-5中
(1)~(4)处的重复度分别为多少?
8、[问题3]
类通常不会单独存在,因此当对系统建模时,不仅要识别出类,还必须对类之间的相互关系建模。
在面向对象建模中,提供了4种关系:
依赖(dependency)、概括(generalization)、关联(association)和聚集(aggregation)。
分别说明这4种关系的含义,并说明关联和聚集之间的主要区别。
试题四
9、[程序4]
START
PRUGBC
LD
GR0,DATA
LEA
GR1,0
GR3,48
LOOP1
CPL
GR0,WDT,GR1
JP2
LOOP2
ST
GR3,BTASC,GR1
GR1,1,GR1
GR2,-4,GR1
JN2
LOOP1
LOOP2
LEA
GR2,48
LOOP3
JMI
NEXT
GR2,1,GR2
JMP
LOOP3
NEXT
JNZ
LOOP2
LAST
;
处理个位数
EXIT
C48
DC
48
WDT
10000
1000
DC
100
10
BTASC
DS
5
DATA
#FA59H
END
试题五
10、[函数5]
intDeleteNode(Bitree*r,inte){
Bitreep=*r,pp,s,c;
while(
){/*从树根结点出发查找键值为e的结点*/
pp=p;
if(e<p->data) p=p->Lchild;
elsep=p->Rchild
}
if(!
p)return-1;
/*查找失败*/
if(p->Lchild&
&
p->Rchild){/*处理情况③*/
s=
pp=p;
){pp=s;
s=s->Rchild;
}
p->dara=s->data;
P=s;
/*处理情况①、②*/
if(
)c=p->Lchild;
elsec=p->Rchild
if(p==*r)
*r=c;
elseif(
)pp->Lchild=c;
elsepp->Rchild=c;
free(p);
return0;
试题六
11、[程序6]
#include<ioStream.h>
template<classT>classArray;
template<classT>classArrayBody{
friend
T*tpBody;
intiRows,iCurrentRow;
ArrayBOdy(intiRsz,intiCsz){
tpBody=
iRows=iRsz,iColumns=iCsz;
iCurrentRow=-1;
public:
T&
operator[](intj){
boolrow_error,column_error;
row_error=column_error=false;
try{
if(iCurrentRow<0||iCurrentRow≥iRows)
row_error=;
if(j<0||j≥iColumns
column_error=;
if(row_error==true||column_error==true)
eatch(char){
if(rowerror==true)
cerr<<“行下标越界[“<<iCurrentRow<<”]”;
if(columnerror==true)
cerr<<“列下标越界[“<<j<<”]”;
cout<<“\n”;
returntpBody[iCurrentRow*iColumns+j];
~ArrayBody(){delere[]tpBody;
};
template<classT>classArray{
ArrayBody<T>tBody;
public:
ArrayBody<T>&
operator[](inti){
returntBody;
};
voidmain()
{
Array<int>a1(10,20);
Array<double>a2(3,5);
intb1;
doubleb2;
b1=a1[-5][10];
/*有越界提示:
行下标越界[-5]*/
b1=a1[10][15];
行下标越界[10]*/
b1=a1[1][4];
/*没有越界提示*/
b2=a2[2][6];
列下标越界[6]*/
b2=a2[10][20];
行下标越界[10]列下标越界[20]*/
b2=a2[1][4];
答案:
1、A:
传感器;
B:
报警器
试题1[分析]
本题是一道分层数据流图的题目。
解答此类问题最关键的一点就是要细心,把题目看清,不要丢掉任何一个条件。
另外解题有一定的技巧,从一些常规的入口作为突破口,会事半功倍。
现在就利用分层数据流图的数据流的平衡原则(即父图和子图(加工图)的一致性)来解题。
子图是其父图中某一部分内部的细节图(加工图)。
它们的输入输出数据流应该保持一致。
如同看到地上有只蚂蚁有6条细细的腿,中间是一个小黑点,要看得更清楚一些就拿放大镜看。
这时能看到它的头、触角、身体和比较粗的腿,但是看到的一定还是6条腿,不是7条,也不是3条。
子图也是如此,在上一级中有几个数据流,它的子图也一定有同样的数据流,而且它们的输送方向是一致的(也就是说原图有3条进的数据流,2条出的数据流,子图同样也是)。
用这条原则可以轻松地解决问题3。
在0层图中,“4监控传感器”模块有1条输入数据流——“传感器状态”和3条输出数据流——“电话拨号”、“传感器数据”和“告警类型”。
在加工4的细化图中,仅看到了输出数据流“告警类型”,所以知道此加工图少了“传感器状态”、“电话拨号”、“传感器数据”这3条数据流。
加工4的结构非常清晰,所以只需把这3条数据流对号入座即可,“电话拨号”应是“4.5拨号”的输出数据流;
“传感器状态”应是作为“4.4读传感器”处理的输入数据流;
“传感器数据”应该是经“4.1显示格式”处理过的数据流,所以作为“4.1显示格式”的输出数据流。
[问题1]
此题和以往试题有所不同。
以往都给定了完整正确的顶层图。
现在顶层图不完整,可以通过题目说明信息以及顶层图来分析顶层图并解答问题。
题目中提到了“房主可以在安装该系统时配置安全监控设备(如传感器,显示器,报警器等)”在顶层图中这3个名词都没有出现,但仔细观察,可以看出“电视机”实际上就是“显示器”。
因为它接收TV信号并输出。
再看其他的几个实体都和“传感器”“报警器”没有关联。
又因为A中输出“传感器状态”到“住宅安全系统”所以A应填“传感器”。
B接收“告警类型”,所以应填“报警器”。
2、密码处理;
4.监控传感器;
5.显示信息和状态
首先,毫无疑问“4监控传感器”用到了配置信息文件,这点可以在加工4的细化图中看出。
接着,观察。
层图,“3密码处理”这个处理是用于检验密码的,且它只有1个输出数据流“检验ID信息”到“显示信息和状态”,没有反馈回来的数据流,所以“检验ID信息”是已经验证通过的用户的信息,用户输入密码应是在“3密码处理”这个环节中进行验证的(因为如果密码验证是在“5显示信息和状态”中进行的,那么从“5显示信息和状态”应有1条不合法用户的数据流反馈到“密码处理”)。
所以“密码处理”一定要用到配置信息文件中的用户名和密码。
同时由于输出到“5显示信息和状态”的数据流是“检验ID信息”,所以“5显示信息和状态”也用到了配置信息文件。
3、 4、物理数据流图关注的是系统中的物理实体,以及一些具体的文档、报告和其他输入输出硬拷贝。
物理数据流图用作系统构造和实现的技术性蓝图。
逻辑数据流图强调参与者所做的事情,可以帮助设计者决定需要哪些系统资源;
为了运行系统用户必须执行的活动;
在系统安装之后如何保护和控制这些系统等。
在逻辑数据流图中说明应该具有哪些加工和数据存储,而不关心这些加工和数据存储是如何实现的;
物理数据流图则要说明加工和数据存储是如何实现的。
5、1
(2)col
(3)row
(4)2
(5)col
(6)row
(7)k
判断条件1:
(b)
判断条件2:
(e)
判断条件3:
(f)
[解析]
本程序的功能是检查文本文件中的圆括号是否匹配。
从提示信息中,可以看出程序不但可以检查出是否有括号匹配错误,而且还知道具体错在哪个括号。
由于括号匹配的规则是把最近的左右括号配成一对,所以括号匹配最常用的方法是遇到左括号则入栈,遇到右括号就出栈,出栈的友括号与当前的右括号是匹配的。
此算法也不例外。
下面具体分析算法:
首先,把栈置空,置EOF为False,并从文件中读取第一个字符到ch。
然后进入循环,循环体执行一次处理一个ch。
进入循环,利用kind函数算出ch的类型k,接下来就是一大堆的空了,这个算法本身并不长,但空有这么多,而且比较集中,为解题增加了一定的难度。
这里虽然空多,但基本结构却很明显,大致流程如下:
当k等于什么的时候把什么入栈,当k等于什么的时候且栈不为空的时候出栈,如栈为空打印错误信息,如果都不是则读文件下一个字符再次进入循环。
再结合上面提到的算法,可以知道,入栈应是在类型k为1(即ch为左括号时),出栈应是在类型k为2(即ch为右括号时)。
所以
(1)空应填1,(4)空应填2。
(2)和(3)到底是把什么压入栈了呢?
在(4)下面出栈时,并没有用到栈的内容。
在此有些考生理所当然地认为栈中的内容没有什么用,随便压个ch进去了,而且2个都是写的ch。
其实从逻辑上就可以推翻这种解答,如果是压的同样的数据,又是在同一位置出栈,算法大可只用个push,pop就可以了。
这时继续往后面看,来寻找正确的答案。
当看到“row<-pop();
col<-pop();
”时,所有的疑惑可迎刃而解了,应该把row和col压入堆栈!
那么row和col谁先谁后呢?
由于是先弹出row后弹出col,按栈的后进先出的规则,可知先压入栈的是col,再压入row。
所以
(2)空填写col,(3)空填写row。
完成[算法2-1]的分析后,分析[算法2-2]就比较轻松了。
(5)(6)(7)空的答案可直接到后面找到,因为后面有“pop();
row<-pop();
”所以(5)空应填col,(6)空应填row。
因为判断条件1为真时要人栈,所以判断条件1应是判断字符是否是左括号,如果是就入栈。
所以判断条件1选b。
判断条件2和3是联系在一起的,当判断条件2和3都为真时,要进行出栈操作,因此要判断栈是否为空。
由此可以得出判断条件2和3中,有一个是用来判断栈是否为空的。
备选答案的一些选项给了一些提示,就是用判断栈顶元素,来确定当前括号是否和栈中压人括号是同一类型的。
但前提是左括号类型入了栈,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精编 上半年 软件 设计师 考试 答案 下午