C#.Net - 面试题大全(有答案)

Net 面试题大全(有答案)和 Asp.net 面试集合

1 (1)面向对象的语言具有__继承性_性、_封装性_性、_多态性 性。

(2)能用foreach遍历访问的对象需要实现 _ IEnumerable 接口或声明_ GetEnumerator 方法的类型。1.c#中的三元运算符是__?:__

2.当整数a赋值给一个object对象时,整数a将会被__装箱___?

3.类成员有__3__种可访问形式?

4.public static const int A=1;这段代码有错误么?是什么? const成员都是static所以应该去掉static 5.float f=-123.567F;

int i=(int)f;

i的值现在是_-123____?

6.利用operator声明且仅声明了==,有什么错误么? 要同时修改Equale和GetHash() ? 重载了“==“ 就必须重载 “!=“ 7.委托声明的关键字是___ delegate ___? 8.用sealed修饰的类有什么特点?不可被继承

9.在Asp.net中所有的自定义用户控件都必须继承自_ System.Web.UI.UserControl _______?

10.在.Net中所有可序列化的类都被标记为__[serializable]___?

11.在.Net托管代码中我们不用担心内存漏洞,这是因为有了_ gC __?

12.下面的代码中有什么错误吗?_ abstract override 是不可以一起修饰______ using System; class A {

public virtual void F(){ Console.WriteLine(“A.F“); }

}

abstract class B:A {

public abstract override void F(); }

13.当类T只声明了私有实例构造函数时,则在T的程序文本外部,_不可以_(可以 or 不可以)从T派生出新的类,_不可以_(可以 or 不可以)直接创建T的任何实例。 14.下面这段代码有错误么?case():不行 default; switch (i){ case():

CaseZero();

break; case 1: CaseOne(); break; case 2: dufault; CaseTwo(); break;

}

15.在.Net中,类System.Web.UI.Page 可以被继承么?可以 2. 不定项选择:

(1) 以下叙述正确的是: B C A. 接口中可以有虚方法。B. 一个类可以实现多个接口。 C. 接口不能被实例化。 D. 接口中可以包含已实现的方法。 (2) 从数据库读取记录,你可能用到的方法有:B C D A. ExecuteNonQuery B. ExecuteScalar C. Fill D. ExecuteReader

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

D.using E.Quit

3.以下关于ref和out的描述哪些项是正确的?(多选) ( ACD )

A.使用ref参数,传递到ref参数的参数必须最先初始化。 B.使用out参数,传递到out参数的参数必须最先初始化。 C.使用ref参数,必须将参数作为ref参数显式传递到方法。 D.使用out参数,必须将参数作为out参数显式传递到方法。 1.在对SQL Server 数据库操作时应选用(A)。 a)SQL Server .NET Framework 数据提供程序; b)OLE DB .NET Framework 数据提供程序; c)ODBC .NET Framework 数据提供程序; d)Oracle .NET Framework数据提供程序; 2.下列选项中,(C)是引用类型。

a)enum类型 b)struct类型 c)string类型 d)int类型

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

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

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

4.以下描述错误的是(A)

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

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

c)在C#中可使用 new 修饰符显式隐藏从基类继承的成员。 d)在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。

5.C#的数据类型有(B)[原文为D,有误] a)值类型和调用类型; b)值类型和引用类型;c)引用类型和关系类型;d)关系类型和调用类型; 6.下列描述错误的是(D)

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

b)抽象类自身可以定义成员而接口不可以; c)抽象类和接口都不能被实例化; d)一个类可以有多个基类和多个基接口;

7.在DOM中,装载一个XML文档的方法(B)[原文为D,有误]

a)save方法 b)load方法 c)loadXML方法 d)send方法 8.下列关于构造函数的描述正确的是(C) a)构造函数可以声明返回类型。 b)构造函数不可以用private修饰 c)构造函数必须与类名相同

d)构造函数不能带参数

