东大22年春学期《软件设计模式》在线平时作业3[答案怎么获取?怎么获取?]答案
东大22年春学期《软件设计模式》在线平时作业3-00001
试卷总分:100 得分:100
一、单选题 (共 10 道试题,共 50 分)
1.while语句循环结构和do…while语句循环区别的区别在于:
正确答案:-----
A.while语句的执行效率较高
B.do…while语句编写程序较复杂
正确答案:-----
C.无论条件是否成立,while语句都要执行一次循环体
D.do…while循环是先执行循环体,后判断条件表达式是否成立,而while语句是先判断条件表达式,再决定是否执行循环体
正确答案:-----
2.方法中的值参数是_________的参数。
A.按值传递
B.按引用传递
C.按地址传递
D.不传递任何值
正确答案:-----
3.C#中,回车字符对应的转义字符为:
A.
B.f
C.
D.a
正确答案:-----
4.以下是一些C#中的枚举型的定义,其中错误的用法有( )
A.public enum var1{ Mike = 100, Nike = 102, Jike }
B.public enum var1{ Mike = 100, Nike, Jike }
C.public enum var1{ Mike=-1 , Nike, Jike }
D.public enum var1{ Mike , Nike , Jike }
正确答案:-----
5.分析下列C#语句,注意类MyClass 没有访问修饰符:
namespace ClassLibrary1
{
class MyClass
{
public class subclass
{
int i;
}
}
}
若必须为类MyClass 添加访问修饰符,并使MyClass 的可访问域保持不变,则应选择_________
A.private
B.protected
C.internal
正确答案:-----
D.public
正确答案:-----
6.以下标识符中,正确的是:
A._nName
B.sizeof
C.16A
D.xl0#
正确答案:-----
7.C#语言的核心是面向对象编程(OOP),所有OOP语言都应至少具有三个特性:
A.封装、继承和多态
B.类、对象和方法
C.封装、继承和派生
D.封装、继承和派生
正确答案:-----
8.C#中每个int 类型的变量占用_______个字节的内存。
A.1
B.2
C.4
D.8
正确答案:-----
正确答案:-----
9.下列语句在控制台上的输出是什么?
String msg = @”hello world!”;
正确答案:-----
System.console.writeline(msg);
A.hello world!
正确答案:-----
正确答案:-----
B.@”hello world!”
正确答案:-----
C.hello
World!
D.hello world!
正确答案:-----
10.C#中每个int 类型的变量占用______个字节的内存。
A.1
B.2
C.4
D.8
东大22年春学期《软件设计模式》在线平时作业3[答案怎么获取?怎么获取?]多选题答案
二、判断题 (共 10 道试题,共 50 分)
11.提倡设计模式的根本原因是增强代码复用,增加可维护性。
12.数据流分析技术是结构化分析方法的核心技术。
13.在C#中,接口可以被多重继承而类不能。
14.在C#中,索引器是专门用来访问对象中的数组信息的。
15.C#中,下列MyClass的定义是否合法?
Public class Base1{}
Public class Base2{}
Public MyClass : Base1,Base2
16.在面向对象方法中,封装使得外界无法存取对象的内部信息。
17.命名空间和类库是一样的。
21.书写需求陈述时,要做到语法正确,至于词汇选择则无关紧要。
19.在检查状态图的完整性和一致性时,只要是没有前驱或后继的状态,则表明发现了一个错误。
20.声明委托实际上是声明了一个方法。
东大22年春学期《软件设计模式》在线平时作业3[答案怎么获取?怎么获取?]历年参考题目如下:
东 北 大 学 继 续 教 育 学 院
软件设计模式 试 卷(作业考核 线上) B 卷
学习中心: 院校学号: 姓名
(共 页)
总分 题号 一 二 三 四 五 六 七 八 九 十
得分
一:单选题(共40分,20小题,每小题2分。请将答案填入下表)
题号 1 2 3 4 5 6 7 8 9 10
答案
题号 11 12 13 14 15 16 17 18 19 20
答案
1. C#语言的核心是面向对象编程(OOP),所有OOP语言都应至少具有三个特性:
A. 封装、继承和多态 B. 类、对象和方法
C. 封装、继承和派生 D. 封装、继承和接口
2. C#中MyClass 为一自定义类,其中有以下方法定义public void Hello(){..}使用以下语句创建了该类的对象,并使变量obj 引用该对象:MyClass obj = new MyClass();那么,可如何访问类MyClass 的Hello 方法?
A. obj.Hello(); B. obj::Hello();
C. MyClass.Hello(); D. MyClass::Hello();
3. 在编写c#程序时,若需要对一个数组中的所有元素进行处理,则使用___循环体最好?
A. while循环 B. for each 循环
C. do循环 D. for 循环
4. 在c#程序中,入口函数的正确声明为:
A. static int main(){……} B. static void Main(){……}
C. static void main(){……} D. void Main(){……}
5. 在C#中,引用命名空间system 的正确语句是:
A. using System; B. #import<System>;
C. uses System; D. #include<System>;
6. MyClass为一个自定义的类,则下列语句创建了多少个类MyClass的对象?
MyClass[,] myArray = new MyClass[2][3];
A. 0 B. 2
C. 3 D. 6
7. 下面有关析构函数的说法中,不正确的是:
A. 析构函数中不可以包含return语句
B. 一个类中只能有一个析构函数
C. 析构函数在对象被撤销时,被自动调用
D. 用户可以定义有参析构函数
8. 下列说法哪个正确?
A. 不需要定义类,就能创建对象
B. 属性可以定义为抽象的
C. 对象中必须有属性和方法
D. 常量不能作为类成员
9. 下列说法哪个正确?
A. 允许一个子类有多个父类
B. 某个类是一个类的子类,它仍有可能成为另一个类的父类
C. 一个父类只能有一个子类
D. 继承关系最多不能超过4层
10. C#语言源代码文件的后缀名为:
A. .C# B. .CC C. .CSP D. .CS
11. C#中导入某一个命名空间的关键字是:
A. using B. use C. import D. include
12. 方法中的值参数是_________的参数。
A. 按值传递 B. 按引用传递
C. 按地址传递 D. 不传递任何值
13. 结构化程序设计的3种结构是:
A. 顺序结构、if结构、for结构
B. if结构、if…else结构、else if结构
C. while结构、do…while结构、foreach结构
D. 顺序结构、分支结构、循环结构
14. 下列描述错误的是:
A. 类不可以多重继承而接口可以
B. 抽象类自身可以定义成员而接口不可以
C. 抽象类和接口都不能被实例化
D. 一个类可以有多个基类和多个基接口
15. 下列关于构造函数的描述正确的是:
A. 构造函数可以声明返回类型。
B. 构造函数不可以用private修饰
C. 构造函数必须与类名相同
D. 构造函数不能带参数
16.C#中MyClass 为一自定义类,其中有以下方法定义public void Hello(){..}使用以下语句创建了该类的对象,并使变量obj 引用该对象:MyClass obj = new MyClass();那么,可如何访问类MyClass 的Hello 方法?
A.obj.Hello(); B.obj::Hello();
C.MyClass.Hello(); D.MyClass::Hello();
17.在类的定义中,类的_______描述了该类的对象的行为特征。
A.类名 B.方法 C.所属的名字空间 D.私有域
18.C#语言中,下列能够作为变量名的是:
A.if B.3ab C.a_3b D.a-bc
19.能正确表示逻辑关系“a>=10 或a<=0”的C#语言表达式是:
A.a>=10 or a<=0 B.a>=10|a<=0
C.a>=10&&a<=0 D.a>=10||a<=0
20.以下叙述正确的是:
A.do….while语句构成的循环不能用其他语句构成的循环来代替
B.do….while语句构成的循环只能用break语句退出
C.用do….while语句构成的循环,在while后的表达式为true时结束循环
D.用do….while语句构成的循环,在while后的表达式应为关系表达式或逻辑表达式
二:判断题(共20分,20小题,每小题1分。请将答案√或×填入下表)
题号 1 2 3 4 5 6 7 8 9 10
答案
题号 11 12 13 14 15 16 17 18 19 20
答案
1.软件危机是二十一世纪软件领域出现的新问题。
2.结构化程序设计对基本模块的要求是单入口、多出口。
3.从提出软件开发计划的那一刻起开始直到软件投入实际应用为止可以认为是一个完整的软件生存周期。
4.喷泉模型主要用于面向过程的软件项目。
5.在面向对象方法中,由于对象中的数据以及对数据的操作是封装的,所以对某一类对象的修改一般只涉及该类,通常不会对整个系统造成很大影响。
6.书写需求陈述时,要做到语法正确,至于词汇选择则无关紧要。
7.利用多重继承虽然可以提高类的共享程度,但也会增加系统的复杂程度。
8.脚本(script)就是详细描述类的静态结构的信息。
9.面向对象程序设计应该遵循低内聚、高耦合的原则。
10.作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。
11.用例图、类图、对象图、状态图和顺序图属于静态建模机制。
12.顺序图和协作图虽然都是用来描述交互的,但顺序图强调的是空间,而协作图强调的是时间。
13.面向对象设计中的"开-闭"原则指的是软件对修改应该是开放的,对扩展应该是关闭的。
14.单一职责原则、里氏代换原则、依赖倒置原则等,都可以看成是“开放-封闭”原则的实现方法。
15.一般来说,继承必须确保超类所拥有的性质在子类中仍然成立。
16.当一个超类的实例能够替换任何其子类的实例时,它们之间才具有is-A关系。
17.工厂方法是抽象工厂模式的扩展。
18.结构型模式在破坏类的封装性的基础上,实现ABC功能。
19.具有抽象方法的类必须声明为abstract。
20.类和对象的区别就是,类是对象的实例,而对象则是类的抽象。
三:简答题(共25分,5小题,每小题5分。)
1. 什么是设计模式?
2. 面向对象设计中需要遵循哪些原则?为什么要遵循这些原则?
3. 结构型模式的功能有哪些?
4. 简述建造者模式。
5. 试简述重载与覆盖的区别。
四:综合题(共15分)
假设你现在是一家快餐店的的管理者,要给顾客提供一系列的食品,如鸡翅、鸡腿等,顾客每要求一种食品,快餐店应当很快“生产”出来。请采用工厂模式来实现这个过程,用C#语言编写相应的类代码。