东大21年1月考试软件设计模式考核作业A卷.doc
- 文档编号:113307
- 上传时间:2022-10-03
- 格式:DOC
- 页数:6
- 大小:117.50KB
东大21年1月考试软件设计模式考核作业A卷.doc
《东大21年1月考试软件设计模式考核作业A卷.doc》由会员分享,可在线阅读,更多相关《东大21年1月考试软件设计模式考核作业A卷.doc(6页珍藏版)》请在冰豆网上搜索。
东北大学继续教育学院
软件设计模式试卷(作业考核线上2)A卷
学习中心:
院校学号:
姓名
(共5页)
总分
题号
一
二
三
四
五
六
七
八
九
十
得分
一、单选题(共40分,20小题,每小题2分。
)
1.以下标识符中,正确的是:
A
A._nNameB.sizeofC.16AD.xl0#
2.在c#程序中,入口函数的正确声明为:
B
A.staticintmain(){…..}
B.staticvoidMain(){……}
C.staticvoidmain(){……}
D.voidMain(){……}
3.在C#中,引用命名空间system的正确语句是:
A
A.usingSystem;
B.#import
C.usesSystem;
D.#include
4.在C#中,表示一个字符串的变量应使用以下哪条语句定义?
B
A.CStringstr;
B.stringstr;
C.Dimstrasstring
D.char*str;
5.结构化程序设计的3种结构是:
D
A.顺序结构、if结构、for结构
B.if结构、if…else结构、elseif结构
C.while结构、do…while结构、foreach结构
D.顺序结构、分支结构、循环结构
6.能正确表示逻辑关系“a>=10或a<=0”的C#语言表达式是D
A.a>=10ora<=0
B.a>=10|a<=0
C.a>=10&&a<=0
D.a>=10||a<=0
7.分析下列程序:
D
publicclassclass4
{
privatestring_sData="";
publicstringsData{set{_sData=value;}}
}
在Main函数中,在成功创建该类的对象obj后,下列哪些语句是合法的?
A.obj.sData="Itisfunny!
";
B.Console.WriteLine(obj.sData);
C.obj._sData=100;
D.obj.set(obj.sData);
8.在类的外部可以被访问的成员是:
A
A、public成员 B、private成员 C、protected成员 D、protectedinternal成员
9.在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成____C_____。
A.sealed方法
B.public方法
C.visual方法
D.override方法
10.关于结构类型,下列说法哪些是正确的?
A
A.结构是值类型
B.结构中不允许定义带参数的实例构造函数;
C.结构中不允许定义析构函数
D.结构中可以定义成员方法,但是方法内不能使用this指针
11.判断下列类MyClass的定义中哪些是合法的抽象类?
C
A.abstractclassMyClass{publicabstractintgetCount();}
B.abstractclassMyClass{abstractintgetCount();}
C.privateabstractclassMyClass{abstractintgetCount();}
D.sealedabstractclassMyClass{abstractintgetCount();}
12.C#中执行下列语句后整型变量X和Y的值是多少?
B
Intx=100;
Inty=++x;
A.x=100y=100
B.x=101y=100
C.x=100y=101
D.x=101y=101
13.在编写c#程序时,若需要对一个数组中的所有元素进行处理,则使用___循环体最好?
A
A.while循环
B.foreach循环
C.do循环
D.for循环
14.下面是几条动态初始化二维数组的语句,指出其中正确的:
D
A.intarr5[][]=newint[4,5];
B.int[][]arr6=newint[4,5];
C.intarr7[,]=newint[4,5];
D.int[,]arr8=newint[4,5];
15.下面有关析构函数的说法中,不正确的是:
D
A.析构函数中不可以包含return语句
B.一个类中只能有一个析构函数
C.析构函数在对象被撤销时,被自动调用
D.用户可以定义有参析构函数
16.下列说法哪个正确?
B
A.不需要定义类,就能创建对象
B.属性可以定义为抽象的
C.对象中必须有属性和方法
D.常量不能作为类成员
17.下面有关静态方法的描述中,正确的是:
C
A.静态方法属于类,不属于实例
B.静态方法可以直接用类名调用
C.静态方法中,可以访问非静态的局部变量
D.静态方法中,可以访问静态的变量
18.以下描述错误的是:
A
A.在C++中支持抽象类,但在C#中不支持抽象类。
B.C++中可在头文件中声明类的成员,而在CPP文件中定义类的成员;在C#中没有头文件并且在同一处声明和定义类的成员。
C.在C#中可使用new修饰符显式隐藏从基类继承的成员。
D.在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。
19.下列关于构造函数的描述正确的是:
C
A.构造函数可以声明返回类型。
B.构造函数不可以用private修饰
C.构造函数必须与类名相同
D.构造函数不能带参数
20.变量x的值为25,要输出x的值,下列正确的语句是:
C
A.System.Console.writeline(“x”)
B.System.Console.WriteLine(“x”)
C.System.Console.writeline(“x={0}”,x)
D.System.Console.writeline(“x={x}”)
二:
判断题(共20分,20小题,每小题1分。
正确√表示,错误×表示)
1.软件危机与软件本身的特点有关。
(√)
2.结构化程序设计的3种基本结构是顺序、循环和选择。
(√)
3.面向数据流的设计以面向对象分析阶段的数据流图为基础。
(×)
4.软件测试方法主要白盒测试和黑盒测试两种。
(√)
5.螺旋模型包括制定计划、概要设计,详细设计和工程实施四个主要部分。
(×)
6.变换型数据流图的一般步骤是分析数据、变换数据、打印结果。
(×)
7.对象通过封装实现信息隐藏,封装的目的就是阻止非法访问。
(√)
8.在面向对象方法中,对象是对类的抽象,特殊类是对一般类的抽象。
(×)
9.面向过程方法的缺点是过程和数据结合的过于紧密。
(×)
10.高耦合是优秀设计的重要标准,有助于使得系统中各部分之间联系紧密。
(×)
11.消息可以用顺序图和协作图这两种图来表示。
(√)
12.状态图、顺序图、协作图和部署图属于动态建模机制。
(×)
13.顺序图描述系统中对象间通过消息进行的交互,强调消息在时间轴上的先后顺序。
(√)
14.提倡设计模式的根本原因是增强代码复用,增加可维护性。
(√)
15.里氏代换原则的本质是在同一个继承体系中的对象应该有共同的行为特征。
(√)
16.工厂方法是抽象工厂模式的扩展。
(×)
17.提倡设计模式的根本原因是增强代码复用,增加可维护性。
(√)
18.抽象类不可以被实例化。
(√)
19.当创建派生类对象时,先执行基类的构造函数,后执行派生类的构造函数。
(√)
1.虚函数是可由子类继承并重写的函数。
(√)
三:
简答题(共25分,5小题,每小题5分。
)
1.软件危机的主要表现有哪些?
答:
①软件需求增长得不到满足②软件生产高成本、价格昂贵③软件生产进度无法控制④软件需求定义不准确⑤软件质量不易保证⑥软件可维护性差
2.试简述瀑布模型。
答:
瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序。
如同瀑布流水,逐级下落。
每个阶段都会产生循环反馈:
下一阶段信息未被覆盖或发现问题,可返回上一阶段进行修改。
3.简述建立动态模型时,构造事件跟踪图的方法。
答:
事件跟踪图能形象、清晰地表示事件序列以及事件与对象的关系。
在事件跟踪图中,一条竖线代表一个类和对象,每个事件用一条水平的箭头线表示,箭头方向从事件的发送对象指向接受对象。
事件按照先后顺序排列,时间从上向下递增。
4.设计模式的基本要素有哪些?
答:
设计模式的基本要素包括:
(1)模式名称:
一个助记名,它用一两个词来描述模式的问题、解决方案和效果。
(2)问题:
描述了应该在何时使用模式。
解释设计问题和问题存在的前因后果,它可能描述了特定的设计问题,也可能描述了导致设计方案不灵活的类或对象结构。
(3)解决方案:
描述设计的组成成分,它们之间的相互关系及各自的职责和协作方式。
解决方案一般并不描述特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。
(4)效果:
描述了模式应用的效果及使用模式应权衡的问题。
因为复用是面向对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性或可移植性的影响。
5.什么是创建型设计模式,它的目的是什么?
答:
创建型设计模式就是用来创建对象的模式,抽象了实例化的过程。
创建型模式的目的将具体的对象的实例化操作封装起来,客户端只了解自己需要某个实例,但不必了解该实例的创建过程。
这体现了面向对象设计方法中“高内聚,低耦合”的设计原则。
四:
综合题(共15分)
1.试举一个例子并设计类适配器模式的UML结构图。
(7分)
2.
2.定义一个抽象的运动员(Player)基类,具有抽象方法Train方法。
然后以该类为基类,派生出BasketballPlayer、FootballPlayer等类。
(8分)
///抽象类:
运动员
publicabstractclassPlayer
{
publicabstractvoidTrain();
}
publicclassBasketballPlayer:
Player
{
publicoverridevoidTrain()
{
Console.WriteLine("Basketballplayersaretraining...");
}
}
publicclassFootballPlayer:
Player
{
publicoverridevoidTrain()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 21 考试 软件设计 模式 考核 作业