net考试题答案
net笔试题目答案

net笔试题目答案net笔试题目答案一、.net基础1、a=10,b=15,请在不使用第三方变量的状况下,把a、b的值互换答:小学算法,加法交换律和加法结合律int a=a+b; int b=a-b;int a=a-b;2、session宠爱丢值且占内存,Cookis担忧全,请问用什么方法代替这两种原始的方法答:redis 或者memcache。
当然,微软也提供了解决方案。
iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sate server或SQL Server数据库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件。
3、如何处理几十万条并发数据?答:用存储过程或事务。
取得最大标识的时候同时更新..留意主键不是自增量方式这种方法并发的时候是不会有重复主键的..取得最大标识要有一个存储过程来获取.4、62-63=1 等式不成立,请移动一个数字(不行以移动减号和等于号),使得等式成立,如何移动?答案:62移动成2的6次方5、和有什么区分?答:表示绑定的数据源,是服务器端代码块6、页面生命周期简洁描述每个页面的.生命周期为用户的每一次访问,也就是说每一次客户端与服务器之间的一个往返过程.全局变量的生命周期在此之间.1. Page_Init();2. Load ViewState and Postback data;3. Page_Load();4. Handle control events;5. Page_PreRender();6. Page_Render();7. Unload event;8. Dispose method called;7、写出程序的输出结果public abstract class A{public A(){Console.WriteLine(A);}public virtual void Fun(){Console.WriteLine("A.Fun()');}}public class B: A{public B(){Console.WriteLine(B);}public new void Fun(){Console.WriteLine("B.Fun()'); }public static void Main() {A a = new B();a.Fun();}}答案:ABA.Fun()8、写出程序的输出结果:public class A{public virtual void Fun1(int i) {Console.WriteLine(i);}public void Fun2(A a){a.Fun1(1);Fun1(5);}}public class B : A{public override void Fun1(int i) {base.Fun1 (i + 1);}public static void Main(){B b = new B();A a = new A();a.Fun2(b);b.Fun2(a);}}答案:25169、在下面的例子里using System;class A{public A(){PrintFields();}public virtual void PrintFields(){} }class B:A{int x=1;int y;public B(){y=-1;}public override void PrintFields(){Console.WriteLine(x={0},y={1},x,y);}当使用new B()创建B的实例时,产生什么输出?答:X=1,Y=0;x= 1 y = -110、如何提高.NET的性能1.使用异步方式调用Web服务和远程对象只要有可能就要避开在请求的处理过程中对Web服务和远程对象的同步调用,因为它占用的是的 线程池中的工作线程,这将直接影响Web服务器响应其它请求的能力。
net面试题(程序员必看 附答案)

NET面试题一想看答案往下翻.NET技术题1.类成员有几种可访问性?2.用sealed修饰的类有什么特点3.执行下面代码后:String strTemp ="abcdefg 某某某";Int i System.Text.Encoding.Default.GetBytes(strTemp).Length;Int j = strTemp.Length;1.问:i,j分别为多少并说明理由4.概述三层结构体系?中读写XML的类都归属于哪些命名空间?6.a=10,b=15,在不用第三方变量的前提下,把a,b的值互换?7.对数据的并发采用什么办法进行处理较好。
8.override与重载的区别?9.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?10.什么叫应用程序域11.CTS、CLS、CLR分别作何解释12.什么是装箱和拆箱13.什么是Code-Behind技术14.GC是什么? 为什么要有GC15.接口是否可继承接口? 抽像类是否可实现(implements)接口? 抽像类是否可继承实体类(concreteclass)?16.数组有没有length()这个方法? String有没有length()这个方法?17.堆和栈的区别?18.请指出GAC的含义19.DataReader与Dataset有什么区别20.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?21.C/S结构模式与B/S结构模式的主要区别是什么22.C#中的数组类型有何特点?23.ASP。
NET与ASP相比,主要有哪些进步?24.结构和类的区别是什么?25.&和&&的区别26.<%#%>和<%%>有什么区别?27.在中,下列代码运行后的输出结果是?DataTable dt = new DataTable();dt.Columns.Add(“编号“,typeof(System.Int16));dt.Columns.Add(“成绩“,typeof(System.Int16));for(int i=1; i<=3;i++){dataRow dr = dt.NewRow();dr[0]=i;dr.rows.Add(dr);}Console.WriteLine(dt.Columns.Count);28.下面的代码中有什么错误吗?_______ing System;class A{public virtual void F(){Console.WriteLine("A.F");}}abstract class B:A{public abstract override void F();2.}29.下面这段代码输出什么?为什么?int i=5;int j=5;if (Object.ReferenceEquals(i,j))Console.WriteLine("Equal");elseConsole.WriteLine("Not Equal");30.请编程实现一个冒泡排序算法?SqlServer 技术题31.触发器的作用?32.什么是存储过程?用什么来调用?33.什么是内存泄漏?34.动态查询如何实现?表的结构变化后,如果不需要修改程序,如何设计和实现查询35.触发器分为事前触发和事后触发,这两种触发有和区别。
.net期末考试 复习题(答)

一、选择题 1、下列标记不属于HTML 文档的基本结构的是:( D ) A <html> B <body> C <head> D <form> 2、请问下面程序段执行完毕,页面上显示内容是什么:( C ) Response.Write (“<a href=''>新浪</a>”) A 新浪 B <a href=''>新浪</a> C 新浪 D 该句有错,无法正常输出 3、Session 对象的默认有效期为多少分钟:( C ) A 10 B 15 C 20 D 应用程序从启动到结束 4、下面哪一个对象用于与数据源建立连接:( B ) A Command B Connection C DataReader D DataAdapter 5、Global.asax 文件中Session_Start 事件何时激发( B ) A 在每个请求开始时激发 B 尝试对使用进行身份验证时激发 C 启动会话时激发 D 在应用程序启动时激发 6、下面哪一个文件是全局配置文件( B ) A Global.asax B Web.config C Styles.css D AssemblyInfo.vb 7、需要写入与HTML 标记相同的文本时,应利用以下何种方法进行编码:(D ) A Response.Server.(HtmlEncod e (“<B>”)) B Response.Write(“Server.HtmlEncode (“<B>”)”) C Response.Write(Server.HtmlEncode (“<B>”)) D Server.Server(Write.HtmlEncode (“<B>”)) 8、下列说法正确的是(B ) A 页面上有动态的东西就是动态网页 B 静态网页内容固定,交互性能比动态网页差 C ASP 、JSP 和 技术都是把脚本语言嵌入到HTML 文档中 D 程序和ASP 程序一样都是解释执行 9、下面关于HTML 的描述错误的是( D ) A 超文本标记语言,一种为Internet 文档设计的标记语言 B 与操作系统平台的选择无关,只要有浏览器就可以运行HTML 文档 C 所有的标记都是成对出现 D 由浏览器解释HTML 标记符号并以它们指定的格式把相应的内容显示在屏幕上 10、下列关于 的验证控件描述错误的是( A ) A 在客户端和服务器端都能进行验证 B 其客户端验证和服务器端验证对所有浏览器都适用 C 如果页面调用了多个验证控件,当有其中的一个验证未通过时,整个页面不会被通过验证 D 一个服务器控件可同时被多个验证控件验证 11、在 应用程序中访问Access 数据库时,需要导入的命名空间为(B ) A System.Data.Oracle B System.Data. SqlClient C System.Data. ODBC D System.Data.OleDB 12、如果需要确保用户输入大于30的值,应该使用( C )验证控件 A RequiredFieldValidator B CompareValidator C RangeValidator D RegularExpressionValidator 13、下面哪一个不是网页文件的后缀名 ( D ) A htm B aspx C asp D txt 14、在Visual Studio 中新增Web 页面,应该右击解决方案资源管理器,然后点击(A )。
.net程序设计——考试题库及答案

c#中的三元运算符是( )
收藏 A. ?: B. + C. & D. =
回答错误!正确答案: A
__ 是确保使用先进先出的方式来访问项的容器。
收藏 A. 栈 B. 堆 C. 队列
回答错误!正确答案: C
如果调用者希望从事件源分离,可以调用 car 类型另外一个叫做__ 的方法。
回答错误!正确答案: C
以下哪个对象表示数据视图
收藏 A. dataview B. datatable C. datareader D. dataset
回答错误!正确答案: A
在 visio studio 中,要启动调试的快捷是哪一个
收藏 A. F8 B. F5 C. F2 D. F12
回答错误!正确答案: B
回答错误!正确答案: A
C#导入某一命名空间的关键字是()
收藏 A. use B. import C. using D. include
回答错误!正确答案: C
____是通常通过给定的数据连接被填充的窗口部件。
收藏 A. 数据相关控件 B. 顺序工作流 C. 数据绑定
回答错误!正确答案: A
关于在方法中使用 out 参数的说法,哪一个不正确
以下哪种说法是不正确的收藏派生类可通过base关键字调用其直接基类构造函数派生类的析构函数和基类的析构是相同的只是析构函数的执行顺序正好与构造函数相反即先调用派生类的析构函数然后再调用基类的析构函数派生类在创建对象时将执行其默认的构造函数回答错误
当希望执行一段语句直到满足某个终止条件时应该使用()。
收藏 A. do/while 循环 B. for 循环 C. while 循环 D. foreach/in 循环
.net笔试考题及答案

1.`简述在C#语言中public、protected、private、internal、protected internal 5个修饰符的作用。
(5分)答案:a.private修饰private,私有修饰符,用于设置类或类成员的访问权限仅为所属类的内部。
需要访问私有类成员时,可通过get和set访问器读取或修改。
b.protected修饰符protected修饰符用于设置类或类成员的访问权限仅为所属类及子类的内部。
c.internal修饰符internal,C#默认的类访问修饰符,修饰类或类成员的访问权限为同一程序集内部。
d.public修饰符public,公共访问权限修饰符,修饰类或类成员的访问权限没有任何限制。
大多数情况下须谨慎使用public修饰符,因为滥用将影响类的封装性,并且带来安全隐患。
e.protected internal修饰符protected internal修饰符,修饰类或类成员的访问权限在子类中或同一程序集内。
如果要声明成员只能被同一程序集内的派生类(子类)访问,则应首先设置所属类为internal,成员设置为protected 。
2.共3小题,共9分。
a). 什么是装箱(boxing)和拆箱(unboxing)?请简述.NET对于装箱及拆箱的具体实现方式。
(5分)b). 在下面的例子中,哪些语句用到了装箱拆箱?你能对最后一句代码进行优化提高它的效率吗? (2分)public static void Main(){Int32 v = 5;Object o = v;v = 123;Console.WriteLine(v + ", " + (Int32)o);}c). 你知道.NET对拆箱有什么要求吗?下面的代码可以正确运行吗?如果不行该如何修改? (2分)static void Main(string[] args){int a = 1;object o = a;double b = (double)o;}答案:a.装箱和拆箱:任何值类型、引用类型可以和object(对象)类型之间进行转换。
net面试题与答案(选择、填空、简答)(免费下载)

.net面试题选择题1.以下叙述正确的是:(BC)A. 接口中可以有虚方法B. 一个类可以实现多个接口C. 接口不能被实例化D. 接口中可以包含已实现的方法2.从数据库读取记录,你可能用到的方法有:(BCD)A. ExecuteNonQueryB. ExecuteScalarC. FillD. ExecuteReader3.以下关于ref和out的描述哪些项是正确的?(多选) (ACD)A. 使用ref参数,传递到ref参数的参数必须最先初始化B. 使用out参数,传递到out参数的参数必须最先初始化C. 使用ref参数,必须将参数作为ref参数显式传递到方法D. 使用out参数,必须将参数作为out参数显式传递到方法4.在对SQL Server 数据库操作时应选用 (A)A. SQL Server .NET Framework 数据提供程序B. OLE DB .NET Framework 数据提供程序C. ODBC .NET Framework 数据提供程序D. Oracle .NET Framework数据提供程序5.下列选项中,(C) 是引用类型A. enum类型B. struct类型C. string类型D. int类型6.关于中的代码隐藏文件的描述正确的是 (C)A. Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。
编程逻辑唯一与用户界面不同的文件中。
该文件称作为"代码隐藏"文件,如果用C#创建,该文件将具有".ascx.cs"扩展名B. 项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件C. 项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库 (.dll)文件D. 以上都不正确7.以下描述错误的是 (A)A. 在C++中支持抽象类而在C#中不支持抽象类B. C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员C. 在C#中可使用 new 修饰符显式隐藏从基类继承的成员D. 在C#中要在派生类中重新定义基类的虚函数必须在前面加Override8.C#的数据类型有 (A)A.值类型和调用类型;B.值类型和引用类型;C.引用类型和关系类型;D.关系类型和调用类型;9.下列描述错误的是 (D)A. 类不可以多重继承而接口可以B. 抽象类自身可以定义成员而接口不可以C. 抽象类和接口都不能被实例化D. 一个类可以有多个基类和多个基接口10.下列关于构造函数的描述正确的是 (C)A. 构造函数可以声明返回类型。
.net笔试测试题(含参考答案)

.net笔试测试题(含参考答案).net笔试测试题(含参考答案)-惠普1. 填空:(1)面向对象的语言具有________性、_________性、________性。
(2)能用foreach遍历访问的对象需要实现 ________________接口或声明________________方法的类型。
(3)列举中的五个主要对象_______________、_____________、_______________、_______________、_________________。
2. 不定项选择:(1) 以下叙述正确的是:A. 接口中可以有虚方法。
B. 一个类可以实现多个接口。
C. 接口不能被实例化。
D. 接口中可以包含已实现的方法。
(2) 从数据库读取记录,你可能用到的方法有:A. ExecuteNonQueryB. ExecuteScalarC. FillD. ExecuteReader3. 简述 private、 protected、 public、 internal 修饰符的访问权限。
4. 写出一条Sql语句:取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键, 注意:ID可能不是连续的。
)5 .列举 页面之间传递值的几种方式。
6. 写出程序的输出结果class Class1 {private string str = "Class1.str";private int i = 0;static void StringConvert(string str) {str = "string being converted.";}static void StringConvert(Class1 c) {c.str = "string being converted.";static void Add(int i) {i++;}static void AddWithRef(ref int i) { i++;}static void Main() {int i1 = 10;int i2 = 20;string str = "str";Class1 c = new Class1();Add(i1);AddWithRef(ref i2);Add(c.i);StringConvert(str); StringConvert(c);Console.WriteLine(i1); Console.WriteLine(i2); Console.WriteLine(c.i); Console.WriteLine(str); Console.WriteLine(c.str);}}7.写出程序的输出结果public abstract class A{public A(){Console.WriteLine('A');public virtual void Fun() {Console.WriteLine("A.Fun()"); }}public class B: A{public B(){Console.WriteLine('B');}public new void Fun(){Console.WriteLine("B.Fun()"); }public static void Main() {A a = new B();a.Fun();}}8. 写出程序的输出结果:public class A{public virtual void Fun1(int i) {Console.WriteLine(i);}public void Fun2(A a)a.Fun1(1);Fun1(5);}}public class B : A{public override void Fun1(int i){base.Fun1 (i + 1);}public static void Main(){B b = new B();A a = new A();a.Fun2(b);b.Fun2(a);}}9. 一列数的规则如下: 1、1、2、3、5、8、13、21、34......求第30位数是多少,用递归算法实现。
NET开发人员考试题目(新)答案

public void MyMethod2(out int i) { i=1; } } 答: MyMethod1的重载不合法,不同的“访问修饰符”和“返回值类型”不 作为不同的函数签名。(5分) MyMethod2的重载是合法的。(5分) (5)计算下面代码中x和y的值(10分) double a = 7.5, b = 3, c = 2.5; double x = 2 / c + a / b - (int)a / c; double y = a % c + a % b - (int)a % c; 答: x=0.5(5分) y=-0.5(5分) (6)找出下面代码中的错误(14分) class Program { int x=1; static in y=2; //类型定义使用错误的关键字,应该是int(2 分) const int z=3; //构造函数 public Program() { x=5; y=10; } Static Program() //static关键字的首字母应小写(2分) { x=5; //在静态函数中,不能给非静态的变量赋值(2分) y=10; } //方法 Static void Main() //static关键字的首字母应小写(2分)
{ Program p=new Program(); Console.WriteLine(p.x); Console.WriteLine(p.y); //不能使用实例访问静态成员(2 分) Console.WriteLine(p.z); //不能使用实例访问静态成员(2 分) } void F() //不会被执行(2分) { x *=2; y *=2; } } (7)总结一下有哪些办法可以使一个类不能被创建实例(15分) 答: 1.定义为一个静态类;(5分) 2.定义为一个抽象类;(5分) 3.构造函数定义为私有类。(5分) (8)下面的代码中是否存在错误?如果存在,请指出并加以修正(10 分) public class A { } public class B : A { protected A m_A; public B() { m_A=new B();//选出错误(5分),将B改为A(5分)。 } } 答: (9)请写出分页存储过程(20分) Table Name UserT ID(PK) Name Age Sex
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、填空题:1. CLR直接打交道的对象是程序集。
2. IL是一种基于汇编的语言。
3. 一个托管PE文件包含4部分:PE表头,CLR表头,元数据,IL代码4. 元数据表划分为3大类:定义表引用表、和清单表。
5. 所有类型的基类型是 object 。
6. 对象克隆有两种方式是浅拷贝和深拷贝7. float f=-123.567F;int i=(int)f;i的值现在是_ -123 ___。
8. .NET 中提供了三种模式来回收内存资源:dispose模式,finalize方法,close方法9. 委托声明的关键字是___ delegate __。
10. CLR托管堆只支持 3 个代龄: 0,1,2 ,初始化时,为它们分配的阙值容量分别是:256KB,2MB,10MB二、选择题:1. 下列选项中,( c)是引用类型。
a)enum类型 b)struct类型 c)string类型 d)int类型2. 下列关于构造函数的描述正确的是( c)a)构造函数可以声明返回类型b)构造函数不可以用private修饰c)构造函数必须与类名相同d)构造函数不能带参数3. 装箱、拆箱操作发生在: ( c )a)类与对象之间 b)对象与对象之间c)引用类型与值类型之间 d)引用类型与引用类型之间4. 装箱与拆箱操作是否是互逆的操作?( b)a)是 b)否5. 用户自定义异常类需要从以下哪个类继承:( c )a)Exception b)CustomExceptionc)ApplicationException d)BaseException6. .Net依赖以下哪项技术实现跨语言互用性。
(c )a)CLR b)CTS c)CLS d)CTT7.“访问范围限定于此程序或那些由它所属的类派生的类型”是对以下哪个成员可访问性含义的正确描述?(d )a)public b)protected c)internal d)protected internal8. class Class1{private static int count = 0;static Class1(){ count++; }public Class1(){ count++; }}Class1 o1 = new Class1();Class1 o2 = new Class1();请问,o1.Count的值是多少?(c )a)1 b)2 c)3 d)49. 以下哪个类是int的基类。
( b )a)Int32 b)Object c)ValueType d)Int1610.C#编译器认为自定义的所有委托类型都派生自:(b )a)Delegate b)MulticastDelegate三、判断下面代码是否正确并说明原因。
1. public static const int A=1;错误,static 和const 不能同时用来修饰一个类型2. Byte b = 100;b = (Byte) (b + 200) ;错误;byte类型的的取值范围是0~2553. 下面代码是否正确,为什么?(1) struct SomeValType{ Int32 x = 5; }错误:因为C#不允许值类型有无参构造器,在编译时会出错:结构中不能有实例字段初始值设定项(2) struct SomeValType{ Int32 x,y;public SomeValType(Int32 x) { this.x = x;}}错误:y没有被初始化,C#编译器抛出错误:。
在控制离开构造器前,字段SomeValType.y必须完全赋值(3)class SomeType{ static Int32 x = 5; }正确(4)struct SomeValType{ static Int32 x = 5; }正确4. using System;class A{public virtual void F() {Console.WriteLine("A.F");}}abstract class B:A{ public abstract override void F(); }四、简答题:(任选五题)1. CLR和FCL允许开发人员创建的几种应用程序。
●XML Web服务●Web窗体●Windows窗体●Windows控制台应用程序●Window服务●组件库2. 把一个源代码文件生成CUI可执行文件、GUI可执行文件、DLL文件分别用到的命令行开关。
3. 利用operator声明且仅声明了= =,有什么错误么? 如果有,说明原因。
答:要同时修改Equale和GetHash() ? 重载了"==" 就必须重载"!="4. 例举System.Object 类提供的几个公有实例方法。
1--Equals:如果两个对象具有相同的值,返回true;2--GetHashCode: 返回对象的值的散列码。
3--ToString: 默认情况下返回类型的完全限定名。
一般自定义类型中要重写该方法,返回有意义的字符串;4--GetType: 返回一个类型为继承自Type的对象实例,返回的Type对象和反射类一起来获得元数据信5. CLR支持的两种类型以及它们的内存分配方式?弱命名程序集和强命名程序集.NET Framework 的垃圾回收器管理应用程序的内存分配和释放。
每次使用new 运算符创建对象时,运行库都从托管堆为该对象分配内存。
只要托管堆中有地址空间可用,运行库就会继续为新对象分配空间。
6.实现自己的 Equals 方法时,必须确保它遵循的规则。
∙Equals方法必须是自反的,就是说,x.Equals(x)必须返回true;∙Equals方法必须是对称的,就是说,x.Equals(y)和y.Equals(x)必须返回同样的值;∙Equals方法必须是可传递的,就是说,x.Equals(y)和y.Equals(z)都返回true,那么x.Equals(z)也必须返回true;∙Equals方法必须是前后一致的,就是说,如果两个对象的值没有发生变化,那么多次调用Equals方法的返回值应该相同7.定义一个属性时,编译器会在生成的托管模块中产生哪3项?1. 一个表示属性的get访问器的方法。
只有在为属性定义了get访问器方法时,才有这一项。
2.一个表示属性的set访问器的方法。
只有在为属性定义了set访问器方法时,才有这一项。
3. 一个位于托管模块元数据中的属性的定义,不管是只读,只写,或者读写属性都有这一项。
8. 用sealed修饰的类有什么特点?不能被继承9. 如何理解委托?委托类似于函数指针,但函数指针只能引用静态方法,而委托既能引用静态方法,也能引用实例方法。
事件和处理方法之间是怎么联系起来的呢?委托就是他们中间的桥梁,事件发生时,委托会知道,然后将事件传递给处理方法,处理方法进行相应处理10. 如何理解.net中的垃圾回收机制?NET中的垃圾回收机制是引用程序对内存的回收和释放。
当每次用new关键字创建一个对象时,运行库都要从托管堆中为其分配内存,因为空间是有限的,最终垃圾回收机制是要回收不用的内存的。
已释放内存,重新使用。
五、1.public static void Main ( ) {Int32 v = 5 ;Object o = v ;v = 123 ;Console.WriteLine ( v + “,” + (Int32) o ) ;}这段代码中有 1 次装箱操作。
2.假设存在以下两个类定义:class B { Int32 x ; }class D :B { Int32 y ;}(1)System.Object o1 = new System.Object();(2)System.Object o2 = new B();(3)System.Object o3 = new D();(4)System.Object o4 = o3;(5)B b1 = new B();(6)B b2 = new D();(7)D d1 = new D();(8)B b3 = new System.Object();(9)D d3 = new System.Object();(10)B b4 = d1;(11)D d2 = b2;(12)D d4 = (D) d1;(13)D d5 = (D) b2;(14)D d6 = (D) b1;(15)B b5 = (B) o1;(16)B b6 = (D) b2;以上代码,能正确编译和运行的是:1,2,3,4,5,6,7,10,12,13,14,15 。
导致编译时出错的是: 16 。
导致运行时出错的是: 8,9,11 。
3.写出程序的输出结果(选作)class Class1 {private string str = "Class1.str";private int i = 0;static void StringConvert(string str){ str = "string being converted."; }static void StringConvert(Class1 c){ c.str = "string being converted."; }static void Add(int i){ i++; }static void AddWithRef(ref int i){ i++; }static void Main() {int i1 = 10;int i2 = 20;string str = "str";Class1 c = new Class1();Add(i1);AddWithRef(ref i2);Add(c.i);StringConvert(str); StringConvert(c);Console.WriteLine(i1);Console.WriteLine(i2);Console.WriteLine(c.i);Console.WriteLine(str);Console.WriteLine(c.str); }}结果:1021Strstring being converted4. 写出程序的输出结果(选作)public abstract class A{public A(){ Console.WriteLine('A'); }public virtual void Fun(){ Console.WriteLine("A.Fun()"); } }public class B: A{public B(){ Console.WriteLine('B');public new void Fun(){ Console.WriteLine("B.Fun()"); } public static void Main(){A a = new B();a.Fun();}}结果:ABA.Fun()5. 写出程序的输出结果:(选作)public class A{public virtual void Fun1(int i){ Console.WriteLine(i); } public void Fun2(A a){ a.Fun1(1);Fun1(5);}}public class B : A{public override void Fun1(int i) { base.Fun1 (i + 1); }public static void Main(){B b = new B();A a = new A();a.Fun2(b);b.Fun2(a); }}结果:2156。