C#.NET面试题

1.abstract classinterface的区别?

  abstract class是抽象类。它声明了方法,而且可以有属性,但它的方法不实现,主要创建一个体现基本行为的类。不能创建类的实例。它的子类来实现它的方法,若子类也没有实现,那么这个子类也是抽象类。

 interface是接口,在接口中所有的方法都是抽象的一个类可以继承多个接口接口中不能有属性

2。<%#    %><%    %>有什么区别?

   <%#   %>表示绑定的数据源

   <%     %>是服务器端代码块

3.&&&的区别?

   &是位运算符,&&是逻辑运算符(and)

4.C#可否对内存进行直接的操作?

   不能,C#有垃圾回收功能,不能直接操作内存,但是可以调用基类的Finalize()方法。

5.62-63=1 等式不成立,请移动一个数字(不可以移动减号和等于号),使得等式成立,如何移动?

  62变成26次方。

6..netC# or vb.net)中,Appplication.Exit 还是 Form.Close有什么不同

   Appplication.Exit是退出整个程序,Form.Close是关闭Form

7..Net托管代码中我们不用担心内存漏洞,这是因为有了______

   GC(垃圾回收器)。

8..Net中所有可序列化的类都被标记为_____

   [serializable]。

9.sealed修饰的类有什么特点?

   密封的,不能继承

10.委托声明的关键字是______?

      delegate。

11.float f=-123.567F; int i=(int)f;i的值现在是_____?

    -123

12.public static const int A=1;这段代码有错误么?是什么?

    const不能有static修饰。

13.当整数a赋值给一个object对象时,整数a将会被?

     装箱。

14.c#中的三元运算符是?

    ?:。

15.ADO.net中常用的对象有哪些?分别描述一下。

    Connection 数据库连接对象

    Command 数据库命令

    DataReader 数据读取器

    DataSet 数据集

16.什么是虚函数?什么是抽象函数?

     虚函数:没有实现的,可有子类继承或重写。抽象函数:其非虚子类必须重写函数。

17.下面这段代码输出什么?为什么?

     int i=5;

     int j=5;

     if (Object.ReferenceEquals(i,j))

     Console.WriteLine("Equal");

     else

     Console.WriteLine("Not Equal")

     不相等,因为比较的是对象。

18.c#usingnew这两个关键字有什么意义,请写出你所知道的意义?

      new 创建实例,new 隐藏基类中方法,using引入命名空间或者使用非托管资源。

19.软件开发过程一般有几个阶段?

     需求分析,架构设计,代码编写

20.DataReaderDataset有什么区别?

     DataReader只能向前读,Dataset是建立一个内存中的表。

21.向服务器发送请求有几种方式?

     get,post。

22.请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。

     session(viewstate):简单,但易丢失

     application:全局

     cookie:简单,但可能不支持,可能被伪造

23.ASP.NETASP相比,主要有哪些进步?

     asp解释形,aspx编译型,asp.net有更多的类。

24.String s = new String("xyz");创建了几个String Object?

     两个对象.一个是是xyz,一个是指向xyz引用的s。

25.GC是什么? 为什么要有GC?

     GC是垃圾回收器。因为有了GC就省去了程序员手工编码释放内存。

26.能用foreach遍历访问的对象需要实现 ________________接口或声明________________方法的类型。

   IEnumerable GetEnumerator。

27.面向对象的语言具有________性、_________性、________

     封装、继承、多态。

28.C#中,string str = null string str = “” 请尽量使用文字或图象说明其中的区别

   string str = null 是不给他分配内存空间,string str = "" 给它分配长度为空字符串的内存空间。

29.net中读写数据库需要用到那些类?他们的作用?

     DataSet:数据存储器。

     DataCommand:执行语句命令。

     DataAdapter:数据的集合,用语填充。

30.什么是装箱和拆箱?

     从值类型转换到引用类型装箱(可隐式转换),从引用类型转换到值类型拆箱。

