C#期末考试试题 联系客服

发布时间 : 星期三 文章C#期末考试试题更新完毕开始阅读363423eb04a1b0717fd5ddeb

LE(ref x, ref y);

Console.writeLine (x + “ “ +y); } }

答案:25 10 25 10

8.写出以下程序的功能。

static void WA(ref int[] a, int n) { for(int i=0;i

答案:采用选择排序的方法对数组a中的n个整数按照从小到大的次序重新排列。

9. 写出以下程序的运行结果。 using System; class Test {

public static void Main () {

int[ ] a ={2,4,6,8,10,12,14,16,18}; for (int i=0; i<9; i++) { Console.write(“ ”+a[i]);

if ((i+1)%3==0) Console.writeLine(); } } }

答案:2 4 6

8 10 12 int k=i;

for(int j=i+1;j

if(a[j]

int x=a[i]; a[i]=a[k]; a[k]=x; }

14 16 18

10. 写出以下程序运行结果。 using System; class Test {

public static void Main () {

int s=0;

for (int i=1; ; i++) { if (s>50) break; if (i%2==0) s+=i; }

Console.writeLine (\s=\+ i + \+ s); } }

答案:i,s = 15, 56

五、简答题(10分,每题5分)

1.如何区别重载方法?

不同的参数类型,不同的参数个数,不同的参数顺序

2.C#用多种修饰符来表达类的不同性质。根据其保护级C#的类有五种不同的限制修饰符,请写出并指出它们之间的区别是什么?

答:

public 可以被任意存取

protected只可以被本类和其继承子类存取

internal只可以被本组合体(Assembly)内所有的类存取,组合体是C#语言中类被组合后的逻辑单位和物理单位,其编译后的文件扩展名往往是“.DLL”或“.EXE”。

protected internal唯一的一种组合限制修饰符,它只可以被本组合体内所有的类和这些类的继承子类所存取。

private只可以被本类所存取。

3.接口和抽象类的区别是什么?

答:接口用于规范,抽象类用于共性。接口中只能声明方法,属性,事件,索引器。而抽象类中可以有方法的实现,也可以定义非静态的类变量。抽象类是类,所以只能被单继承,但是接口却可以一次实现多个。抽象类可以提供某些方法的部分实现,接口不可以.抽象类的实例是它的子类给出的。接口的实例是实现接口的类给出的。在抽象类中加入一个方法,那么它的子类就同时有了这个方法。而在接口中加入新的方法,那么实现它的类就要重新编写(这就是为什么说接口是一个类的规范了)。接口成员被定义为公共的,但抽象类的成员也可以是私有的、受保护的、内部的或受保护的内部成员(其中受保护的内部成员只能在应用程序的代码或派生类中访问)。此外接口不能包含字段、构造函数、析构函数、静态成员或常量。

4.什么是抽象类?

答案:抽象类是含有一个或多个抽象方法的类,抽象类不能实例化。

基于C#的OOP技术课程 复习题

一、 判断题(本大题共10个小题,每小题1分,共10分)

1. 在同一行上可以书写多条语句,每条语句间用分号分隔。(t )

2. 在数据类型转化时,只能通过类型转换关键字或Convert类实现。(f ) 3. 接口与类同样是面向对象程序设计的核心,是创建对象的模版。(F ) 4. 委托是将方法作为参数传递给另一方法的一种数据类型。事件与委托没有

关系。(F )

5. 可以重写私有的虚方法。(T )

6. 使用Directory类的Move()方法可以删除文件。(T ) 7. 不能指定接口中方法的修饰符。(T )

8. 在定义数组时不允许为数组中的元素赋值。(F )

9. 接口与类同样是面向对象程序设计的核心,是创建对象的模版。( ) 10.如果要实现重写,在基类的方法中必须使用virtual关键字,在派生类的

方法中必须使用overrides关键字。(T )

11.在C#中,所有类都是直接或间接地继承System.Object类而得来的。(T

)

12.在C#中,任何方法都不能实现多继承。(F ) 13.在C#中,子类不能继承父类中用private修饰的成员变量和成员方法。(F

)

14.可以阻止某一个类被其他类继承。(T )

15.使用FileInfo类的Copy()方法可以复制文件。(T )

二、选择题(本大题共20个小题,每小题2分,共40分) 1. 在 C#中,表示一个字符串的变量应使用以下哪条语句定义? B

A.CString str; B.string str;

C.Dim str as string D.char * str;

2. C#中 MyClass 为一自定义类,其中有以下方法定义:A

public void Hello(){?}

使用以下语句创 建了该类的对象,并使变量 obj 引用该对象,那么,访问类MyClass的Hello方法正确的是:

MyClass obj = new MyClass(); A.obj.Hello(); B.obj::Hello(); C.MyClass.Hello(); D.MyClass::Hello();

3. 分析下列程序中类 MyClass 的定义 D

class BaseClass { public int i; } class MyClass:BaseClass { public new int i;}

则下列语句在 Console 上的输出为_______. MyClass y = new MyClass(); BaseClass x = y; x.i = 100;

Console.WriteLine(\提示:注意类 MyClass 中的 new 关键字)

A.0, 0

B.100, 100 C.0, 100 D.100, 0

4. 在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以

处理不同的派生类的需要,则应将该方法声明成_C___? A.sealed 方法 B.public 方法 C.virtual 方法 D.override 方法