《软件设计模式》在线平时作业2
试卷总分:100 得分:100
一、单选题 (共 10 道试题,共 50 分)
1.C#中导入某一个命名空间的关键字是:
A.using
B.use
C.include
D.import
2.C#中执行下列语句后整型变量X和Y的值是多少?
Int x = 100;
Int y = ++x;
A.x =101 y = 101
B.x = 101 y = 100
C.x = 100 y = 101
D.x = 100 y = 100
3.类MyClass 中有下列方法定义:
public void testParams(params int[] arr)
{
Console.Write ("使用Params参数!");
}
public void testParams(int x,int y)
{
Console.Write ("使用两个整型参数!");
}
请问上述方法重载有无二义性?若没有,则下列语句的输出为( )
MyClass x = new MyClass();
x.testParams(0);
x.testParams(0,1);
x.testParams(0,1,2);
A.有语义二义性;
B.使用Params 参数!使用两个整型参数!使用两个整型参数!
C.使用Params 参数!使用两个整型参数!使用Params 参数!
D.使用Params 参数!使用Params 参数!使用Params 参数!
4.以下标识符中,正确的是:
A.xl0#
B.sizeof
C._nName
D.16A
5.在C#中,下列哪些语句可以创建一个具有3 个初始值为""的元素的字符串数组?
A.string[] StrList = {"","",""};
B.string[] StrList = new string[3];
C.string[3] StrList = {"","",""};
D.string[3] StrList = {"","",""};
6.下列语句创建了多少个string 对象?
string[,] strArray = new string[3][4];
A.4
B.3
C.12
D.0
7.在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成_________。
A.visual 方法
B.sealed 方法
C.public 方法
D.override 方法
8.以下描述错误的是( )
A.在C#中要在派生类中重新定义基类的虚函数必须在前面加Override
B.在C++中支持抽象类,但在C#中不支持抽象类。
C.在C#中可使用 new 修饰符显式隐藏从基类继承的成员。
D.C++中可在头文件中声明类的成员,而在CPP文件中定义类的成员;在C#中没有头文件并且在同一处声明和定义类的成员。
9.分析下列语句:
namespace TestCS{
public delegate void Hello(string target);
}
该语句的作用是:( )
A.在TestCS 命名空间中定义了了一个名为Hello 的委托类型;
B.在TestCS 命名空间中定义了一个名为Hello 的函数指针;
C.在TestCS 命名空间中定义了一个名为Hello 的全局方法;
D.在TestCS 命名空间中声明了函数Hello 的原型;
10.while语句循环结构和do…while语句循环区别的区别在于:
A.无论条件是否成立,while语句都要执行一次循环体
B.while语句的执行效率较高
C.do…while语句编写程序较复杂
D.do…while循环是先执行循环体,后判断条件表达式是否成立,而while语句是先判断条件表达式,再决定是否执行循环体
二、判断题 (共 10 道试题,共 50 分)
11.在c#中,下列创建数组的语句是否合法?
Int[] iArray = new int[ null ];
12.声明为abstract类的方法必须同时进行声明和实例化。
13.创建型模式和结构型模式强调的都是静态的类实体之间的关系,行为型设计模式则着力解决类实体之间的通信关系。
14.面向对象程序设计的代码重用包括内部重用(即本项目内的代码重用)和外部重用(即新项目重用旧项目的代码)。
15.面向对象的分析和设计是一个多次反复迭代的过程。
16.喷泉模型主要用于面向过程的软件项目。
17.当我们定义一个新类的时候,除了考虑当前应实现的功能,还应考虑以后的复用。
18.软件系统是用例模型的一个组成部分。
19.人机交互子系统的设计内容就是用户如何命令系统。
20.对象与对象之间的关系可以分为三类:包含、继承和关联。