C#复习题

更新时间:2024-04-13 15:36:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一. 知识点串讲 项目一: C#与.NET

1)掌握visual studio 2010 的安装。了解.NET框架的基础知识。(.Microsoft .NET Framework,它是一个开发平台,包括公共语言运行时CLR和.NET类库两部分,在这个平台上,可以使用VB.NET、C#,C++,Delphi.net等语言进行程序开发。) 2)C#是从C, C++派生出来的一种面向对象的编程语言,它具有面向对象的一切特性:封装、继承、多态, 去掉了在C, C++中常被使用的指针操作。

3)C#程序的运行是从主方法main()开始的。在程序中,使用using关键字引入命名空间,使用namespace关键字定义声明名称空间。 通常使用快捷键ctrl+f5进行程序的执行。 项目二: C#语法基础

1)C#语言中个,变量的命名,以字母、下划线或@符号开始的字符序列,后面可以跟字母、数字或下划线。

2)C#程序书写时要遵循原则

3)注释(行注释 // 多行注释 /* */ XML注释方式 ///开头,并包含xml标签。

4)C#中的数据类型P26 值类型与引用类型:

值类型:简单类型、枚举类型、结构类型

引用类型:类类型、接口类型、数组类型、委托类型 5)数据类型转换:隐式转换和显式转换

隐式转换: 字符类型——>整型(浮点型) 低精度——>高精度类型

显式转换: ()转换 convert类转换 parse方法转换 tostring()转换 项目三: 方法

1)方法:相当于C(C++)中的函数,是包含系列语句的代码块,是类中的重要成员。 2)方法的修饰符:

特殊功能修饰符: static virtual override new sealed abstract extern 访问修饰符:public private protected internal protected internal 缺省为private修饰符 3)变量的作用域

方法体内声明的变量在方法体内作用,符合语句中定义的变量在符合语句内起作用。类的成员变量在类的花括号内起作用。

4)方法调用: 静态方法通过类名称调用,非静态方法要通过对象名称来调用, 不能再静态方法中使用this。

5)方法的参数有4中类型: 值参数、 引用形参数、输出参数、数组参数 值参数:将实参赋值一份传递给形参

引用型参数:ref修饰,将实参的地址传递给形参,当在方法体内修改了形参,实参也跟着变化

输出型参数:使用out修饰符,不需用初始化,但在方法体内需要给输出参数赋值 数组型参数:使用params修饰符。

6)方法的重载:在一个类中可以定义多个同名的方法,这些方法通过不同的参数类型或者参数个数来区分,这种方法称为方法的重载。仅返回类型不同的同名函数不能通过编译。 项目四,项目五 分支语句与循环语句。

1) C#语言同C等结构化程序设计语言一样,也有三种基本语句控制结构:顺序、选择、循

环。

2) 条件运算(三目运算、三元运算) 条件?第一表达式:第二表达式 例如: 已知 a=5, b=8, c=4, 则d=a>b?c:b d的值为: 3) while循环

4) foreach语句: foreach(类型 变量名 in 表达式) 循环体;

注意: 循环变量是只读的,更改它的值会引发错误。

5) break 语句,终止对循环的执行,跳转到当前循环外执行。 Continue: 结束本次循环,接着只想下一次循环 项目六 异常处理 1)。程序代码中的错误大致可以分为:语法错误、语义错误(运行错误)和逻辑错误

2)异常类 Exception类是所有异常类的基类,该类的对象可以捕获任何类型的异常,其他派生类的对象只能捕获相应类型的异常。 3)异常处理语句 try??catch??finally

4)在抛出自定义异常时,需要使用throw语句抛出异常。 项目七 类与对象

1)类的定义,注意类的修饰符,缺省为internal p119

2)类的函数成员有:方法,属性,索引器、事件、运算符、构造函数和析构函数。 3)类的数据成员:字段(静态字段、实例字段、只读字段)和常量(const修饰) 4)构造函数 二. 选择题

1. C#与.NET框架关系的描述正确地是(C)。

A. C#是.NET框架的一部分 B. C#支持的特性,.NET都支持 C. C#不是.NET的一部分 D. C# 与.NET是一样的。 2. 以下有关C#源程序叙述错误的是(C)。

A. C#控制台应用程序必须包含一个Main方法。