31.CTSCLSCLR分别作何解释?

     CTS:通用语言系统。CLS:通用语言规范。CLR:公共语言运行库。

32..netB/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?

   一般为3

   数据访问层,业务层,表示层。

   数据访问层:对数据库进行增删查改。

   业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。

   表示层:为了与用户交互例如用户添加表单。

   优点:分工明确,条理清晰,易于调试,而且具有可扩展性。

   缺点:增加成本。

33.描述一下C#中索引器的实现过程,是否只能根据数字进行索引?

     定义一个索引器必须使用this关键字,this[index]。可以是任意类型索引。

34.override与重载的区别

     重载是方法的名称相同,参数或参数类型不同。Override 是进行基类中函数的重写。

35.C#中的委托是什么?事件是不是一种委托?

     委托可以把一个方法作为参数代入另一个方法.委托可以理解为指向一个函数的引用。

   事件是一种特殊的委托。

36.简述 private protected public internal 修饰符的访问权限

     private : 私有成员, 在类的内部才可以访问。

     protected : 保护成员,该类内部和继承类中可以访问。

     public : 公共成员,完全公开,没有访问限制。

     internal: 在同一命名空间内可以访问。

37.一列数的规则如下: 112358132134...... 求第30位数是多少, 用递归算法实现

   public class MainClass

{ 

      public static void Main()

      {

        Console.WriteLine(Foo(30));

      }

      public static int Foo(int i)

      {

        if (i <= 0)

        return 0;

           else if(i > 0 && i <= 2)

        return 1;

        else return Foo(i -1) + Foo(i - 2);

       }  

}

38.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty

     foreach (System.Windows.Forms.Control control in this.Controls)

     {

        if (control is System.Windows.Forms.TextBox)

       {

         System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ;

         tb.Text = String.Empty ;

       }

    }

40.在下面的例子里

   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。

41.SQLSERVER服务器中,给定表 table1 中有两个字段 IDLastUpdateDateID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号

   select  ID from table1 order by LastUpdateData desc

42.写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。

     select top 10 * from A where id not in (select top 30 id from A)

43.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?

    接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。

44.构造器Constructor是否可被override?

     构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。

45.是否可以继承String?

     String类是final类故不可以继承。

46.List, Set, Map是否继承自Collection接口?

     List,Set是。Map不是。

47.数组有没有length()这个方法? String有没有length()这个方法?

     没有,有这个属性。String有这个方法。

48.sleep() wait() 有什么区别?

     sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级

(b)正在运行的线程因为其它原因而阻塞。

wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。

49.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

     short s1 = 1; s1 = s1 + 1;有错,s1short型,s1+1int,不能显式转化为short型。可修改为s1 =(short)(s1 + 1) short s1 = 1; s1 += 1正确。

50.Session有什么重大BUG,微软提出了什么方法加以解决?

     iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sate serverSQL Server数据库的方式存储Session不过这种方式比较慢,而且无法捕获SessionEND事件。

51.进程和线程的区别?

     进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。

52.产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。

     int[] intArr=new int[100];

    ArrayList myList=new ArrayList();

    Random rnd=new Random();

    while(myList.Count<100)

    {

       int num=rnd.Next(1,101);

          if(!myList.Contains(num))

               myList.Add(num);

    }

    for(int i=0;i<100;i++)

    intArr[i]=(int)myList[i];

53.下面的代码中有什么错误吗?_______

      using System;

      class A

      {

            public virtual void F()

           {

                   Console.WriteLine("A.F");

           }

       }

     abstract class B:A

     {

             public abstract override void F(); 

    }

 abstract override 是不可以一起修饰。

54.下面这段代码有错误么?

     switch (i)

    {

       case(): 答: //case()条件不能为空

      CaseZero();

      break;

      case 1:

      CaseOne();

      break;

      case 2:

      dufault;         //格式不正确,应写成default:

      CaseTwo();

      break;

    }

55..Net中,类System.Web.UI.Page 可以被继承么?

     可以。

