发布时间 : 星期三 文章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 方法