B. C# Windows窗体应用程序必须包含一个Main方法。 C. C# Web应用程序必须包含一个Main方法。

D. C#中的方法由两部分组成,即方法的头部和方法体。 3. C# 是一种面向(C)的语言。

A. 机器 B. 过程 C. 对象 D. 事物

4. Visual Studio 2010中,在(A)窗口可以查看当前项目的类和类型的层次信息 A. 解决资源方案管理器 B. 类视图 C. 工具箱窗口 D 属性窗口 5. C#程序的运行是从(C)开始的。

A. 按钮的单击事件 B. 自定义的方法 C. 主方法main() D. 随机 6. C# 源程序文件的默认扩展名为(A) A. .cs B. .exe C. .cpp E. .link

7. 引用类型主要有4钟,类类型、数组类型、接口类型和(C)。 A. 对象类型 B. 字符串类型 C. 委托类型 D. 整数类型 8. 下面那些类型不是值类型(B)

A. 布尔类型 B.类类型 C. 枚举类型 D. String类型 9. 以下选项中,哪些类型可以成功地进行隐式转换(A,B,D) A. int 类型到float类型的转换

B. long类型到decimal类型的转换 C. int 类型到char类型的转换

D. float类型到double类型的转换 10. 值参数是( A)的参数。

A. 按值传递 B. 按地址传递 C. 按引用传递 D. 什么也不传递 11. 有关break 语句的描述中,正确地是(B)。 A. 循环体内的break语句用于结束本次循环。 B. 循环体内的break语句用于跳出循环体。 C.在循环体内的break语句可以被执行多次。

D. 当嵌套循环时,break语句可以退出最外层循环。 12 下列有关foreach语句的描述中,不正确的是(D)。 A. foreach 语句是一种循环结构语句。

B. 可以使用foreach语句读取集合或数组中的元素。 C. 可以遍历数组或集合

D.可以使用foreach语句给集合或数组中的元素赋值 13. 关于C#语言的方法,下列中叙述中正确的是(A)。 A. 方法的定义不能嵌套,但方法调用可以嵌套。 B.方法的定义可以嵌套,但方法调用不能嵌套。 C. 方法的定义和调用都不能嵌套。 D. 方法的定义和调用都可以嵌套。

14. 调用重载方法时,系统根据(B)来选择具体的方法

A. 方法名 B. 参数的个数和类型 C. 参数名及参数个数 D. 方法的返回值类型 15. 有两个具有相同名称的函数,当只满足下列选项的(A)条件时,他们不能算作重载函数。

A. 返回值类型不同 B. 参数数目不同 C.参数类型不同 D. 参数的顺序不同

16. 类Class A 有一个名为M1的方法,在程序中有如下一段代码,假设该段代码是可以执行的的,则修饰M1方法时一定使用了(B)修饰符。 ClassA obj=new ClassA(); ClassA.M1();

A. public B. static C. private D. virtual 17. 下面有关重载方法的说法中,正确的是(B)。 A. 重载函数的参数个数必须不同。

B.重载函数必须具有不同的形参列表。 C. 重载函数必须具有不同的返回值类型。 D. 重载函数的参数类型必须不同。

18 下面关于类和对象的说法中,不正确的是(A)。 A. 类是一种系统提供的数据类型。 B. 对象是类的实例。

C.类和对象的关系是抽象和具体的关系。 D.任何对象只能属于一个具体的类。

19. 下面关于类和对象的说法中,不正确的是(C)。 A. 对象是类的一个实例。

B.任何一个对象只能属于一个具体的类。 C.一个类只能有一个对象。

D. 类与对象的关系和数据类型与变量的关系相似。 20. 以下关于类的构造函数说法不正确的是(C)

A. 构造函数必须与类同名 B. 一个类中可以有多个构造函数 C. 构造函数可以声明为virtual D. 默认的构造函数不带任何参数 21. (C)的功能是对对象进行初始化

A. 析构函数 B. 数据成员 C. 构造函数 D. 静态成员函数

22. 当引用数组元素时,关于数组下标的数据类型以下(D )是错误的。 A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式 23. 分析下列C#语句:

namespace classlibrary1 {

class myclass {

public class subclass {

int i; } }

}