9.以下是一些C#中的枚举型的定义,其中错误的用法有() 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 }

10.int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; myArray3[2][2]的值是(D)。

a)9 b)2 c)6 d)越界

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

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

12.ASP.NET框架中,服务器控件是为配合Web表单工作而专门设计的。服务器控件有两种类型,它们是(A )

a)HTML控件和Web控件 b)HTML控件和XML控件 c)XML控件和Web控件 d)HTML控件和IIS控件

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

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)以上皆非

14.在ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是(C)。 a)insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;

b)ExecuteNonQuery()方法返回执行Sql语句所影响的行数。 c)Select操作的Sql语句只能由ExecuteReader()方法来执行; d)ExecuteReader()方法返回一个DataReder对象;

15.下列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”);

16.Winform中,关于ToolBar控件的属性和事件的描述不正确的是(D)。

a)Buttons属性表示ToolBar控件的所有工具栏按钮

b)ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度

c)DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示)旁边是否显示下箭头键

d)ButtonClick事件在用户单击工具栏任何地方时都会触发 17.在ADO.NET中执行一个存储过程时,如果要设置输出参数则必须同时设置参数的方向和(B ),必要时还要设置参数尺寸。

a)大小; b)上限; c)初始值; d)类型; 18.如果将窗体的FormBoderStyle设置为None,则( B)。 a)窗体没有边框并不能调整大小; b)窗体没有边框但能调整大小;

c)窗体有边框但不能调整大小; d)窗体是透明的; 19.如果要将窗体设置为透明的,则( B)

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

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

20.下列关于C#中索引器理解正确的是(B/C )

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

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

21.下面描述错误的是( C/D)。

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

22.要对注册表进行操作则必须包含( D)。

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

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

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

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

24.如果设treeView1=new TreeView()

treeView1.Nodes.Add(“根节点“)返回的是一个 ()类型的值。

a)TreeNode; b)int;

c)string; d)TreeView;

25.下面关于XML的描述错误的是(D)。 a)XML提供一种描述结构化数据的方法;

b)XML 是一种简单、与平台无关并被广泛采用的标准; c)XML文档可承载各种信息;

d)XML只是为了生成结构化文档; 1.装箱、拆箱操作发生在: ( C )

A.类与对象之间 B.对象与对象之间

C.引用类型与值类型之间 D.引用类型与引用类型之间 2.用户类若想支持Foreach语句需要实现的接口是: ( A ) A.IEnumerableB.IEnumerator

C.ICollectionD.ICollectData

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

A.Side By SideB.Web Service C.InteropD.PInvoke

4..Net依靠以下哪一项技术解决COM存在的Dll Hell问题的?( A )

A.Side By SideB.Interop

C.PInvokeD.COM+

5.装箱与拆箱操作是否是互逆的操作?( B ) A.是B.否

6.以下哪个是可以变长的数组?( D ) A.Array B.string[]

C.string[N] D.ArrayList

7.用户自定义异常类需要从以下哪个类继承:( A ) A.Exception B.CustomException C.ApplicationException D.BaseException 8.以下代码段中能否编译通过?请给出理由。 try

{ }

catch(FileNotFoundException e1) {

}

catch(Exception e2) { }

catch(IOException e3) { }

catch { }

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

A.Close B.DisposeC.Finalize D.using E.Quit

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

12.以下哪个类是int的基类?( ) A.Int32 B.Object C.ValueType D.Int16 二、C# 部分*

13.以下哪些可以作为接口成员?(多选) ( ABDE ) A.方法B.属性C.字段D.事件E.索引器

F.构造函数G.析构函数

14.以下关于ref和out的描述哪些项是正确的?(多选) (ACD) A.使用ref参数,传递到ref参数的参数必须最先初始化。 B.使用out参数,传递到out参数的参数必须最先初始化。 C.使用ref参数,必须将参数作为ref参数显式传递到方法。 D.使用out参数,必须将参数作为out参数显式传递到方法。