56..netC# or vb.net)中如何取消一个窗体的关闭

     e.Cancel=true。

57. Asp.net中所有的自定义用户控件都必须继承自________.

      Control。

58.什么是code-Behind技术?

  代码分离。HTML代码写在前台,C#代码写在后台

59.装箱与拆箱操作是否是互逆的操作?

  不是互逆的操作。

60.哪个是可以变长的数组?

  ArrayList

61.用户自定义异常类需要从以下哪个类继承?

  Exception

62.Net依赖以下哪项技术实现跨语言互用性?

  CLS

63.以下哪个类是int的基类?(  B  )

    A.Int32              B.Object          C.ValueType            D.Int16

64.下列描述错误的是(d

a)类不可以多重继承而接口可以;

b)抽象类自身可以定义成员而接口不可以;

c)抽象类和接口都不能被实例化;

d)一个类可以有多个基类和多个基接口

65.下列关于构造函数的描述正确的是(c

a)构造函数可以声明返回类型。

b)构造函数不可以用private修饰

c)构造函数必须与类名相同

d)构造函数不能带参数

66.以下是一些C#中的枚举型的定义,其中错误的用法有(d

a)public enum var1{ Mike = 100, Nike = 102, Jike }

b)public enum var1{ Mike = 100, Nike, Jike }

c)public enum var1{ Mike=-1 , Nike, Jike }

d)public enum var1{ Mike , Nike , Jike }

67.接口是一种引用类型,在接口中可以声明(a),但不可以声明公有的域或私有的成员变量。

    a)方法、属性、索引器和事件; b)方法、属性信息、属性; c)索引器和字段;    d)事件和字段

68.在ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是(C

      a)insertupdatedelete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;

b)ExecuteNonQuery()方法返回执行Sql语句所影响的行数。

c)Select操作的Sql语句只能由ExecuteReader()方法来执行;

d)ExecuteReader()方法返回一个DataReder对象;

69.下列ASP.NET语句(b)正确地创建了一个与SQL Server 2000数据库的连接。

a)SqlConnection con1 = new Connection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);

b)SqlConnection con1 = new SqlConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);

c)SqlConnection con1 = new SqlConnection(Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB);

d)SqlConnection con1 = new OleDbConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);

70.ADO.NET中执行一个存储过程时,如果要设置输出参数则必须同时设置参数的方向和(b),必要时还要设置参数尺寸。

      a)大小;             b)上限;              c)初始值;            d)类型;

71.如果要将窗体设置为透明的,则( b)

     a)要将FormBoderStyle属性设置为Noneb)要将Opacity属性设置为小于100%得值;

     c)要将locked 属性设置为True              d)要将 Enabled属性设置为True

72.下列关于C#中索引器理解正确的是(c )

a)索引器的参数必须是两个或两个以上   b)索引器的参数类型必须是整数型

c)索引器没有名字                                     d)以上皆非

73.下面描述错误的是( c/d)

a)窗体也是控件; b)窗体也是类; c)控件是从窗体继承来的; d)窗体的父类是控件类

74.要对注册表进行操作则必须包含( d)

a)System.ComponentModel命名空间; b)System.Collections命名空间;

  c)System.Threading命名空间;              d)Microsoft.Win32命名空间

75.要创建多文档应用程序,需要将窗体的(d )属性设为true

   a)DrawGrid         b)ShowInTaskbar          c)Enabled            d)IsMdiContainer

76.下面关于XML的描述错误的是(d)。

a)XML提供一种描述结构化数据的方法;

b)XML 是一种简单、与平台无关并被广泛采用的标准;

c)XML文档可承载各种信息;

d)XML只是为了生成结构化文档;

77.UDP连接和TCP连接的异同。

  前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连结。

78.某一密码仅使用KLMNO5个字母,密码中的单词从左向右排列,密码单词必须遵循如下规则:

1)密码单词的最小长度是两个字母,可以相同,也可以不同