是否正确,若需要为myclass 类添加访问修饰符,则应选择(D) A. private B. protected C. internal D. public

24. 类的以下特性中,可以用于方便地重用已有代码和数据的是(C)。 A. 多态 B. 封装 C. 继承 D. 抽象 25. 继承具有(B),即当基类本身也是某一类的派生类时,派生类会自动继承间接基类的成员。

A. 规律性 B. 传递性 C. 重复性 D. 多样性

26. 在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成(C)。

A. sealed B. public C. virtual D. override

27. 已知类B是由类A继承而来。类A中有一个为M的非虚方法,现在希望在类B中也定义一个名为M 的方法,若希望编译时不出现警告信息,则在类B中声明该方法时,应该使用(B)方法。

A. static B. new C. override D. virtual

28. 下面关于析构函数的书法中个,不正确的是(C)。 A.析构函数中不可以包含return 语句。 B.一个类中只能有一个析构函数。 C. 用户可以定义有参析构函数。

D. 析构函数在对象被撤销时被自动调用。

29. 下面关于派生类的描述中,不正确的是(A) A. 派生类可以继承基类的构造函数。 B.派生类可以隐藏和重载基类的成员。 C.派生类不能访问基类的私有成员。 D.派生类只能有一个直接基类。

30. 如果要从派生类中访问基类的成员,可以使用(D)。

A. this 关键字 B. me关键字 C. override 关键字 D. base关键字

31 在C#中,程序使用(B)各语句抛出系统异常或自定义异常 A. run B. throw C. catch D. finally

32. 下列关于try??catch??finally 语句的说明中,不正确的是(D)。 A. catch块可以有多个 B. finally块可以没有 C.catch 块也是可选的。 D. 可以只有try块

33 为了能够在程序中捕获所有的异常,在catch语句括号中使用的类名为(A) A. Exception B DivideByZero C. FormatException D. 以上三个均可 34. 在C#中定义接口时,使用的关键字是(A) A. interface B. : C. class D. overrides 35. 下面关于类和接口的描述中,不正确的是(C)。 A. 类不可以多重继承而接口可以。

B. 抽象类自身可以定义成员而接口不可以。 C. 一个类可以有多个基接口和多个基类。 D. 抽象类和接口都不能被实例化。

36.下列关于方法重载的描述中正确地是(A)。 A. 构成重载的多个方法必须方法名完全一致。 B.构成重载的多个方法应完成相类似的功能。

C. 两个方法仅有返回值类型不同也可以构成重载关系。

D. 构成重载的多个方法,他们的参数类型和参数个数必须不同。 37. 关于接口以下说法正确的是(C)。

A. 接口可以实例化 B. 接口中可以包含已实现的方法。

C. 接口的成员都必须是未实现的 D. 接口的成员前面可以加访问修饰符 38. 假定一个10行20列的二维整形数组,下列哪个定义语句是正确地(C)。 A. int[] arr=new int[10,20]; B. int[] arr=int new[10,20]; C. int[,] arr=new int[10,20]; D. int[,]=new int[20;10];

39. 语句string[,] strArray=new string[3,4];创建了(D)个string 对象。 A. 0 B. 3 C. 4 D. 12

40. 有定义语句int[,] a=new int[5,6];则下列正确地数组元素的引用是(D)。 A. a(3,4) B. a(3)(4) C. a[3][4] D. A[3,4]

41. 下面是几条定义并初始化二维数组的语句,指出其中正确的是(D)。 A. int arr2[][]=new int[4,5]; B. int[][] arr2=new int[4,5]; C. int arr3[,]=new int[4,5]; D. int[,] arr2=new int[4,5];

42.在StreamWriter对象的下列方法中,可以向文本文件写入一行带回车和换行的文本的方法是(A)。

A. WriteLine() B. Write() C. WritetoEnd() D. Read();

43. 在继承中,在子类的成员声明中,可以声明与父类成员同名的成员,这时,须使用的关键字是(B)。

A. void B. new C base D static 44. 下列关于抽象类的描述中正确的是(B)。

A. 抽象类并不是通过对一组相似对象的抽象而得到的。

B.定义抽象类的目的仅仅是让其作为基类产生不同的派生类,简化编程。 C. 一个类既可以是抽象类也可以同时是密封类。 D.抽象类可以实例化对象。 45.Directory类的方法有(ABC)

