软件设计师下午考试科目为案例分析,考试题型为主观题,4道必答题,2道(5、6题)选答题,考试时长2个半小时,共75分。为帮助广大软考中级软件设计师考生更好备考,信管网特整理汇总了软件设计师部分真题、答案及解析供考生查阅,并提供免费在线模拟答题、历年真题免费下载等服务,了解软件设计师更多备考信息请关注信管网。
相关推荐:
免费练习:软件设计师考试题库(模拟试题、章节练习、每日一练)
阅读以下说明和c代码,将应填入 (n) 处。
[说明]
在一公文处理系统中,开发者定义了一个公文结构officedoc,其中定义了公文应该具有的属性(字段)。当公文的内容或状态发生变化时,与之相关联的docexplorer结构的值都需要发生改变。一个officedoc结构能够关联一组docexplorer结构。当officedoc结构的内容或状态发生变化时,所有与之相关联的docexplorer结构都将被更新,这种应用被称为观察者模式。以下代码采用c语言实现,能够正确编译通过。
[c代码]
#include
#define obs_maxnum 20 /*一个officedoc变量最多能够关联的*/
/*doeexplorer变量的个数*/
typedef void( (1) )(struct officedoc*,street docexplorer*);
struct docexplorer{
func update;/* docexplorer结构采用的更新函数*/
/*其他的结构字段省略*/
};
struct officedoc{
(2) myobs[obs_maxnum];
/*存储所有与officedoc相关联的doeexplorer结构指针*/
int index;/*与officedoc结构变量相关联的docexplorer结构变量的个数*/
};
void attach(struet officedoc *doc, struet docexplorer *ob){
/*关联obersver结构ob与officedoe结构doc*/
int loop=0;
if(doc->index >=obs_maxnum || ob==null) return;
for(loop=0; loop index; loop++)
if(doc->myobs[loop]==ob)return;
doc->myobs[doe->index]=ob;
doc->index++;
)
void detach(struct officedoc *doc, struct docexplorer *ob){
/*解除doc结构与ob结构间的关系*/
int loop;
if(ob==null)return;
for(loop=0; loop index; loop6++){
if(doc->myobs[loop]==ob){
if(loop<=doc->index-2)
doe->myobs[loop]=doc->myobs[ (3) ];
doc->myobs[doe->indox-1]=null;
doe->index--;
break;
}
}
}
void updatel(struct officedoc *doc,struct docexplorer *ob){
/*更新ob结构的值,更新代码省略*/
}
void update2(stmct officedoc *doc, struct docexplorer *ob){
/*更新ob结构的值,更新代码省略*/
}
void notifyobs(struet officedoc *doc){
/*当doc结构的值发生变化时,通知与之关联的所有docexplorer结构变量*/
int loop;
for(loop=0; loop index; loop++){
(doc->myobs[loop])->update( (4) );
}
}
void main(){
stmct officedoc doc;/*定义一officedoc变量*/
struct docexplorer explorer1, explorer2;/*定义两个docexplorer变量*/
/*初始化与officedoc变量相关的docexplorer变量个数为0*/
doc.index=0;
explorer1.update=update1;/*设置explorer1变量的更新函数*/
explorer2.update=update2;/*设置explorer2变量的更新函数*/
attaeh(&doc,&explorer1);/*关联explorer1与doc对象*/
attach(&doc,&explorer2);/*关联explorer2与doc对象*/
/*其他代码省略*/
(5) ;/*通知与officedoc相关的所有docexplorer变量*/
return;
}
信管网参考答案:
(1) *func
(2) struct DocExplorer*
(3) doc->index-1,或等价形式
(4) doc和doc->myObs[loop],或等价形式
(5) notifyObs(&doc)
温馨提示:因考试政策、内容不断变化与调整,信管网网站提供的以上信息仅供参考,如有异议,请以权威部门公布的内容为准!
信管网致力于为广大信管从业人员、爱好者、大学生提供专业、高质量的课程和服务,解决其考试证书、技能提升和就业的需求。
信管网软考课程由信管网依托10年专业软考教研倾力打造,官方教材参编作者和资深讲师坐镇,通过深研历年考试出题规律与考试大纲,深挖核心知识与高频考点,为学员考试保驾护航。面授、直播&录播,多种班型灵活学习,满足不同学员考证需求,降低课程学习难度,使学习效果事半功倍。
发表评论 查看完整评论 | |