|
东 北 大 学 继 续 教 育 学 院
软件设计模式 试 卷(作业考核 线上) A 卷
学习中心: 院校学号: 姓名
(共 5 页)
总分 题号 一 二 三 四 五 六 七 八 九 十
得分
一:单选题(共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. 下列语句创建了多少个string 对象?
string[,] strArray = new string[3][4];
A. 0 B. 3 C. 4 D. 12
3. 关于结构类型,下列说法哪些是正确的?
A. 结构是值类型
B. 结构中不允许定义带参数的实例构造函数;
C. 结构中不允许定义析构函数
D. 结构中可以定义成员方法,但是方法内不能使用this 指针
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、b、c的值分别是4、5、6,执行下面的程序段后,判断变量n的值为:
int a,b,c,n;
if (c < b)
n = a + b + c;
else if (a + b < c)
n = c - a - b;
else
n = a + b;
A. 3 B. -3 C. 9 D. 15
8. 下列说法哪个正确?
A. 不需要定义类,就能创建对象 B. 属性可以定义为抽象的
C. 对象中必须有属性和方法 D. 常量不能作为类成员
9. 在类的外部可以被访问的成员是:
A. public成员 B. private成员
C. protected成员 D. protected internal成员
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 没有访问修饰符:
namespace ClassLibrary1
{
class MyClass
{
public class subclass
{
int i;
}
}
}
若必须为类MyClass添加访问修饰符,并使MyClass的可访问域保持不变,则应选择:
A. private B. protected C. internal D. public
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.以下关于for循环的说法不正确的是____。
A. for循环只能用于循环次数已经确定的情况
B. for循环是先判定表达式,后执行循环体语句
C. for循环中,可以用break语句跳出循环体
D. for循环体语句中,可以包含多条语句,但要用花括号括起来。
二:判断题(共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.人机交互子系统的设计内容就是用户如何命令系统。
9.作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。
10.状态图、顺序图、协作图和部署图属于动态建模机制。
11.顺序图和协作图虽然都是用来描述交互的,但顺序图强调的是空间,而协作图强调的是时间。
12.面向对象设计中的"开-闭"原则指的是软件对修改应该是开放的,对扩展应该是关闭的。
13.单一职责原则、里氏代换原则、依赖倒置原则等,都可以看成是“开放-封闭”原则的实现方法。
14.一般来说,继承必须确保超类所拥有的性质在子类中仍然成立。
15.当一个超类的实例能够替换任何其子类的实例时,它们之间才具有is-A关系。
16.工厂方法是抽象工厂模式的扩展。
17.结构型模式在破坏类的封装性的基础上,实现新的功能。
18.数组作为函数的参数时默认的传递形式是按值传递。
19.具有抽象方法的类必须声明为abstract。
20.重载是进行基类中函数的重写。
三:简答题(共25分,5小题,每小题5分。)
1. 什么是设计模式?
2. 面向对象设计中需要遵循哪些原则?为什么要遵循这些原则?
3. 什么是面向对象软件开发的“开放-封闭”原则?其优点有哪些?
4. 结构型模式的功能有哪些?
5. 试简述抽象工厂模式。
四:综合题(共15分)
假设你现在是一家快餐店的的管理者,要给顾客提供一系列的食品,如鸡翅、鸡腿等,顾客每要求一种食品,快餐店应当很快“生产”出来。请采用工厂模式来实现这个过程,用C#语言编写相应的类代码。
|
|