A. CreateDirectory() B. Delete()

C. GetCurrentDirectory() D. UpdateDirectory()

46. 在.NET Framework 之中,(C)命名空间提供了操作文件和流的类。

A. System.Data B. System.Text C. System.IO D. System.Media 47.下列关键字中不能作为修饰类的有(C)

A. sealed B. abstract C. override D. public

48. 下列(A)项不是面向对象的编程语言

A. C B. JAVA C. C# D. C++

49. 在C#中,表示一个字符串的变量应使用以下(A)条语句定义

A. string str; B cstring str C Dim str as string D char *str 50. 在C#语言中,下列能够作为变量名的是(C) A. if B. 3ab C a_3b D. a-b3

51. 一个C#程序总是调用哪个函数作为开始( C )。

A. main B. MAIN C. Main D. 任意标识符 52 设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( C )。 A. 12 B. 144 C. 156 D. 288

53.设x是一个bool型的逻辑量,y的值为10,则表达式 x && y的值为( C )。 A. 1 B. 0 C. 与x值相同 D. 与x值相反 54. 单击button时,会触发(B)个事件

A. enter B. click C. keypress D. leave 55 如要更改label显示的文本,需要设置其(D)个属性 A. image B. size C. visible D. text 56. 在C#中,下列代码运行后,变量Max的值是(C) Int a=5,b=10,c=15,Max=0;

Max = a>b?a:b;

Max = c

57. 下列不属于.NET开发语言的是(D )

A. C++ B. VB C. C# D. JAVA

58. 所有控件都一定具有的属性是(D )。

A. Text B. BackColor C. Items D. Name 59. 下列数据类型精度最高的是(D)

A. int B. double C. float D. decimal 60. 以下可以进行数据类型转换的是(B)

A. Mod B. Convert C. Const D. Single

61. 在使用ADO.NET访问SQL Server数据库时,必须添加的命名空间是(C )。 A. System.Data.OleDb B. System.Data.Odbc

C. System.Data.SqlClient D. System.Data.OracleClient

二.填空题“

1. .NET框架是生成、运行.NET应用程序和Web Service 的组件库,它主要由()和()两

部分组成。

2. 在编写代码中,通常使用()关键字来定义命名空间,使用()关键字来引入命名空间。 3. 引用类型主要有4种,类类型、数组类型、接口类型和()。 4. C#程序的运行是从()开始的。

5.能正确表示逻辑关系“a>=10 或a<=0”的C#语言表达式的是() 6.已知整型变量a=5, b=4,c=6, d=a>b?(a>c?a:c):b), d的值为()。 7. 程序代码中的错误大致可以分为语法错误、语义错误和()。 8.类的protected类型成员只允许在当前类和()被直接访问。 9.类myclass中的属性count属于()属性。 Class myclass {

int i; int count; {

get {

return i; } } }

10. 在C#语言中,派生出其他类的类称为()或()。 11.一个类可以包含()个构造函数,()个析构函数。 12. 定义虚方法时,需要使用()修饰符。

13. 接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护没有意义,它们默认为(public)方法。

14.在密封类中不能声明受保护成员或虚成员,因为受保护成员只能从()进行访问,而虚成员只能在()重写。

15.密封类的声明,需使用关键字()来修饰。

16. 如果二维数组a有6列,则在a[1,5]前面有(11)个元素。 18.引用命名空间使用关键字(using)。 19.C#语言的运行环境是(VS2010),它提供了对支持.NET框架的所有语言的支持。 20. 在C#中,所有的类都是直接或间接地继承 object类而来的。

21. 如果要在listbox控件中增加一个列表项,需要用( add )方法来实现。

22. 在Visual Studtio 中双击窗体中的某个按钮,则会自动添加该按钮的( click )事件。 23. 对于方法,参数传递分为值传递和(地址传递)两种

24.元素类型为int的10个元素的数组占用(40)字节的存储空间。 25. 类的三大特性是(封装)、(继承)和(多态)。

26.C#中所有的类型实质上都是从(object)类派生而来的。

27. 一般将类的构造方法声明为(public)访问权限,如果声明为private, 就不能创建该类的对象。

28. 元素类型为double的2行5列的二维数组共占用(80)字节的存储空间。 29.加载窗体时触发的事件是(load)。

