软件工程测试题1

1.单选题(共5题)

1.在方法的public、protected、package、private 4个不同级别可见性表示中,用于表示protected的是( )4分

 A.+

 B.~

 C.#

 D.-

正确答案:C

2.某些程序设计语言中,在运行过程中当一个对象发送消息请求服务时,根据接收对象的具体情况将请求的操作与实现的方法进行连接,称为 ( )4分

 A.静态绑定

 B.通用绑定

 C.动态绑定

 D.过载绑定

正确答案:C

3.继承是父类和子类之间共享数据和方法的机制。关于图中doIt()方法的叙述中,正确的是(    )


 A.doIt()必须由Thing3实现,同时可能由Thing4实现。

 B.doIt()必须由Thing5实现

 C.doIt()必须由Thing2、Thing3、Thing4、Thing5实现

 D.doIt()已经由Thing1实现,因为无需其它类实

正确答案: A

得分: 4

题目解析: 继承是父类和子类之间共享数据和方法的机制。这是类之间的一种关系,在定义和实现一个类(子类)的时候,可以在一个已经存在的类(父类)的基础上进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。一个父类可以有多个子类,这些子类都是父类的特例,父类描述了这些子类的共有属性和操作。一个子类可以继承它的父类(或祖先类)中的属性和操作,这些属性和操作在子类中不必定义,子类中还可以定义自己的属性和操作。所以D选项错误。

题中的Thingl为接口,那么dolt()为接口中的抽象方法,必须由实现它的类去实现该方法。因此在Thing3中必须实现,而Thing4也是Thing1的子类,但不是直接子类,所以可能由Thlng4实现。

4.在面向对象的系统中,对象是运行时实体,其组成部分不包括(1);一个类定义了一组大体相似的对象,这些对象共享(2)。

 A.1 消息 2 属性和行为

 B.1 行为(操作) 2 属性和状态

 C.1 对象名 2 对象名和状态

 D.1 状态 2 行为和多重

正确答案: A

5.一个类是(1)在定义类时,将属性声明为private的目的是()。

 A.1 一组对象的封装 2 实现属性值对类的所有对象共享

 B.1 表示一组对象的层次关系 2 操作符重载;

 C.1 一组对象的实例 2 实现属性值不可更改

 D.1 -组对象的抽象定义 2 实现数据隐藏,以免意外更改

正确答案: D

2.判断题(共5题)

1.接口与类不同,它不描述任何结构(因此不包含任何属性),也不描述任何实现。

正确

错误

正确答案: yes

2.在设计类图时,可以不用对类图中的每个关联进行命名,但如果需要命名的话,最好用一个“动词”给关联命名。

正确

错误

正确答案: yes

3.在画类图的时候必须将全部的属性和方法都画出来。

正确

错误

正确答案: no

4.类的名称是不可省略的,其他部分,如属性和方法可以根据类图的使用目的而省略。

正确

错误

正确答案: yes

5.在画类图时,属性或操作如果是public的,可以用“+”表示,protected用“#”表示,private 用“-”表示。

正确

错误

正确答案: yes

3.填空题(共14题)

1.对于场景:一个公司负责多个项目,每个项目(Project)由一个员工(Employee) 团队(Team)来开发。下列UML概念图中,(____) 最适合描述这一场景。


正确答案: [[B] [D]]

2.在UML中,对类进行分组时使用(____) ,它是UML中的主要结构,是一种对模型元素进行成组组织的通用机制。

正确答案: [[包]]

3.(____) 是对一组具有相同属性、操作、关系和语义的对象的描述。

正确答案: [[类]]

4.Liskov替换原则指任何基类出现的地方都应该可以无差别的使用(____) 替换。

正确答案: [[子类]]

题目解析: Liskov替换原则指任何基类出现的地方都应该可以无差别的使用子类替换。

5.利用类图的相关知识,实现动物与环境之间的关系建模,功能要求如下:动物与空气和水之间的关系。动物与鸟之间的继承关系。鸟与翅膀的关系。鸟与大雁、啄木鸟及企鹅之间的关系。雁群与大雁的关系。企鹅与气候之间的关系。下图中(1)是 (____) 关系,(2)是(____) 关系,(3)是(____) 关系,(4)是(____) 关系,(5)是(____) 关系。


正确答案: [[继承], [泛化], [组合], [聚合], [依赖 关联]]

6.接口隔离原则:使用多个专门的接口,而不是使用单一的接口,即客户端不应该依赖哪些它不需要的(____) 。如下图不好的,类B不需要接口中的方法4和5。


正确答案: [[接口]]

7.一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。(____)

正确答案: [[扩展]]

题目解析: 一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。

8.高层模块不应该依赖低层模块,二者都应该依赖其(____) ;抽象不应该依赖细节;细节应该依赖抽象。

正确答案: [[抽象]]

题目解析: 高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。

9.从软件的角度看,程序通常包含的是(____) 的集合以及类所定义的行为,而实际创建信息和管理信息的是遵守类的规则的对象。

正确答案: [[类]]

10.构建面向对象模型的基础是类、(____) 以及它们之间的关系。

正确答案: [[对象]]

11.方法的参数列表中如果没有参数,则参数列表可以省略,但(____) 还需要保留。

正确答案: [[空括号]]:

题目解析: 方法的参数列表中如果没有参数,则参数列表可以省略,但空括号还需要保留。

12.客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在(____) 的接口上。

正确答案: [[最小]]

题目解析: 客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。

13.对象是(____) 的实例,对象图也可看作是类图的实例

正确答案: [[类]]

14.抽象化是开闭原则的关键。在Java、C#等编程语言中,可以为系统定义一个相对稳定的(____) ,而将不同的实现行为移至具体的实现层中完成。

正确答案: [[抽象层]]

题目解析: 抽象化是开闭原则的关键。在Java、C#等编程语言中,可以为系统定义一个相对稳定的抽象层,而将不同的实现行为移至具体的实现层中完成。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。