15.“访问范围限定于此程序或那些由它所属的类派生的类型”是对以下哪个成员可访问性含义的正确描述?(B) A.public B.protected C.internal D.protected {

Class2 o = new Class2();

Console.WriteLine(o.MethodA()); internal 16.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 17.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)

}

}

请问,o.MethodA调用的是: ( A ) A.BaseClass.MethodAB.Class2.MethodA C.Class1.MethodAD.都不是

18.请叙述属性与索引器的区别。 属性 索引器

通过名称标识。 通过签名标识。

通过简单名称或成员访问来访问。 通过元素访问来访问。 可以为静态成员或实例成员。 必须为实例成员。 属性的 get 访问器没有参数。 索引器的 get 访问器具有与索引器相同的形参表。

属性的 set 访问器包含隐式 value 参数。 除了 value 参数外,索引器的 set 访问器还具有与索引器相同的形参表。

19.请叙述const与readonly的区别。

每一个class至多只可以定义一个static构造函数,并且不允许增加访问级别关键字,参数列必须为空。

为了不违背编码规则,通常把static数据成员声明为private,然后通过statci property提供读写访问。 const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值不能被修改。常数声明引入给定类型的一个或多个常数。

const数据成员的声明式必须包含初值,且初值必须是一个常量表达式。因为它是在编译时就需要完全评估。 const成员可以使用另一个const成员来初始化,前提是两者之间没有循环依赖。

readonly在运行期评估赋值,使我们得以在确保“只读访问”的前提下,把object的初始化动作推迟到运行期进行。 readonly 关键字与 const 关键字不同: const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。另外,const 字段是编译时常数,而 readonly 字段可用于运行时常数。

readonly 只能在声明时或者构造函数里面初始化,并且不能在 static 修饰的构造函数里面。

21.您需要创建一个ASP.NET应用程序,公司考虑使用Windows身份认证。

所有的用户都存在于AllWin这个域中。您想要使用下列认证规则来配置这个应用程序:

a、匿名用户不允许访问这个应用程序。

b、所有雇员除了Tess和King都允许访问这个应用程序。 请问您应该使用以下哪一个代码段来配置这个应用程序?( A )

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〉

22.您要创建一个显示公司员工列表的应用程序。您使用一个DataGrid控件显示员工的列表。您打算修改这个控件以便在这个Grid的Footer显示员工合计数。请问您应该怎么做?( C? )

A.重写OnPreRender事件,当Grid的Footer行被创建时显示合计数。

B.重写OnItemCreated事件,当Grid的Footer行被创建时显示合计数。

C.重写OnItemDataBound事件,当Grid的Footer行被创建时显示合计数。

D. 重写OnLayout事件,当Grid的Footer行被创建时显示合计数。

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

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错误。

24.您的公司有一个DB Server,名为AllWin,其上装了MS SQLSERVER 2000。现在需要您写一个数据库连接字符串,用以连接AllWin上SQL 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”

25.您为AllWin公司创建了一个ASP.NET应用程序。这个应用程序调用一个 Xml Web Service。这个 Xml Web Service 将返回一个包含了公司雇员列表的DataSet对象。请问您该如何在这个程序中使用这个 Xml Web Service?( ? ) A.在“引用”对话框的.Net标签中选择 System.Web.Services.dll。

B.在“Web引用”对话框中输入这个 XML Web service 的地址。

C.在您的 Global.asax.cs 中添加一条 using 语句并指定这个 XML Web service 的地址。

D.在您的 Global.asax.cs 中写一个事件处理器导入这个 Xml Web Service 相应的 .wsdl 和 .disco 文件。 26.您要创建一个ASP.NET应用程序在DataGrid控件中显示一个经过排序的列表。产品数据被存放于一个名为PubBase的Microsoft SQL Server 数据库。每个产品的主键是ProductID,Numeric型并且每个产品有一个字母描述字段,名为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并将这个DataView的Sort属性设置为“ProductName DESC”。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4