mooc基于Java的面向对象编程范式期末答案(慕课2023课后作业答案)

会计高级习题2024-05-19 07:14:3809761抢沙发
mooc基于Java的面向对象编程范式期末答案(慕课2023课后作业答案)摘要: 1 - 编程之前第一单元 单元测试1、请选择正确的软件工程的思维演化顺序:a.数学建模 b.计算机建模 c.软件工程建模A、bacB、abcC、cbaD、bca2、冯诺依曼架构是指内存,控制单元,运算 ...

mooc基于Java的面向对象编程范式期末答案(慕课2023课后作业答案)

1 - 编程之前

第一单元 单元测试

1、基于请选择正确的向对象编软件工程的思维演化顺序:a.数学建模 b.计算机建模 c.软件工程建模
A、bac
B、程范abc
C、式期cba
D、末答bca

2、案慕案冯诺依曼架构是课课指内存,控制单元,后作运算单元和
A、业答输入输出
B、基于电源
C、向对象编主板
D、程范机箱

3、式期形如‘MOV?A,末答06H’这样的指令属于哪一种语言?
A、机器语言
B、案慕案汇编语言
C、高级语言
D、自然语言

4、帮助我们总结系统场景,描述系统要做什么的分析模型是
A、类图
B、系统顺序图
C、用例图
D、状态图

5、代码和可执行文件是在哪一步的产物?
A、需求分析
B、设计
C、构造
D、演化

6、请选出所有可以降低系统复杂度的方法 a.抽象 b.分层 c.分解
A、abc
B、b
C、c
D、ac

7、请选择JAVA的入口方法:
A、public void main()
B、public static void main()
C、public static void entry()
D、public static void main(String[] args)

8、请从以下选项中选择一个最合适的作为变量‘最近一次付款’的名称
A、payment
B、x
C、lastPayment
D、lp

9、在进行软件工程建模之前,我们首先需要完成的工作是?
A、明确开发框架和需求
B、设计并建立计算机模型
C、制定解决方案
D、检验软件质量

10、请选择软件开发生命周期模型(Software development life-cycle)中各个步骤的正确顺序 a.需求分析 b.设计 c.构造 d.测试 e.移交并演化
A、abcde
B、acbde
C、bacde
D、badce

11、科学的思维是指在很少或者几乎没有限制条件的情况下,把一个未解决的问题转化为一个解决的问题,从而获得理论上的最优解

12、不同的软件框架或硬件框架解决问题的方法是相同的

13、需求分析阶段的产物是软件需求规格说明(SRS),SRS可以对系统中一些不明确的需求进行粗略的说明

14、分解和抽象是降低代码复杂度的方法

15、一个java文件中可以有多个public class名字,且名字可以和java文件名不同

2 - 结构化编程范式

第二单元 单元测试

1、结构化编程按什么分解
A、算法
B、数据结构
C、个人兴趣
D、编程目的

2、以下不属于结构图的模块的有
A、输出模块
B、分支模块
C、控制模块
D、处理模块

3、do{ …}until{ …}语句属于
A、跳转
B、分支
C、循环
D、顺序

4、数据流图中数据变化包括
A、被转换
B、被存储
C、被分布
D、被分解

5、避免代码重复的好处有
A、节省时间
B、提高代码可读性
C、提高代码质量
D、提高代码可修改性

6、测试包括
A、红盒测试
B、黑盒测试
C、白盒测试
D、潘多拉魔盒测试

7、数据流图中系统是过程的集合

8、结构图只能表达模块间的依赖关系

9、goto指令破坏了代码的可读性

10、黑盒测试需要知道代码结构

3 - 面向对象编程范式

第三单元 单元测试

1、(3-01)以下说法错误的是( )。
A、我们必须应对变更,用好的设计来高效地解决现实中新的问题。
B、好的设计能够很好地应对所有的变更,包括可预计的变更和不可预计的变更。
C、对于“可以预期”的变更,我们必须做好设计来预防这样的变更。
D、对于“没有预期”的变更,我们只能想一些折中的办法来做修饰和处理。

2、(3-02)以下说法错误的是( )。
A、将相关的操作独立成子模块,能够减少修改的范围。
B、将相关操作和相关数据放在一起,能够进一步减少修改的范围。
C、通过扩展来消除大范围的修改时,采用的是面向对象所支持的继承和多态来实现的编译时静态链接。
D、运行时动态链接,是指编码时将行为实现和行为抽象进行隔离,然后运行时再动态地将它们进行绑定和链接。

