软件设计模式试卷(作业考核线上2) A卷
学习中心: 奥鹏远程教育哈尔滨学习屮心(直属)[2] 院校学号:
C03451021930359 姓名 邢方涛
(共 5 页)
总分 题号 —・ 二 - 四 五 七 八 九 十 得分 一、单选题(共40分,20小题,每小题2分。) 1. 以下标识符中,正确的是:A
A.
_nName
B.sizeof
C.16A D.xlO #
2. 在c#程序中,入口函数的正确声明为:B
A. static int main(){ ...... } B. static void Main(){ ...... } C. static void main(){ ....... ) D. void Main(){ ...... )
3. 在C#中,引用命名空间system的正确语句是:A
A. using System; B. #import D・ #include 4. 在C#中,表示一个字符串的变量应使用以下哪条语句定义? B A. CString str; B. string str; C・ Dim str as string D. char * str; 5. 结构化程序设计的3种结构是:D A. 顺序结构、if结构、for结构 B. if 结构、if...else 结构、else if 结构 C. while 结构、do...while 结构、foreach 结构 D. 顺序结构、分支结构、循环结构 6. 能正确表示逻辑关系“a>=10或av=0”的C#语言表达式是D A. a>=10 or a<=0 课程名称:软件设计•模式 1 B・ a>=10la<=0 C. a>=10&&civ=O D. a>=10lla<=0 7. 分析下列程序:A public class class4 { private string _sData = public string sData{set{_sData = value;)} } 在Main函数中,在成功创建该类的对象obj后,下列哪些语句是合法的? A. obj.sData = \"It is funny!'1; B. Console.WriteLine(obj.sData); C. obj._sData = 100; D. obj.set(obj.sData); &在类的外部可以被访问的成员是:A A、public 成员 B、private 成员 C、protected 员 D、protected internal 9. 在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生 类的需要,则应将该方法声明成—C ______ o A. sealed 方法 B. public 方法 C. visual 方法 D・oveiride方法 10. 关于结构类型,下列说法哪些是正确的? A A. 结构是值类型 B. 结构中不允许定义带参数的实例构造函数; C. 结构中不允许定义析构函数 D. 结构中可以定义成员方法,但是方法内不能使用this指针 11. 判断下列类MyClass的定义中哪些是合法的抽象类? A A. abstract class MyClass { public abstract int getCount(); } B・ abstract class MyClass { abstract int getCount(); } C. private abstract class MyClass { abstract int getCount();) D. sealed abstract class MyClass { abstract int getCount(); } 12. C#中执行下列语句后整型变量X和Y的值是多少? B Int x = 100; Int y = ++x; A. x= 100 y= 100 y = 100 B. x= 101 y = 101 C. x= 100 y = 101 D. x=101 13.在编写c#程序时, 若需要对一个数组中的所有元素进行处理,则使用_B_循环体最好? A. while 循环 B. for each 循环 C. do循环 D. for循环 14. 下面是儿条动态初始化二维数组的语句,指岀其 2 中正确的:D 课程名称:软件设计•模式 A. int arr5[][]=new int[4,5]; B. int[][] arr6 = new int[4, 5]; C. int arr7[J=new int[4,5]; D. int[J arr8=new int[4,5]; 15. 下面有关析构函数的说法中,不正确的是:D A. 析构函数中不可以包含retum语句 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(uxv) B. System.Console.WriteLine(ux^) C. System.Console.writeline(ux={0}9\\x) D. System.Console.writeline(ux={ x },9) -:判断题(共20分,20小题,每小题1分。正确J表示,错误X表示) 1. 2. 3. 软件危机与软件本身的特点有关。(V ) 结构化程序设计的3种基本结构是顺序、循环和选择。(V ) 面向数据流的设计以面向对象分析阶段的数据流图为基础。(X ) 4・软件测试方法主要白盒测试和黑盒测试两种。(V ) 5. 6. 螺旋模型包括制定计划、概要设计,详细设计和工程实施四个主要部分。(X ) 变换型数据流图的一般步骤是分析数据、变换数据、打印结果。(V) 7. 对象通过封装实现信息隐藏,封装的口的就是阻止非法访问。(V ) &在面向对象方法中,对象是对类的抽象,特殊类是对一般类的抽象。课程名称:软件设汁模式 3 X ) (面向过程方法的缺点是过程和数据结合的过于紧密。(X ) 10. 高耦合是优秀设计的重要标准,有助于使得系统中各部分之间联系紧密。(X ) 11. 消息可以用顺序图和协作图这两种图来表示。(J ) 12. 状态图、顺序图、协作图和部署图属于动态建模机制。(X ) 13. 顺序图描述系统中对象间通过消息进行的交互,强调消息在时间轴上的先后顺序。(V ) 14•提倡设计模式的根本原因是增强代码复用,增加可维护性。(V ) 15. 里氏代换原则的本质是在同一个继承体系中的对象应该有共同的行为特征。(V ) 9. 16. 工厂方法是抽象工厂模式的扩展。(X ) 抽象类不可以被实例化。(V ) 当创建派生类对象时,先执行基类的构造函数,后执行派生类的构造函数。(丁 ) 虚函数是可由子类继承并重写的函数。(V ) 三:简答题(共25分,5小题,每小题5分。) 17 •提倡设计模式的根本原因是增强代码复用,增加可维护性。(V ) 18. 19. 20. 1. 软件危机的主要表现有哪些? 软件危机是指在软件开发和维护过程中存在的周期长,成本高,质量低等问题。主要表现: 缺乏计划性。软件需求获得不充分,不准确。缺乏团队合作、协调能力。缺乏良好的软件质 量评测手段。软件的可维护性差。软件的复用性差。软件开发过程不规范。缺乏自动化的工 具来协助开发。缺乏变更管理手段。缺乏风 险管理手段。 2. 试简述瀑布模型。 答:瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试 和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序。如同瀑布流 水,逐级下落。 每个阶段都会产生循环反馈:下一阶段信息未被覆盖或发现问题,可返回上一阶段进行修改。 3. 简述建立动态模型时,构造事件跟踪图的方法。 答:动态模型是与时间和变化有关的系统性质,该模型描述了系统的控制结构,它表示了瞬 时的、行为化的系统控制性质,它关心的是系统的控制,操作的执行顺序,它从对象的事件 和状态的角度出发,表现了对象的具体行为。 该模型描述的系统属性是触发事件、事件序列、状态、事件与状态的组织。使用状态 图作为描述工具。 事件是指时刻发生的某件事情。它是某事情发生的信号,它没有持续时间,它是一种 相对性的快速事件。 课程名称:软件设计模式 6 事件跟踪图侧重于表达说明发生域系统执行过程中的一个特定“场景”(即脚本)是 完 成系统某个功能的事件序列。现实世界中,各对象之间相互触发,一个触发行为就是一个事 件。对事件的响应取决于接受该触发的对象的状态,响应包括状态的改变或形成一个新的触 发。事件可以看作是信息从一个对象到另一个对象的单向传送,发送事件的对象可能期望对 方的答复,但这种答复也是一个受第二个对象控制下的一个事件,第二个对象可以发送 也可不发送这个答复事件。各事件将信息从一个对象传到另一个对象中去,因此要确定各事 件的发送对象和接收对象。事件跟踪图用来表示事件、事件的接收对象和发送对象。与各种 有关事件的序列关系及山此表现出来的对象之间的交互作用可通过事件跟踪图来表达。 4. 设计模式的基本要素有哪些? 答:设计模式的基本要素包括: (1) 模式名称:一个助记名,它用一两个词来描述模式的问题、解决方案和效果。 (2) 问题:描述了应该在何时使用模式。解释设计问题和问题存在的前因后果,它可 能 描述了特定的设计问题,也可能描述了导致设计方案不灵活的类或对象结构。 (3) 解决方案:描述设计的组成成分,它们之间的相互关系及各自的职责和协作方 式。 解决方案一般并不描述特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用 一个具有一般意义的元素组合(类或对象组合)来解决这个问题。 (4) 效果:描述了模式应用的效果及使用模式应权衡的问题。因为复用是面向对象设 计 的要素之一,所以模式效果包括它对系统的灵活性、扩充性或可移植性的影响。 5. 什么是创建型设计模式,它的口的是什么? 答:创建型设计模式就是用来创建对象的模式,抽象了实例化的过程。创建型模式的LI的 将具体的对象的实例化操作封装起来,客户端只了解自己需要某个实例,但不必了解该实 例的创建过程。这体现了面向对象设计方法中“高内聚,低耦合”的设计原则。 四:综合题(共15分) 课程名称:软件设计模式 7 1. 试举一个例子并设计•类适配器模式的UML结构图。(7分) 2. 定义一个抽象的运动员(Player)基类,具有抽象方法Train方法。然后以该类为基类,派出 BasketballPlayer^ FootballPlayer 等类。(8 分) III抽象类:运动员 public abstract class Player { public abstract void Train(); } public class BasketballPlayer : Player { public override void Train() { Console.WriteLine(\"Basketball players are training...\"); } } public class FootballPlayer : Player { public override void Train() { Console.WriteLine(\"Football players are training...\"); } 课程名称:软件设计模式 8 生 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- howto234.com 版权所有 湘ICP备2022005869号-3
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务