30.改变窗体的标题,需修改的窗体属性是(text)。

31. 多态性可分为编译时多态和运行时多态。运行时多态有两种实现途径,这两种实现途径

分别是 虚方法 和 抽象类和抽象方法 。

三.判断题:

1. switch语句中可以出现default标签,也可以不出现default标签。(Y)

2. 在try??catch??finally异常处理语句中,catch子句能且只能出现一次。(N ) 3. 在数据类型转化时,只能通过类型转换关键字或CONVERT类实现。(N ) 4. 在定义数组时,不允许为数组中的元素赋值。(N )

5. 接口与类同样是面向对象程序设计的核心,是创建对象的模板。( Y) 6. 使用interval属性设置timer控件tick事件发生的时间间隔单位为秒。(N )

7. 当进入visual studio 集成环境时,如果没有显示“工具箱”窗口,应选择“窗口”菜单,打开工具箱。 (N )

8. 函数成员是包含可执行语句的成员,函数成员总是类类型的成员,不能是命名空间的成员。 ( Y)

10. 使用streamfile类的构造函数不能创建文件。 ( N) 11. 基类不能引用派生类对象。 ( )

12. 在C#中可以使用new修饰符显式隐藏从基类继承的成员。 (Y ) 13. 一个类既可以是抽象类有可以同时是密封类。 (N ) 14. 类的静态成员属于类,不属于某一个类的实例。 (Y ) 15. 抽象类可以引用派生类对象。 () 16 基类对象可以访问派生类成员。 (N) 四、简答、分析与设计