2K不可能是单词的第一个字母

3)如果L出现,则出现次数不止一次

4M不能使最后一个也不能是倒数第二个字母

5K出现,则N就一定出现

6O如果是最后一个字母,则L一定出现

问题一:下列哪一个字母可以放在LO中的O后面,形成一个3个字母的密码单词?

   A) K   B)L   C) M    D) N
  
答案:B

问题二:如果能得到的字母是KLM,那么能够形成的两个字母长的密码单词的总数是多少?

   A)1  B)3  C)6  D9

   答案:A LL

问题三:下列哪一个是单词密码?
      A) KLLN   B) LOML   C) MLLO   D)NMKO
      :C

79.关于ASP.NET中的代码隐藏文件的描述正确的是(a  

    a) Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。编程逻辑唯一与用户界面不同的文件中。该文件称作为代码隐藏文件,如果用C#创建,该文件将具有“.ascx.cs”扩展名。  

    b) 项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件。  

  c)Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件。  

    d) 以上都不正确。

80. 以下描述错误的是(a  

  a) C++中支持抽象类而在C#中不支持抽象类。  

  b) C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。  

  c) C#中可使用new修饰符显式隐藏从基类继承的成员。  

  d) C#中要在派生类中重新定义基类的虚函数必须在前面加override 

 

 

81.DOM中,装载一个XML文档的方法(b   

   a) save方法    b) load方法    c) loadXML方法    d) send方法  

82.ASP.NET中,在Web窗体页上注册一个用户控件,指定该控件的名称为”Mike”,正确的注册指令为(b)  

   a) <%@Register   TagPrefix   =   “Mike”   TagName   =   “Space2”   Src   =   “myX.ascx”%>  

   b) <%@Register   TagPrefix   =   “Space2”   TagName   =   “Mike”   Src   =   “myX.ascx”%>  

   c) <%@Register   TagPrefix   =   “SpaceX”   TagName   =   “Space2”   Src   =   “Mike”%>  

   d) 以上皆非  

83.ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是(c  

  a) insertupdatedelete等操作的Sql语句主要用ExecuteNonQuery()方法来执行。  

  b) ExecuteNonQuery()方法返回执行Sql语句所影响的行数。 

  c) Select操作的Sql语句只能由ExecuteReader()方法来执行。

  d) ExecuteReader()方法返回一个DataReder对象。 

84.以下叙述正确的是: (B C )

      A. 接口中可以有虚方法。B. 一个类可以实现多个接口。 C. 接口不能被实例化

   D. 接口中可以包含已实现的方法。

85. 从数据库读取记录,你可能用到的方法有:(B C D)

     A. ExecuteNonQuery   B. ExecuteScalar   C. Fill     D. ExecuteReader

86. 对于一个实现了IDisposable接口的类,以下哪些项可以执行与释放或重置非托管资源相关的应用程序定义的任务?(多选) ( ABC )

     A.Close    B.Dispose   C.Finalize    D.using E.Quit

87.以下关于refout的描述哪些项是正确的?(多选) ( ACD )

     A.使用ref参数,传递到ref参数的参数必须最先初始化。

     B.使用out参数,传递到out参数的参数必须最先初始化。

     C.使用ref参数,必须将参数作为ref参数显式传递到方法。

     D.使用out参数,必须将参数作为out参数显式传递到方法

88. 关于ASP.NET中的代码隐藏文件的描述正确的是(C

      a)Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。编程逻辑唯一与用户界面不同的文件中。该文件称作为代码隐藏文件,如果用C#创建,该文件将具有“.ascx.cs”扩展名。

     b)项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件。

     c)项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件。

     d)以上都不正确。

89. 如果将窗体的FormBoderStyle设置为None,则( b)

      a)窗体没有边框并不能调整大小; b)窗体没有边框但能调整大小;

      c)窗体有边框但不能调整大小;      d)窗体是透明的;

