好文档 - 专业文书写作范文服务资料分享网站

2015下半年软件设计师考试真题及答案

天下 分享 时间: 加入收藏 我要投稿 点赞

比生成子类更加灵活。适用于在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;处理那些可以撤销的职责;当不能采用生成子类的方式进行扩充时。工厂方法(Factory Method)定义一个用于创建对象的接口,让子类决定将哪-个类实例化,使一个类的实例化延迟到其子类。适用于当一个类不知道它所必须创建的对象的类的时候;当一个类希望由它的子类来指定它所创建的对象的时候;当类将创建对象的职责委托给多个帮助子类中的某一个,并且希望将哪一个帮助子类是代理者这一信息局部化的时候。观察者(Observer)模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。适用于当一个抽象模型有两个方面,其中一个方面依赖于另一个方面,将这两者封装在独立的对象中以使它们可以各自独立地改变和复用;当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变时;当一个对象必须通知其他对象,而它又不能假定其他对象是谁,即不希望这些对象是紧耦合的。中介者(Mediator)用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。适用于一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解;一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象;想定制一个分布在多个类中的行为,而又不想生成太多的子类。欲使一个后端数据模型能够被多个前端用户界面连接,采用中介者模式最合适。

【答案46】: 答案:A 【解析】

本题考查设计模式的基本概念。每种设计模式都有特定的意图,描述一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心,使该方案能够重用而不必做重复劳动。组合(Composite)模式将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。适用于想表示对象的部分-整体层次结构;希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。外观(Facade)模式为子系统中的一组接口提供一个一致的界面,Fapde模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。适用于要为一个复杂子系统提供一个简单接口时,子系统往往因为不断演化而变得越来越复杂;客户程序与抽象类的实现部分之间存在着很大的依赖

46

性;当需要构建一个层次结构的子系统时,使用Fapde模式定义子系统中每层的入口点。享元(Flyweight)模式运用共享技术有效地支持大量细粒度的对象。适用于一个应用程序使用了大量的对象;完全由于使用大量的对象,造成很大的存储开销;对象的大多数状态都可变为外部状态;如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象应用程序不依赖于对象标识。装饰器(Decorator)模式描述了以透明围栏来支持修饰的类和对象的关系,动态地给一个对象添加一些额外的职责,从增加功能的角度来看,装饰器模式相比生成子类更加灵活。适用于在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;处理那些可以撤销的职责;当不能采用生成子类的方式进行扩充时。工厂方法(Factory Method)定义一个用于创建对象的接口,让子类决定将哪-个类实例化,使一个类的实例化延迟到其子类。适用于当一个类不知道它所必须创建的对象的类的时候;当一个类希望由它的子类来指定它所创建的对象的时候;当类将创建对象的职责委托给多个帮助子类中的某一个,并且希望将哪一个帮助子类是代理者这一信息局部化的时候。观察者(Observer)模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。适用于当一个抽象模型有两个方面,其中一个方面依赖于另一个方面,将这两者封装在独立的对象中以使它们可以各自独立地改变和复用;当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变时;当一个对象必须通知其他对象,而它又不能假定其他对象是谁,即不希望这些对象是紧耦合的。中介者(Mediator)用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。适用于一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解;一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象;想定制一个分布在多个类中的行为,而又不想生成太多的子类。欲使一个后端数据模型能够被多个前端用户界面连接,采用中介者模式最合适。

【答案47】: 答案:D 【解析】

本题考查设计模式的基本概念。每种设计模式都有特定的意图,描述一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心,使该方案能够重用而不必做重复劳动。组合

47

(Composite)模式将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。适用于想表示对象的部分-整体层次结构;希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。外观(Facade)模式为子系统中的一组接口提供一个一致的界面,Fapde模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。适用于要为一个复杂子系统提供一个简单接口时,子系统往往因为不断演化而变得越来越复杂;客户程序与抽象类的实现部分之间存在着很大的依赖性;当需要构建一个层次结构的子系统时,使用Fapde模式定义子系统中每层的入口点。享元(Flyweight)模式运用共享技术有效地支持大量细粒度的对象。适用于一个应用程序使用了大量的对象;完全由于使用大量的对象,造成很大的存储开销;对象的大多数状态都可变为外部状态;如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象应用程序不依赖于对象标识。装饰器(Decorator)模式描述了以透明围栏来支持修饰的类和对象的关系,动态地给一个对象添加一些额外的职责,从增加功能的角度来看,装饰器模式相比生成子类更加灵活。适用于在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;处理那些可以撤销的职责;当不能采用生成子类的方式进行扩充时。工厂方法(Factory Method)定义一个用于创建对象的接口,让子类决定将哪-个类实例化,使一个类的实例化延迟到其子类。适用于当一个类不知道它所必须创建的对象的类的时候;当一个类希望由它的子类来指定它所创建的对象的时候;当类将创建对象的职责委托给多个帮助子类中的某一个,并且希望将哪一个帮助子类是代理者这一信息局部化的时候。观察者(Observer)模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。适用于当一个抽象模型有两个方面,其中一个方面依赖于另一个方面,将这两者封装在独立的对象中以使它们可以各自独立地改变和复用;当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变时;当一个对象必须通知其他对象,而它又不能假定其他对象是谁,即不希望这些对象是紧耦合的。中介者(Mediator)用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。适用于一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解;一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象;想定制一个分布在多个类中的行为,而又不想生成太多的子类。欲使一个后端数据模型能够被多个前端用户界面连接,采用中介者模式最合适。

