1.GoF将Java的设计模式总体分为了()
A. 创建型模式
B. 结构型模式
C. 行为型模式
D. 互动型模式
我的答案:A,B,C
2.【单选】
模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的( )
A. 内聚性和耦合性
B. 局部化和封装化
C. 抽象和信息隐藏
D. 逐步求精和结构图
我的答案:A
3.【单选】
初始化模块和结束模块,从块内联系看,被称为()
A. 过程内聚
B. 功能内聚
C. 时间内聚
D. 偶然内聚
我的答案:C
4.【单选】
在软件设计中,把一个时期内必须解决的问题按照优先级排序,从而确保每个问题都将被解决,且每个问题都将在适当的时候被解决,它属于软件设计的哪种方法( )
A. 模块化
B. 抽象
C. 逐步求精
D. 信息隐藏
我的答案:C
5.【单选】
面向对象设计中的()意图在不暴露内部数据结构的前提下,向外部对象提供遍历聚合元素的统一方法
A. 单例模式
B. 适配器模式
C. 迭代器模式
D. 观察者模式
我的答案:C
6.【单选】
数据耦合、公共耦合、标记耦合、控制耦合的耦合性从低到高的顺序是
A. 数据、公共、无耦合、控制
B. 无耦合、数据、控制、公共
C. 控制、数据、无耦合、公共
D. 控制、数据、公共、无耦合
我的答案:B
7.【单选】
针对接口设计的说法不正确的是()
A. 接口需要标注访问路径
B. 接口都必须有输入参数
C. 接口都有名称
D. 接口都有功能
我的答案:B
8.【单选】
“当目标数据源不是调用者所期望的类型,不能通过重新构造数据源和调用者代码的方式解决该问题”,此时应采用
A. 享元模式
B. 适配器模式
C. 单例模式
D. 迭代器模式
我的答案:B
9.【单选】
为了提高模块的独立性,模块内部最好是( )
A. 逻辑内聚
B. 时间内聚
C. 功能内聚
D. 通信内聚
我的答案:C
10.【单选】
( )不是良好编码的习惯
A. 在开始编码之前建立单元测试计划
B. 少使用break,continue等程序流程重定向关键词
C. 确保注释与代码逻辑一致
D. 保持变量名缩写和简短以便代码紧凑
我的答案:D
11.【单选】
针对面向对象设计原则,说法错误的是()
A. 单一职责原则指一个类只允许定义一个方法
B. 遵循开/闭原则能够提高代码的稳定性
C. 接口行为分组一般按业务类型划分
D. 遵循依赖倒置原则的代码增加了测试的难度
我的答案:A
12.【单选】
在进行模块设计时,由于A、B、C三个模块的规模非常小,因此把它们合并成一个模块D,则D模块的内聚类型为()
A. 过程内聚
B. 功能内聚
C. 时间内聚
D. 偶然内聚
我的答案:D
13.【多选】
使用软件设计模式时,不正确的做法有
A. 遇到代码设计问题时,都应使用设计模式进行解决
B. 不同的设计模式具有不同的代码优点,有的设计模式没有代码缺点
C. 某种软件设计模式只能在代码设计中使用一次
D. 软件设计模式没有编程语言类型的限制
我的答案:A,B,C,D
14.【单选】
提高程序可读性的有力手段是( )
A. 选好一种程序设计语言
B. 显式说明一切变量
C. 使用三种标准控制语句
D. 给程序增加适当的注释
我的答案:D
15.【单选】
程序的三种基本控制结构是
A. 过程、子程序和分程序
B. 顺序、选择和循环
C. 递归、迭代和回溯
D. 调用、返回和转移
我的答案:B
16.【单选】
“一个模块或类应该只实现一个或一种类型的业务职责”是面向对象设计的
A. 单一职责原则
B. 开闭原则
C. 里氏替换原则
D. 接口隔离原则
我的答案:A
17.【单选】
在软件设计阶段应提供的文档是()
A. 软件需求规格说明书
B. 概要设计规格说明书和详细设计规格说明书
C. 数据字典及流程图
D. 源程序以及源程序的说明书
我的答案:B
18.【单选】
设函数C(X)定义问题X 的复杂程序,函数E(X)确定解决问题X 需要的工作量(时间)。对于两个问题P1 和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得
出结论E(P1+P2)>E(P1)+E(P2),这个原理是( )的依据
A. 模块化
B. 逐步求精
C. 抽象
D. 信息隐藏和局部化
我的答案:A
19.【单选】
关于内容耦合的描述正确的是( )
A. 内容耦合是最高程度的耦合
B. 两个模块都引用了同一个全局变量,则它们之间是内容耦合
C. 应该尽量使用内容耦合
D. 内容耦合的耦合程度比控制耦合要低
我的答案:A
20.【单选】
下列说法正确的是()
A. 模块的作用域在模块的控制域内
B. 模块的控制域在模块的作用域之内
C. 模块的控制域和模块的作用域有时相同
D. 模块的作用域和模块的控制域都是一种层次结构
我的答案:A
21.【单选】
“某种类型对象实例频繁地创建或销毁,每次创建或销毁消耗大量的程序资源或性能”,此时应采用()
A. 工厂方法模式
B. 适配器模式
C. 单例模式
D. 迭代器模式
我的答案:C
22.【单选】
“类或模块的代码对扩展是开放的,对修改是关闭的”是面向对象程序设计的
A. 单一职责原则
B. 开闭原则
C. 里氏替换原则
D. 接口隔离原则
我的答案:B
23.【单选】
某成绩查询模块的功能是提示学生成绩等级,包括A、B、C、D四个等级,调用模块向该模块传递不同的分数,该模块以此来判断显示给学生的成绩等级,此时成绩查询模块和调用模块之间的耦合称为()
A. 数据耦合
B. 公共耦合
C. 控制耦合
D. 内容耦合
我的答案:C
24.【单选】
以下不属于软件系统的接口设计内容的是()
A. 用户接口
B. 管理员接口
C. 内部接口
D. 外部接口
我的答案:B
25.【单选】
“子类可以扩展父类的功能,但不能改变父类原有的功能
”,这符合面向对象设计的()原则
A. 单一职责原则
B. 开闭原则
C. 里氏替换原则
D. 接口隔离原则
我的答案:C
26.【多选】
Java语言中,注释包含()
A. 代码文件注释
B. 类注释
C. 方法注释
D. 语句注释
我的答案:A,B,C,D
27.【单选】
模块的独立性是由内聚性和耦合性来度量的, 其中内聚性指的是
A. 模块之间的联系程度
B. 信息隐藏程度
C. 模块内各元素彼此结合的紧密程度
D. 接口的复杂度
我的答案:C
28.【多选】
以下属于面向对象中“接口隔离”的优点的是
A. 减少冗余行为
B. 稳定性高
C. 可复用性好
D. 可读性好
我的答案:A,B,C
29.【多选】
应用程序编程接口(API)的设计,应包含( )
A. API的调用者和提供者
B. API的功能
C. API的引用路径
D. API的入参、出参和异常状态标识等
我的答案:A,B,C,D
30.【多选】
以下关于程序结构规范合理的做法有()
A. 多分支尽量采用switch…case
B. 为了使代码美观,每一行都应格式对齐
C. 尽量使用语句格式化
D. 少用continue和break
我的答案:A,C,D
31.【单选】
要减少两个模块之间的耦合,则必须()
A. 调用次数要少
B. 传递参数要少
C. 传递参数 要少且不传递控制型信息
D. 传递参数 要少且不传递控制型信息且不引用同一个全局变量
我的答案:D
32.【单选】
对多个模块或功能是否可共用同一个程序代码单元的代码方案设计,属于软件的哪个特性设计?
A. 可复用性设计
B. 可扩展性设计
C. 安全性设计
D. 可理解性设计
我的答案:A
33.【单选】
模块本身的内聚是模块独立性的重要度量因素之一,具有最强内聚的是()
A. 顺序内聚
B. 过程内聚
C. 逻辑内聚
D. 功能内聚
我的答案:D
34.【单选】
以下哪种模块设计是最好的
A. 高耦合、强内聚
B. 低耦合、弱内聚
C. 低耦合、强内聚
D. 高耦合、弱内聚
我的答案:C
35.【单选】
为了提高软件的可维护性,在编码阶段合理的做法有()
A. 减少代码版本更新
B. 提高代码的抽象度
C. 少写文档
D. 养成好的程序设计风格
我的答案:D
36.【多选】
以下关于代码文档说法中,正确的有
A. 代码文档应说明代码运行时环境及对应的具体版本号
B. 代码文档一旦形成,便可以保持不变
C. 代码文档应说明代码测试的方法,并提供相应的测试用例等
D. 代码文档应与最终的软件代码版本保持一致
我的答案:A,C,D
37.【多选】
从程序语言表现形式来看,程序设计语言可以分为()
A. 机器语言
B. 汇编语言
C. 高级语言
D. 自然语言
我的答案:A,B,C
38.【多选】
以下可以提高代码质量的方法有()
A. 模块化设计
B. 面向抽象编程
C. 不做异常处理
D. 统一使用固定的设计模式
我的答案:A,B
39.【单选】
关于代码审查的说法错误的是( )
A. 代码审查能够用于发现代码的bug
B. 代码审查比程序运行测试的效率低,应减少代码审查会议
C. 代码审查可用于纠正不规范的代码设计
D. 代码在审查之前必须要成功地编译通过
我的答案:B
40.【单选】
程序的三种基本控制结构的共同特点是
A. 不能嵌套使用
B. 只能用来写简单的程序
C. 已经用硬件实现
D. 只有一个入口和一个出口
我的答案:D