90.下列关于C#中索引器理解正确的是(c )

      a)索引器的参数必须是两个或两个以上 b)索引器的参数类型必须是整数型

      c)索引器没有名字                                      d)以上皆非

90. 面描述错误的是( c/d)

a)窗体也是控件; b)窗体也是类; c)控件是从窗体继承来的; d)窗体的父类是控件类

91. Net依赖以下哪项技术实现跨语言互用性?( C )

A.CLR      B.CTS     C.CLS    D.CTT

92. String类与StringBuilder类有什么区别?为什么在.Net类库中要同时存在这2个类?

   如果要操作一个不断增长的字符串,尽量不用String,改用StringBuilder类。两个类的工作原理不同:String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错,但是在.NET框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。当然,一般情况下觉察不到这二者效率的差异,但如果你要对某个字符串进行大量的添加操作,那么StringBuilder类所耗费的时间和String类简直不是一个数量级的。

93. 以下哪些可以作为接口成员?(多选) ( ABDE )

A.方法   B.属性   C.字段  D.事件  E.索引器

94. 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.4

 

95. abstract class BaseClass

{

public virtual void MethodA()

{

}

public virtual void MethodB()

{

}

}

class Class1: BaseClass

{

public void MethodA(string arg)

}

public override void MethodB()

}

}

class Class2: Class1

{

new public void MethodB()

{

}

}

class MainClass

{

public static void Main(string[] args)

{

Class2 o = new Class2();

Console.WriteLine(o.MethodA());

}

}

请问,o.MethodA调用的是: ( A )

A.BaseClass.MethodA.  B.Class2.MethodA

C.Class1.MethodA.     D.都不是

96. 您的公司有一个DB Server,名为AllWin,其上装了MS SQLSERVER 2000。现在需要您写一个数据库连接字符串,用以连接AllWinSQL SERVER中的一个名为PubBase实例的Test库。请问,应该选择下面哪一个字符串?( B )

    A. “Server=AllWin;Data Source=PubBase;Initial Catalog=Test;Integrated Security=SSPI”

 B. “Server= AllWin;Data Source=PubBase;Database=Test;Integrated Security= SSPI”

C.“Data Source=AllWin /PubBase;Initial Category=PubBase;Integrated Security= SSPI”  

D. “Data Source= AllWin / PubBase;Database=Test;Integrated Security= SSPI”

97. 您要创建一个ASP.NET应用程序在DataGrid控件中显示一个经过排序的列表。产品数据被存放于一个名为PubBaseMicrosoft SQL Server 数据库。每个产品的主键是ProductIDNumeric型并且每个产品有一个字母描述字段,名为ProductName。您使用一个SqlDataAdapter对象和一个SqlCommand对象通过调用一个存储过程从数据库中获取产品数据。您将SqlCommand对象的CommandType属性设置为CommandType.StoredProcedure,并将它的CommandText属性设置为procProductList。您成功的获取了一个DataTable对象,其中是已经按ProductID降序排列的产品列表。您打算显示以相反的字母顺序排列的ProductName,请问该怎么做? ( B )

        A. SqlCommand对象的CommandType属性修改为CommandType.Text,将CommandText属性修改为”SELECT * FROM procProductList ORDER BY ProductName DESC”。然后将这个DataTable对象绑定到DataGrid控件。

  B. 创建一个基于这个DataTable对象的新的DataView并将这个DataViewSort属性设置为“ProductName DESC”。然后将这个DataView对象绑定到DataGrid控件。

  C. DataGrid控件的AllowSorting属性设置为True,并将DataGridColumnSortExpression属性设置为 “ProductName DESC”.以显示ProductName。然后将这个DataTable对象绑定到DataGrid控件。

  D. DataTable对象的DisplayExpression属性设置为 “ORDER BY ProductName DESC”.。然后将这个DataTable对象绑定到DataGrid控件

98. 请解释web.config文件中的重要节点

appSettings包含自定义应用程序设置。

system.web 系统配置

compilation动态调试编译设置