48

【答案48】: 答案:C 【解析】

本题考查程序语目基础知识。程序已经开始运行,说明编译时无错误,因此不是语法错误和词法错误,编译时发现的语义错误称为静态的语义错误。运行时陷入死循环属于动态语义错误。

【答案49】: 答案:D 【解析】

本题考查程序语言基础知识。若存在一条从初态到某一终止状态的路径,且这条路径上所有弧的标记符连接成的字符串等于ω,则称ω可由NFA识别(接受或读出)。对于题中给出的NFA,其初态为q0,q0上的自回路表示识别零个或多个1,接下来识别出一个0时进入状态q1,q1上的自回路表示识别零个或多个0,接下来识别出1个1之后再回到q0。例如,该自动机可识别空串(因为q0既是初态,也是终态)、01、00001、101、1、11、111、1111等。01的识别路径为q0->q1->q000001的识别路径为q0->q1->q1->q1->q1->q0101的识别路径为q0->q0->q->q1->q01的识别路径为q0->q011的识别路径为q0->q0->q0111的识别路径为q0->q0->q0->q01111的识别路径为q0->q0->q0->q0->q0识別字符串时必须从初始状态q0出发,并回到状态q0,因此对于仅由1构成的任意长度的串,在识别过程中不会离开q0。当识别出一个0而离开q0后就进入q1,此后的字符若全部为0,则会一直在q1,直到识别出一个1而回到q0,因此除了空串,该NFA识别的字符串必须以1结尾。

【答案50】: 答案:A 【解析】

本题考查程序语言基础知识。若函数调用时采用传值方式,则是将实参的值传给形参,再执行被调用的函数,对形参的修改不影响实参。若采用传引用方式,则是将实参的地址传递给

49

形参,本质上是通过间接访问的方式修改实参,也可以简化理解为在被调用函数中对形参的修改等同于是对实参进行修改。当函数t和f运行时,其每个形参和局部变量都有各自的存储单元,下面图中矩形框表示存储单元。如题中所述,调用t时传递给其形参x的值为5。因此函数t被调用而执行时,在执行函数调用f(x,a)之前,其形参x和局部变量a的值如下图(a)所示。执行函数调用f(x,a)时,t中x的值传给f的形参r、a的地址传给f的形

参s,如下图(b)所示。在f执

行时,其局部变量x的值由运算“X=2*s+1”改为33,其中运算时可理解为s提供了t的局部变量a的值(是由间接访问机制实现的)。接下来的运算为“S=x+r”,也就是将x的值(即33)与r的值(即5)相加得到38,然后(通过间接访问)存入t的局部变量a,结果如下图(c)、(d)所示。之后运算“r=x-1”将r的值改为32,结果如下图(e)所示。

当函数

f运行结束并返回函数t后,函数f的运行空间将由系统撤销,接下来运算“a-x”产生的值为33(即38-5),因此函数t的返回值为33。 【答案51】: 答案:B 【解析】

本题考查数据库的基本概念。数据库通常采用三级模式结构,其中,视图对应外模式、基本

50

2015下半年软件设计师考试真题及答案

比生成子类更加灵活。适用于在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;处理那些可以撤销的职责;当不能采用生成子类的方式进行扩充时。工厂方法(FactoryMethod)定义一个用于创建对象的接口,让子类决定将哪-个类实例化,使一个类的实例化延迟到其子类。适用于当一个类不知道它所必须创建的对象的类的时候;当一个类希望由它的子类来指定它所创建的对象的时候;当类将创建对象的职
推荐度:
点击下载文档文档为doc格式
0nefo7173m28mwx1483k6i8ss1c8w101bjm
领取福利

微信扫码领取福利

微信扫码分享