3、(3-03)以下说法错误的是( )。
A、面向对象中最重要的是职责,数据职责是指状态的存储,行为职责是指操作的执行。
B、职责最重要的体现是数据职责和行为职责在一起。
C、类和对象都是职责的体现,区别在于对象是职责的抽象,类是职责的具体实现。
D、面向对象方法是从职责视角,重点考虑职责是如何分配的、如何交互与协作的。

4、(3-04)Java中创建并访问一个类的对象的过程包括( )。
A、声明引用变量
B、新建类的对象,在内存中分配存储区域
C、将引用变量指向真实对象
D、其他所有选项

5、(3-06)“不要重新发明轮子”最能体现软件的( )思想。
A、可靠性
B、可修改性
C、重用性
D、易用性

6、(3-04)获得对象的过程包括寻找候选对象和精化对象。其中,寻找候选对象包括( )。
A、去除冗余、去除不相干、去除模糊的概念
B、通过找动词来找到行为与方法
C、转化没有行为的对象为某个类的属性
D、通过找名词来找到类(对象)与属性

7、(3-06)分层风格中包含以下哪些层( )。
A、展示层
B、逻辑层
C、持久层
D、数据层

8、(3-02)当发生实现变更、需求增加或需求更改时,结构化程序会发生大范围的修改。

9、(3-04)类是描述相同事物的集合,它描述的是我们所要描述的事物集合的非本质特征。

10、(3-07)测试只与同一类的方法有关(半独立)的方法时,需要先测试该类中被依赖的方法。

5 - 类的协作

第五单元 单元测验

1、如何判断一个类的职责超过了一个?
A、当它提供的接口数量很多时
B、当它的成员变量数量很多时
C、当有多个对象要与它进行交互时
D、当有多个变化要求我们修改这个类时

2、类之间的关系中,从弱到强依次为
A、普通关联 < 依赖 < 组合 < 聚合
B、普通关联 < 依赖 < 聚合 < 组合
C、依赖 < 普通关联 < 组合 < 聚合
D、依赖 < 普通关联 < 聚合 < 组合

3、在一个对象 A 中不持有对象 B 的引用, 但是在 A 的某个方法中使用了 B, 那么 A 与 B 的关系是
A、继承
B、依赖
C、聚合
D、组合

4、以下哪句英文短语用于表达组合关系?
A、uses a
B、has a
C、owns a
D、is a part of

5、在收银系统中,使用委托式的设计风格,计算每项商品条目的价格应该由谁来完成?
A、Sale
B、SalesLineItem
C、Product
D、Main

6、以下哪些是可以协作的对象?
A、该对象自身
B、任何以参数形式传入的对象
C、被该对象直接创建的对象
D、所持有的对象的引用,即成员变量

7、关于聚合,以下哪些说法是对的?
A、它是一种强版本的关联
B、它暗含着一种所属关系与生命期关系
C、被聚合的对象不可以被其他对象关联
D、在UML图中,聚合用实线,实心的菱形来表示

8、生活中的对象可以扮演多个职责,因此面向对象的世界中,一个理想中的类也可以扮演多个职责

9、客户端去调用服务器的接口时,除了应当知道接口的功能之外,还应当了解服务器实现的具体细节

10、顺序图中,同步消息是实线的三角箭头,返回和异步消息是虚线的鱼骨箭头

6-类的可重用和可修改

第六单元 单元测试

1、以下关于可修改性描述错误的是?
A、狭义可修改性希望不影响Client代码
B、可扩展性希望不影响Client代码
C、灵活性希望不影响Client使用类的代码
D、灵活性即对实现的动态配置

2、以下关于继承的说法错误的是?
A、子类继承了父类所有的成员变量和方法
B、子类可以增加成员变量和方法
C、子类可以覆盖父类的成员方法
D、子类可以覆盖父类的成员变量

3、以下关于多态的说法错误的是?
A、多态能够改善代码的组织结构
B、多态没有消除类型之间的耦合关系
C、多态可以改善代码的可读性
D、在多态中只关心一个对象做什么,而不关心怎么做