customErrors自定义错误信息设置

authentication身份验证,此节设置应用程序的身份验证策略。

authorization授权, 此节设置应用程序的授权策略.

99. 当发现不能读取页面上的输入的数据时很有可能是什么原因造成的?怎么解决?

   有可能是在Page_Load中数据处理时没有进行PageIsPostBack属性判断

100.您需要创建一个ASP.NET应用程序,公司考虑使用Windows身份认证。
   所有的用户都存在于AllWin这个域中。您想要使用下列认证规则来配置这个应用程序:
    a、 匿名用户不允许访问这个应用程序。
    b、 所有雇员除了TessKing都允许访问这个应用程序。

  请问您应该使用以下哪一个代码段来配置这个应用程序? )
A. <authorization>
   <deny users=”allwin/tess, allwin/king”>
   
<allow users=”*”>
   
<deny users=”?”>
 
</authorization>
B. <authorization>
   
<allow users=”*”>
   
<deny users=”allwin/tess, allwin/king”>
   
<deny users=”?”>
 
</authorization>
C. <authorization>
   
<deny users=”allwin/tess, allwin/king”>
   
<deny users=”?”>
   
<allow users=”*”>
 
</authorization>
D. <authorization>
   
<allow users=”allwin/tess, allwin/king”>
   
<allow users=”*”>
 
</authorization>
E.<authorization>
   
<allow users=”*”>
   
<deny users=”allwin/tess, allwin/king”>
 </authorization>

101.您要创建ASP.NET应用程序用于运行AllWin公司内部的Web站点,这个应用程序包含了50个页面您想要配置这个应用程序以便当发生一个HTTP代码错误时它可以显示一个自定义的错误页面给用户。您想要花最小的代价完成这些目标,您应该怎么做?(多选)(  C/D   )

A.在这个应用程序的Global.asax件中创建一个Application_Error过程去处理ASP.NET代码错误。

B.在这个应用程序的Web.config文件中创建一个applicationError节去处理ASP.NET代码错误。

C.在这个应用程序的Global.asax文件中创建一个CustomErrors事件去处理HTTP错误。
  D.在这个应用程序的Web.config文件中创建一个CustomErrors节去处理HTTP错误。

  E.在这个应用程序的每一页中添加一个Page指示符去处理ASP.NET 代码错误。
  F. 在这个应用程序的每一页中添加一个Page指示符去处理ASP.NET HTTP错误。

102.请编程实现一个冒泡排序算法?

     int [] array = new int

     int temp = 0 ;

     for (int i = 0 ; i < array.Length - 1 ; i++)

    {

      for (int j = i + 1 ; j < array.Length ; j++)

      {

         if (array[j] < array[i])

         {

            temp = array[i] ;

            array[i] = array[j] ;

            array[j] = temp ;

         }

       }

     }

103.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String?

    switchexpr1)中,expr1是一个整数表达式。因此传递给 switch case 语句的参数应该是 int short char 或者 bytelong,string 都不能作用于swtich

104. 堆和栈的区别?

    栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。

    堆:一般由程序员分配释放。用newmalloc等分配内存函数分配得到的就是在堆上。

105. 请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。

    session(viewstate) 简单,但易丢失

        application 全局

        cookie 简单,但可能不支持,可能被伪造

        input ttype="hidden" 简单,可能被伪造

        url参数 简单,显示于地址栏,长度有限

    数据库 稳定,安全,但性能相对弱

106.向服务器发送请求有几种方式?

    get,postget一般为链接方式,post一般为按钮方式.

107.什么叫做SQL注入,如何防止?请举例说明。

利用sql关键字对网站进行攻击。过滤关键字

108. Net Framework通过什么与COM组件进行交互操作?(   C )

        A.Side By Side.            B.Web Service

      C.Interop.                    D.Pinvoke

109. 如何把一个array复制到arrayList

foreach( object o in array )

arrayList.Add(o);

你可能感兴趣的:(C#.NET面试题)