内容发布更新时间 : 2024/12/23 18:51:01星期一 下面是文章的全部内容请认真阅读。
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++) { (“ ”+a[i]); if ((i+1)%3==0) (); } } } 答案:2 4 6 8 10 12 14 16 18 int k=i; for(int j=i+1;j if(a[j] int x=a[i]; a[i]=a[k]; a[k]=x; } 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; } (\ } } 答案:i,s = 15, 56 五、简答题(10分,每题5分) 1.如何区别重载方法 不同的参数类型,不同的参数个数,不同的参数顺序 #用多种修饰符来表达类的不同性质。根据其保护级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#中,所有类都是直接或间接地继承类而得来的。(T ) 12.在C#中,任何方法都不能实现多继承。(F ) 13.在C#中,子类不能继承父类中用private修饰的成员变量和成员方法。(F ) 14.可以阻止某一个类被其他类继承。(T ) 15.使用FileInfo类的Copy()方法可以复制文件。(T ) 二、选择题(本大题共20个小题,每小题2分,共40分) 1. 在 C#中,表示一个字符串的变量应使用以下哪条语句定义 B str; str; str as string * str; 2. C#中 MyClass 为一自定义类,其中有以下方法定义:A public void Hello(){…} 使用以下语句创 建了该类的对象,并使变量 obj 引用该对象,那么,访问类MyClass的Hello方法正确的是: MyClass obj = new MyClass(); 3. 分析下列程序中类 MyClass 的定义 D class BaseClass { public int i; } class MyClass:BaseClass { public new int i;} 则下列语句在 Console 上的输出为_______. MyClass y = new MyClass(); BaseClass x = y; = 100; (\确定 4. 能正确表示逻辑关系“a>=10 或 a<=0”的 C#语言表达式是_D___? >=10 or a<=0 >=10|a<=0 >=10&&a<=0 >=10||a<=0 5. 以下关于 for 循环的说法不正确的是__A__? 循环只能用于循环次数已经确定的情况 循环是先判定表达式,后执行循环体语句 循环中,可以用 break语句跳出循环体 循环体语句中,可以包含多条语句,但要用花括号括起来? 6. 有如下程序 Using system; C Class Example1 { Public Static void main() { Int x=1,a=0,b=0; Switch(x) { Case 0:b++,break; Case 1:a++,break; Case 2:a++,b++;break; } (“a={0},b={1}”,a,b); } }的输出结果是 =2,b=1 =1,b=1 =1,b=0 =2,b=2 7. 关于 C#语言的方法,下列叙述中正确的是_A___? A.方法的定义不能嵌套,但方法调用可以嵌套 B.方法的定义可以嵌套,但方法调用不能嵌套 C.方法的定义和调用都不能嵌套 D.方法的定义和调用都可以嵌套 8. 下列程序的结果是: B Using system; Class Example1 { Static long fib(int n) { If(n>2) return(fib(n-1)+fib(n-2)); Else rerurn(2); } Public Static void main() { (“{0}”,fib(3)); } } 9. 调用重载方法时,系统根据___B_____来选择具体的方法? A.方法名 B.参数的个数和类型 C.参数名及参数个数 D.方法的返回值类型 10.下列的___D____不是构造函数的特征? A.构造函数的函数名和类名相同 B.构造函数可以重载 C.构造函数可以带有参数 D.可以指定构造函数的返回值 11.已知类 B 是由类 A继承而来,类 A 中有一个为 M 的非虚方法,现在希 望在类 B 中也 定义一个名为 M 的方法,若希望编译时不出现警告信息,则在类 B中声明该方法时,应使 用____B____方法?