4、以下关于抽象类和抽象方法描述不正确的是?
A、非抽象类中不可以有抽象方法
B、抽象类可以有非抽象方法
C、抽象类必须有抽象方法
D、抽象类不可以被实例化

5、在java中,以下关于接口的描述不正确的是?
A、一个类可以实现多个接口
B、一个类不可以继承多个类
C、接口中可以拥有变量
D、接口不可以继承接口

6、以下关于继承与组合描述错误的是?
A、继承是is-a关系
B、组合是has-a关系
C、组合是隐式的,继承是显式的
D、继承通常优于组合

7、以下关于面向接口编程描述错误的是?
A、增加了开发的可并行性
B、降低了类之间的耦合度
C、使程序结构更加清晰
D、减少了设计的复杂度

8、在有继承的初始化中,以下初始化顺序正确的是?
A、父类静态初始化—子类静态初始化—成员变量设为默认值—父类构造函数调用—父类成员变量初始化—子类构造函数调用—子类成员变量初始化
B、子类静态初始化— 父类静态初始化—成员变量设为默认值—父类构造函数调用—父类成员变量初始化—子类构造函数调用—子类成员变量初始化
C、父类静态初始化—子类静态初始化—成员变量设为默认值—子类构造函数调用—子类成员变量初始化—父类构造函数调用—父类成员变量初始化
D、父类静态初始化—子类静态初始化—成员变量设为默认值—父类成员变量初始化—父类构造函数调用—子类成员变量初始化—子类构造函数调用

9、实现可修改性的常用方法有继承、接口

4 - 类的封装

第四单元 单元测试

1、一个实现良好的封装应满足的规则不包括:
A、将数据和操作数据的行为放在一起
B、用职责驱动的设计原则来决定数据和行为的在一起
C、满足高耦合低内聚
D、职责要具有完备性

2、关于概念类图描述错误的是
A、必须根据系统的需求来确定概念类图
B、概念类没有行为
C、如果候选类不需要维护状态只有行为,切没有其他关联的状态和他有关系,我们可以剔除这个候选类
D、概念类图的基本元素有对象、类、链接、关联(聚合)、继承

3、关于类图的描述错误的是
A、类图用来体现数据行为的“在一起”
B、类图中的"-"表示protected,“+”表示public
C、类图中的成员变量可以定义初始值
D、类图应按照标准UML定义绘制

4、关于防御式编程,下面说法错误的是
A、为了免遭非法输入数据的破坏,我们要检查所有源于外部的数据的值
B、需要检查子程序所有输入参数的值
C、我们可以使用断言来预防代码运行过程中出错
D、断言主要是产品发布之后使用的,让程序在运行时自检代码

5、public int findMax(int [] array){ if(array==null||array.length==0)----------------(1) return -1; int max=array[0]; ------------------------(2) for (int i=1;i<array.length;i++){ if (array[i]>max) --------------------(3) max=array[i]; } return max; ---------------------------(4) } 上述代码哪一部分体现了防御式编程的思想
A、(1)
B、(2)
C、(3)
D、(4)

6、以下说法错误的是
A、静态方法不能访问非静态方法
B、静态方法不能访问非静态变量
C、创建好类的对象之后,jvm会立即初始化静态变量
D、静态变量被任何静态方法调用之前会被初始化好

7、public class Duck { static int duckCount; int count; public Duck(){ duckCount++; count++; } public static void main(String []args){ Duck d1=new Duck(); System.out.println(Duck.duckCount); System.out.println(d1.count); Duck d2=new Duck(); System.out.println(Duck.duckCount); System.out.println(d2.count); } } 上述代码的输出依次是
A、0,0,1,0
B、1,1,2,2
C、1,1,1,2
D、1,1,2,1

8、public class Position{ double latitude; double longitude; public static double calDistance(double x1, double y1, double x2, double y2){ ...... } public static double calDirection(double x1, double y1, double x2, double y2){ ...... } }上述代码的设计是否合理?

9、class Point{ double x; double y; public double calDistance(Point a){ ...... } } 上述代码设计是否合理?

10、数据职责表征对象的本质特征,行为职责表征为对象的本质行为

文章版权及转载声明

本文地址:http://www.zzxhsh.org/2b799995.html发布于 2024-05-19 07:14:38
文章转载或复制请以超链接形式并注明出处五煦查题

评论列表 (暂无评论,44人围观)参与讨论