1. 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. public static void Main () {

string a = \ int i1=0,i2=0,i=0;

foreach (char mychar in a) {

if (mychar == 'a') i1++; if (mychar== 'b') i2++; }

Console.WriteLine(i1+ \ \ }

4 4(输出a,b的个数)

3. 以上程序可以用while循环来代替 public static void Main () {

string mystring = \; int i1=0,i2=0,i=0; char a; ;

while(i

a = mystring.ToArray()[i]; if (a=='a') i1++; if (a=='c') i2++; i++; }

Console.WriteLine(i1+ \ + i2);

}

4. 将下面的while循环改为for循环语句 While(i<=100) {

sum=sum+i; i++; }

5. 类与对象的关系是什么?举例说明两者之间的联系与区别。 类与对象是面向对象世界的基石。

类:是对自然现象或实体的程序语言描述,对象是对类的实例化。 类与对象的关系是抽象与具体的关系,如:手机与Iphone 5的关系。

6. 写出下列程序的运行结果 16 18 14

int[] a = new int[] {16,18,20,14, 22}; foreach (int var in a) {

if (var>18) continue;

Console.Write(var.ToString() + \); }

7. 多态是面向对象编程语言的重要特征,虚方法和抽象类均可以实现多态,请指出它们实现多态性的方式有哪些不同?

8.接口和抽象类具有很多相似之处,当然也有许多不同,请你指出这两者之间有何异同点。 9. 以下代码用来读写特定的文件:

using System;

using System.Collections.Generic; using System.Linq; using System.Text; using System.IO;

namespace _1 {

class Program {

static void Main(string[] args) {

string filename = \我的文档\\\\accp.txt\; if (!File.Exists(filename)) {

Console.WriteLine(\不存在!\,filename ); return; }

StreamReader sr = File.OpenText(filename); string input;

while((input=sr.ReadLine())!=null) Console.WriteLine(input); Console.WriteLine(); sr.Close(); } } }

请仔细阅读以上代码段,检查是否有错误,若有,请改正,并写出程序的运行结果。

10. 什么是嵌套类,并举例说明

11. 仔细阅读以下程序段,请指出其中的错误并改正。 namespace exe

{

class Program {

static void Main(string[] args) {

mobile phone = new mobile(); phone.company = \; phone.model = \; mobile.company = \; mobile.model = \; }

}

class mobile {

string company; static string model; void mobile1() {

company = \; model = \; }

static void mobile2() {

company = \; model = \; } } }

12. 以下程序段的功能是从键盘输入9个整数,组成一个3行3列的矩阵,在这个矩阵中找出矩阵的鞍点。所谓鞍点,是指矩阵中某个数是它所在行的最大值,所在列的最小值。矩阵中可能没有鞍点,最多只有一个鞍点。请仔细阅读该段程序,并填空。 namespace 鞍点 {

class Program {

static void Main(string[] args) {

int[,] a = new int[3, 3]; int max, max_col=0; int min, min_row=0; int flag = 0;

for (int i = 0; i < 3; i++) {

for (int j = 0; j < 3; j++) {

a[i, j] = Convert.ToInt16(Console.ReadLine()); } }

for (int i = 0; i < 3; i++) {

max = a[i, 0];

for (int j = 1; j < 3; j++) {

if (max < a[i, j]) {

max = a[i, j]; max_col = j; } }

min = a[0, max_col];

for (int k = 1; k < 3; k++) {

if (min > a[k, max_col]) {

min = a[k, max_col]; min_row = k; }

}

if (min_row == i) {

flag = 1; break; } }

if(flag==1)

Console.WriteLine(\鞍点是a[{0},{1}]的元素,值|为{2}\, min_row, max_col, a[min_row, max_col]); else

Console.WriteLine(\这个矩阵没有鞍点\); } } }

12. 定义一个类triangle, 该类有三个公有静态变量a,b,c 分别表示三角形的三条边长,在该类

中定义方法girth(),用于计算三角形的周长;定义方法area(),用于计算三角形的面积。并在main()方法中,提示用户输入三个数据,判断这三个数据是否可以构成一个三角形,若可以,调用triangle类中的方法,计算三角形的周长和面积,并屏幕输出;若不可以,则提示用户重新输入数据。

13. sealed关键字能与Abstract关键字同时使用吗?为什么?

14. 编写一个程序,定义三个float类型的变量,分别从键盘上输入值给他们,然后用if??else 语句找出他们中的最小数,最后输出。

15. 编写程序,统计100以内所有能被3整除的自然数的个数。

16. 什么是继承,派生类的定义格式是什么?

17. 什么是多态,多态可以分为哪几类,各自的实现途径是什么? 18简述ADO.NET的架构。

19. 以下程序段是否有错误,若有错误,请改正,并写出程序的运行结果。 static void Main(string[] args) {

int s = 0;

for (int i = 1; ; i++) {

if (s > 20) break;

if (i % 2 == 0) s += i; }

Console.WriteLine(\,i,s); }

20. 已知有一个main()程序,代码如下:

class Program {

static void Main(string[] args) {

int a;

Console.WriteLine(\调用方法,绘制三角形,请输入三角形的边长:\); a = int.Parse(Console.ReadLine()); triangle.dengbian(a); } }

运行时,从键盘输入3,则程序的运行结果如图所示。现在请你定义triangle类,该类中有一个方法dengbian(),用于实现三角形的打印。

21.编写代码,实现在f盘根目录下创建文件夹”我的文档”,若文件夹已经存在,则屏幕输出“文件夹已经存在”。

22.编写代码,实现在以上文件夹中创建文本文件1.txt, 并在文件中写入文字“我是中国人!”

23. 编写代码,在查看f盘根目录下的“我的文档”文件夹是否存在,若存在,则将该文件夹删除,否则,屏幕输出“文件夹不存在!”。

24. 阅读以下代码,该程序段中共有4出错误,请找出并并给出错误原因。最后给出程序的输出结果。

class Program {

static void Main(string[] args) {

test t1 = new test(100,200); t1.x = 40; t1.cnt = 0; int z = t1.y; z = test.intmax; Console.WriteLine(z); } }

public class test {

public const int intmax=int.MaxValue ; public int x = 0;

public readonly int y = 0; public static int cnt = 0; public test(int x1, int y1) {

x = x1; y = y1; cnt++; }

public void modify(int x1, int y1)

{

intmax = 0; x = x1; cnt = y1; y = 10;

} }

25写出下列代码的运行结果。

class Program {

static void Main(string[] args) {

A a = new B(); a.fun(); } }

public abstract class A {

public A() {

Console.WriteLine('A'); }

public virtual void fun() {

Console.WriteLine(\); } }

public class B : A {

public B() {

Console.WriteLine('B'); }

public override void fun() {

Console.WriteLine(\); }

本文来源:https://www.bwwdw.com/article/67sp.html

Top