文档库 最新最全的文档下载
当前位置:文档库 › .NET面试题

.NET面试题

.NET面试题
.NET面试题

https://www.wendangku.net/doc/7b13122941.html,面试题 .NET系列面试题

2007年12月01日星期六上午 10:50

1. 简述 private、 protected、 public、 internal 修饰符的访问权限。

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

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

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

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

2 .列举https://www.wendangku.net/doc/7b13122941.html, 页面之间传递值的几种方式。

答. 1.使用QueryString, 如....?id=1; response. Redirect()....

2.使用Session变量

3.使用Server.Transfer;

4.Cookie

5.Cache

3. 一列数的规则如下: 1、1、2、3、5、8、13、21、3

4...... 求第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);

}

}

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

答:

委托可以把一个方法作为参数代入另一个方法。

委托可以理解为指向一个函数的引用。

是,是一种特殊的委托

5.override与重载的区别

答:

override 与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要

Override 是进行基类中函数的重写。为了适应需要。

6.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、

Cookie、Application,您有几种方法进行处理?

答:

this.Server.Transfer

7.请编程遍历页面上所有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 ;

}

}

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

答:

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 ;

}

}

}

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

答:不是。可以用任意类型。

10.求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m 答:

int Num = this.TextBox1.Text.ToString() ;

int Sum = 0 ;

for (int i = 0 ; i < Num + 1 ; i++)

{

if((i%2) == 1)

{

Sum += i ;

}

else

{

Sum = Sum - I ;

}

}

System.Console.WriteLine(Sum.ToString());

System.Console.ReadLine() ;

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

答:一般为3层

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

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

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

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

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

缺点:增加成本。

12.在下面的例子里

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 = -1

13.什么叫应用程序域?

答:应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小。

14.CTS、CLS、CLR分别作何解释?

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

15.什么是装箱和拆箱?

答:从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。

16.什么是受管制的代码?

答:unsafe:非托管代码。不经过CLR运行。

17.什么是强类型系统?

答:RTTI:类型识别系统。

https://www.wendangku.net/doc/7b13122941.html,中读写数据库需要用到那些类?他们的作用?

答:DataSet:数据存储器。

DataCommand:执行语句命令。

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

https://www.wendangku.net/doc/7b13122941.html,的身份验证方式有哪些?分别是什么原理?

答:10。Windwos(默认)用IIS...From(窗体)用帐户....Passport(密钥)

20.什么是Code-Behind技术?

答:代码后植。

21.在.net中,配件的意思是?

答:程序集。(中间语言,源数据,资源,装配清单)

22.常用的调用WebService的方法有哪些?

答:1.使用WSDL.exe命令行工具。

2.使用https://www.wendangku.net/doc/7b13122941.html,中的Add Web Reference菜单选项

https://www.wendangku.net/doc/7b13122941.html, Remoting 的工作原理是什么?

答:服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置。

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

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

25.请详述在dotnet中类(class)与结构(struct)的异同?

答:Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.

26.根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写:namespace test

{

public delegate void OnDBOperate();

public class UserControlBase : https://www.wendangku.net/doc/7b13122941.html,erControl

{

public event OnDBOperate OnNew;

privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.Tool BarButtonClickEventArgs e)

{

if(e.Button.Equals(BtnNew))

{

//请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。

}

}

}

答:if( OnNew != null )

OnNew( this, e );

27.分析以下代码,完成填空

string strTmp = "abcdefg某某某";

int i= System.Text.Encoding.Default.GetBytes(strTmp).Length;

int j= strTmp.Length;

以上代码执行完后,i= j=

答:i=13,j=10

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

答:Select ID FROM table1 Where LastUpdateDate = (Select

MAX(LastUpdateDate) FROM table1)

29.根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?并简要说明理由。

public void test(int i)

{

lock(this)

{

if (i>10)

{

i--;

test(i);

}

}

}

答:不会发生死锁,(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。但如果把int换做一个object,那么死锁会发生)

30.简要谈一下您对微软.NET 构架下remoting和webservice两项技术的理解以及实际中的应用。

答:WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。

31.公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击ListView各列列头时,能按照点击列的每行值进行重排视图中的所有行 (排序的方式如DataGrid相似)。根据您的知识,请简要谈一下您的思路

答:根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView 中。

32.给定以下XML文件,完成算法流程图。

< DriverC >

请画出遍历所有文件名(FileName)的流程图(请使用递归算法)。

答:

void FindFile( Directory d )

{

FileOrFolders = d.GetFileOrFolders();

foreach( FileOrFolder fof in FileOrFolders )

{

if( fof is File )

You Found a file;

else if ( fof is Directory )

FindFile( fof );

}

}

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

答:解1: select top 10 * from A where id not in (select top 30 id from A)

解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)

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

答:封装、继承、多态。

35.能用foreach遍历访问的对象需要实现 ________________接口或声明

________________方法的类型。

答:IEnumerable 、 GetEnumerator。

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

答:GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:

System.gc()

Runtime.getRuntime().gc()

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

答:两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。

38.abstract class和interface有什么区别?

答:

声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。

39.启动一个线程是用run()还是start()?

答:启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。

run()方法可以产生必须退出的标志来停止一个线程。

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

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

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

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

42.是否可以继承String类?

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

43.try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code 会不会被执行,什么时候被执行,在return前还是后?

答:会执行,在return前执行。

44.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?

答:不对,有相同的hash code。

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

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

47.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

不能,一个对象的一个synchronized方法只能由一个线程访问。

48.abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?

答:都不能。

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

答:List,Set是Map不是

50.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

答:Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。

equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的

是当两个分离的对象的内容和类型相配的话,返回真值。

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

答:数组没有length()这个方法,有length的属性。String有有length()这个方法。

52.sleep() 和 wait() 有什么区别?

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

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

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

53.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 答:short s1 = 1; s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确。

54.谈谈final, finally, finalize的区别。

答:

final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为 final的方法也同样只能使用,不能重载finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。

finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

55.如何处理几十万条并发数据?

答:用存储过程或事务。取得最大标识的时候同时更新..注意主键不是自增量方式这种方法并发的时候是不会有重复主键的..取得最大标识要有一个存储过程来获取.

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

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

57.进程和线程的区别?

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

58.堆和栈的区别?

答:

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

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

59.成员变量和成员函数前加static的作用?

答:它们被称为常成员变量和常成员函数,又称为类成员变量和类成员函数。分别用来反映类的状态。比如类成员变量可以用来统计类实例的数量,类成员函数负责这种统计的动作。

60.ASP。NET与ASP相比,主要有哪些进步?

答:asp解释形,aspx编译型,性能提高,有利于保护源码。

61.产生一个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];

62.请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。答:session(viewstate) 简单,但易丢失

application 全局

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

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

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

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

63.请指出GAC的含义?

答:全局程序集缓存。

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

答:get,post。get一般为链接方式,post一般为按钮方式。

65.DataReader与Dataset有什么区别?

答:一个是只能向前的只读游标,一个是内存中的表。

66.软件开发过程一般有几个阶段?每个阶段的作用?

答:需求分析,架构设计,代码编写,QA,部署

67.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?using 指令和语句 new 创建实例 new 隐藏基类中方法。

答:using 引入名称空间或者使用非托管资源

new 新建实例或者隐藏父类方法

68.需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.

答:string inputStr=" xx xx ";

inputStr=Regex.Replace(inputStr.Trim()," *"," ");

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

int i=5;

int j=5;

if (Object.ReferenceEquals(i,j))

Console.WriteLine("Equal");

else

Console.WriteLine("Not Equal");

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

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

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

71.什么是反射?

答:动态获取程序集信息

72.用Singleton如何写设计模式

答:static属性里面new ,构造函数private

73.什么是Application Pool?

答:Web应用,类似Thread Pool,提高并发性能。

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

答:虚函数:可由子类继承并重写的函数。抽象函数:规定其非虚子类必须实现的函数,必须被重写。

75.什么是XML?

答:XML即可扩展标记语言。eXtensible Markup Language.标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,即可以选择国际通用的标记语言,比如HTML,也可以使用象XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。XML是从SGML中简化修改出来的。它主要用到的有XML、XSL和XPath等。

76.什么是Web Service?UDDI?

答:Web Service便是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。

UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。

77.什么是https://www.wendangku.net/doc/7b13122941.html,中的用户控件?

答:用户控件一般用在内容多为静态,或者少许会改变的情况下..用的比较大..类似ASP中的include..但是功能要强大的多。

78.列举一下你所了解的XML技术及其应用

答:xml用于配置,用于保存静态数据类型.接触XML最多的是web Services..和config

https://www.wendangku.net/doc/7b13122941.html,中常用的对象有哪些?分别描述一下。

答:Connection 数据库连接对象

Command 数据库命令

DataReader 数据读取器

DataSet 数据集

80.什么是code-Behind技术。

答:ASPX,RESX和CS三个后缀的文件,这个就是代码分离.实现了HTML代码和服务器代码分离.方便代码编写和整理.

81.什么是SOAP,有哪些应用。

答:simple object access protocal,简单对象接受协议.以xml为基本编码结构,建立在已有通信协议上(如http,不过据说ms在搞最底层的架构在tcp/ip上的soap)的一种规范Web Service使用的协议..

82.C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里?

答:一个是属性,用于存取类的字段,一个是特性,用来标识类,方法等的附加性质

83.XML 与 HTML 的主要区别

答:1. XML是区分大小写字母的,HTML不区分。

2. 在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略

或者之类的结束标记。在XML中,绝对不能省略掉结束标记。

3. 在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个 / 字符作为结尾。这样分析器就知道不用查找结束标记了。

4. 在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。

5. 在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。

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

答:?:。

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

答:装箱。

86.类成员有_____种可访问形式?

答:this.;new Class().Method;

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

答:const不能用static修饰。

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

答:-123。

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

答:delegate.

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

答:密封,不能继承。

91.在https://www.wendangku.net/doc/7b13122941.html,中所有的自定义用户控件都必须继承自________?

答:Control。

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

答:[serializable]

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

答:GC。

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

using System;

class A

{

public virtual void F(){

Console.WriteLine("A.F");

}

}

abstract class B:A

{

public abstract override void F(); 答:abstract override 是不可以一起修饰.

} // new public abstract void F();

95.当类T只声明了私有实例构造函数时,则在T的程序文本外部,___可以___(可以 or 不可以)从T派生出新的类,不可以____(可以 or 不可以)直接创建T的任何实例。

答:不可以,不可以。

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

switch (i){

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

CaseZero();

break;

case 1:

CaseOne();

break;

case 2:

dufault; 答://wrong,格式不正确

CaseTwo();

break;

}

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

答:可以。

https://www.wendangku.net/doc/7b13122941.html,的错误处理机制是什么?

答:.net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。

99.利用operator声明且仅声明了==,有什么错误么?

答:要同时修改Equale和GetHash() ? 重载了"==" 就必须重载 "!="

100.在.net(C# or https://www.wendangku.net/doc/7b13122941.html,)中如何用户自定义消息,并在窗体中处理这些消息。答:在form中重载DefWndProc函数来处理消息:

protected override void DefWndProc ( ref System.WinForms.Message m ) {

switch(m.msg)

{

case WM_Lbutton :

///string与MFC中的CString的Format函数的使用方法有所不同

string message = string.Format("收到消息!参数

为:{0},{1}",m.wParam,m.lParam);

MessageBox.Show(message);///显示一个消息框

break;

case USER:

处理的代码

default:

base.DefWndProc(ref m);///调用基类函数处理非自定义消息。

break;

}

}

101.在.net(C# or https://www.wendangku.net/doc/7b13122941.html,)中如何取消一个窗体的关闭。

答:private void Form1_Closing(object sender,

https://www.wendangku.net/doc/7b13122941.html,ponentModel.CancelEventArgs e)

{

e.Cancel=true;

}

102.在.net(C# or https://www.wendangku.net/doc/7b13122941.html,)中,Appplication.Exit 还是 Form.Close有什么不同?

答:一个是退出整个应用程序,一个是关闭其中一个form。

103.在C#中有一个double型的变量,比如10321.5,比如122235401.21644,作为货币的值如何按各个不同国家的习惯来输出。比如美国用$10,321.50和$122,235,401.22而在英国则为£10 321.50和£122 235 401.22

答:System.Globalization.CultureInfo MyCulture = new

System.Globalization.CultureInfo("en-US");

//System.Globalization.CultureInfo MyCulture = new

System.Globalization.CultureInfo("en-GB");为英国货币类型

decimal y = 9999999999999999999999999999m;

string str = String.Format(MyCulture,"My amount = {0:c}",y);

104.某一密码仅使用K、L、M、N、O共5个字母,密码中的单词从左向右排列,密码单词必须遵循如下规则:

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

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

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

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

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

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

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

词?

A) K B)L C) M D) N

答案:B

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

A)1个 B)3个 C)6个 D)9个

答案:A

问题三:下列哪一个是单词密码?

A) KLLN B) LOML C) MLLO D)NMKO

答案:C

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

答案:62移动成2的6次方

105.对于这样的一个枚举类型:

enum Color:byte

{

Red,

Green,

Blue,

orange

}

答:string[] ss=Enum.GetNames(typeof(Color));

byte[] bb=Enum.GetValues(typeof(Color));

106. C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里?

答:attribute:自定义属性的基类;property :类中的属性

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

答:在.net下,.net引用了垃圾回收(GC)功能,它替代了程序员不过在C#中,不能直接实现Finalize方法,而是在析构函数中调用基类的Finalize()方法

108.ADO。NET相对于ADO等主要有什么改进?

答:1:https://www.wendangku.net/doc/7b13122941.html,不依赖于ole db提供程序,而是使用.net托管提供的程序,2:不使用com3:不在支持动态游标和服务器端游 4:,可以断开connection而保留当前数据集可用 5:强类型转换 6:xml支持

109.写一个HTML页面,实现以下功能,左键点击页面时显示“您好”,右键点击时显示“禁止右键”。并在2分钟后自动关闭页面。

答:

110.大概描述一下ASP。NET服务器控件的生命周期

答:初始化加载视图状态处理回发数据加载发送回发更改通知处理回发事件预呈现保存状态呈现处置卸载

111.Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

答:不能,可以实现接口

112.Static Nested Class 和 Inner Class的不同,说得越多越好

答:Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。

113.,&和&&的区别。

&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and).

114.HashMap和Hashtable的区别。

答:HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable.

115.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 答:short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)

short s1 = 1; s1 += 1;(可以正确编译)

116.Overloaded的方法是否可以改变返回值的类型?

答:Overloaded的方法是可以改变返回值的类型。

117.error和exception有什么区别?

答:error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。

exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

118.<%# %> 和 <% %> 有什么区别?

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

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

119.你觉得https://www.wendangku.net/doc/7b13122941.html, 2.0(VS2005)和你以前使用的开发工具(.Net 1.0或其他)有什么最大的区别?你在以前的平台上使用的哪些开发思想(pattern / architecture)可以移植到https://www.wendangku.net/doc/7b13122941.html, 2.0上 (或者已经内嵌在https://www.wendangku.net/doc/7b13122941.html, 2.0中) 答:1 https://www.wendangku.net/doc/7b13122941.html, 2.0 把一些代码进行了封装打包,所以相比1.0相同功能减少了很多代码.

2 同时支持代码分离和页面嵌入服务器端代码两种模式,以前1.0版本,.NET提示帮助只有在分离的代码文件,无法在页面嵌入服务器端代码获得帮助提示,

3 代码和设计界面切换的时候,2.0支持光标定位.这个我比较喜欢

4 在绑定数据,做表的分页.Update,Delete,等操作都可以可视化操作,方便了初学者

5 在https://www.wendangku.net/doc/7b13122941.html,中增加了40多个新的控件,减少了工作量

120.重载与覆盖的区别?

答:1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系

2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。

3、覆盖要求参数列表相同;重载要求参数列表不同。

4、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。

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

答:不是。可以用任意类型。

122.在C#中,string str = null 与 string str = " " 请尽量使用文字或图象说明其中的区别。

答:null是没有空间引用的;

" " 是空间为0的字符串;

123.分析以下代码,完成填空

string strTmp = "abcdefg某某某";

int i= System.Text.Encoding.Default.GetBytes(strTmp).Length;

int j= strTmp.Length;

以上代码执行完后,i= j=

答:i=13.j=10

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

答:Select ID FROM table1 Where LastUpdateDate = (Select

MAX(LastUpdateDate) FROM table1)

125.分析以下代码。

public static void test(string ConnectString)

{

System.Data.OleDb.OleDbConnection conn = new

System.Data.OleDb.OleDbConnection();

conn.ConnectionString = ConnectString;

try

{

conn.Open();

…….

}

catch(Exception Ex)

{

MessageBox.Show(Ex.ToString());

}

finally

{

if (!conn.State.Equals(ConnectionState.Closed))

conn.Close();

}

}

请问

1)以上代码可以正确使用连接池吗?

答:回答:如果传入的connectionString是一模一样的话,可以正确使用连接池。不过一模一样的意思是,连字符的空格数,顺序完全一致。

2)以上代码所使用的异常处理方法,是否所有在test方法内的异常都可以被捕捉并显示出来?

答:只可以捕捉数据库连接中的异常吧. (finally中,catch中,如果有别的可能引发异常的操作,也应该用try,catch。所以理论上并非所有异常都会被捕

捉。)

126.公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击ListView各列列头时,能按照点击列的每行值进行重排视图中的所有行 (排序的方式如DataGrid相似)。根据您的知识,请简要谈一下您的思路:

答:根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView 中

127.什么是WSE?目前最新的版本是多少?

答:WSE (Web Service Extension) 包来提供最新的WEB服务安全保证,目前最新版本2.0。

128.在下面的例子里

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

129.下面的例子中

using System;

class A

{

public static int X;

static A(){

X=B.Y+1;

.net面试题.

1. 简要说一下.Net的编译过程. 答: NET平台中代码的物理单元是可移植可执行程序(protable executable,PE)格式,编译程序和库时,和平常一样生成EXE与DLL 文件,但在.NET框架下,任何可执行程序项目都链接到公共语言运行库,并由它代理编译和执行。 .NET中程序编译的最主要部分是汇编(assembly),汇编包括一个manifest,它是一组元数据,标识汇编向其他应用程序提供的文件和类型;manifest还可以包含强名称(strong name)、组合汇编名、版本信息和可选文化信息。在使用强名称的汇编中,元数据包含一个公用密钥签名,公共语言运行库用其验证汇编自编译之后是否发生改变。 汇编还可以包括数字签名,例如用验证码(authenticode certificate)验证代码源,以解决在公共语言运行库保证汇编签名的真实性问题。汇编分为专用汇编和共享汇编。专用汇编只在安装这个汇编的应用程序中使用,而共享汇编则安装在全局汇编缓冲区(global assembly cache,GAC)中,全局汇编缓冲区用汇编的引用计数和版本信息管理库,包括框架的基类库(base class library,BCL),并通过公共语言运行库避免因库的版本冲突而形成DLL Hell的情形。123 选择专用汇编和共享汇编是一个重要决策。将汇编安装到全局缓冲区后,就可以在多个应用程序中使用汇编的一个备份,但是还需要用Windows Installer之类的安装程序将应用程序安装到计算机上。如果使用专用汇编,则得到Microsoft所谓的"XCOPY部署",这样用户可以将应用程序复制到目标计算机上,方便地进行安装。 .NET程序编译过程如图1.2所示。 2. https://www.wendangku.net/doc/7b13122941.html,与ASP的区别

.NET开发人员面试题(含答案)

.NET开发人员试题(综合) 每题5分 1、用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 2、软件开发过程一般有几个阶段?每个阶段的作用? 3、请列举一些您用到过的设计模式以及在什么情况下使用该模式? 4、您对编程的兴趣如何?工作中遇到不懂的问题是怎样去解决的?您一般怎样去提高自己的编程水平? 5、您离职的原因是什么?

.NET开发人员试题(基础) 一、填空:每题2分 1.面向对象的语言具有继承性、封装性、多态性。 2. 能用foreach遍历访问的对象需要实现 IEnumerable _接口或声明 3.委托声明的关键字是delegate ? 4.在.Net托管代码中我们不用担心内存漏洞,这是因为有了gc __? 5.当类T只声明了私有实例构造函数时,则在T的程序文本外部,不可以(可以or 不可以)从T派生出新的类,不可以(可以or 不可以)直接创建T的任何实例。 二、单选:每题2分 6.在对SQL Server 数据库操作时应选用(A)。 a)SQL Server .NET Framework 数据提供程序; b)OLE DB .NET Framework 数据提供程序; c)ODBC .NET Framework 数据提供程序; d)Oracle .NET Framework数据提供程序; 7.以下描述错误的是(A) a)在C++中支持抽象类而在C#中不支持抽象类。 b)C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。 c)在C#中可使用new 修饰符显式隐藏从基类继承的成员。 d)在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。 8.C#的数据类型有(A) a)值类型和调用类型; b)值类型和引用类型; c)引用类型和关系类型; d)关系类型和调用类型; 9.下列描述错误的是(D) a)类不可以多重继承而接口可以; b)抽象类自身可以定义成员而接口不可以; c)抽象类和接口都不能被实例化; d)一个类可以有多个基类和多个基接口; 10.在DOM中,装载一个XML文档的方法(D) a)save方法b)load方法c)loadXML方法d)send方法

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.概述三层结构体系? https://www.wendangku.net/doc/7b13122941.html,中读写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是什么? 为什么要有GC 15.接口是否可继承接口? 抽像类是否可实现(implements)接口? 抽像类是否可继承实体类(concrete class)? 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.在https://www.wendangku.net/doc/7b13122941.html,中,下列代码运行后的输出结果是? 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;

DoNet面试题(选择题)原题

1.下面有关用户控件与aspx页面区别说法错误的是(B) A.用户控件不能再包含

标记,而aspx页面可以包含 B.用户控件不能触发服务器端的事件,只是一种外观重用方式,而aspx页面可以 C.用户控件继承自https://www.wendangku.net/doc/7b13122941.html,erControl,而aspx页面继承自System.Web.UI.Page D.用户控件可以包含其它用户控件,但是不能直接访问,必须包含在某个aspx页面中才可以访问,而aspx 页面是可以直接访问的 2.想在在aspx页面使用用户控件,则aspx页面开始部分必须添加下面哪个页面指令A A. <%@ Page %> B.<%@ Master %> C. <%@ Control %> D. <%@ Register %> 3.根据你的理解,你认为第三控件与用户控件的主要区别是A A.第三方控件是编译后的代码,后缀为dll,只要应用程序引用进来,就可以使用,而用户控件是页面文件,属于非编译代码,只限于在当前应用程序中使用 B.用户控件比第三方控件更灵活,可以在应用程序中多个地方使用 C.用户控件出现在工具箱中,而第三方控件不会出现在工具箱中 D.用户控件比第三方控件的执行效率要高一些 4.下面关于HttpHandler与HttpModule说法正确的是C A.一个Http请求中可以经历多个HttpModule和一个HttpHandler B.一个Http请求中可以经历多个HttpHandler和一个HttpModule C.HttpModule是一个Http请求的最终处理者 D.HttpHandler通常做一些停止数据向客户端输出的操作 5.在aSPNET中,关于HttpHandler说法不正确的是:(D) A.通常文件后缀名为ashx B.它是一个Http请求处理的最终点 C.它实现了IHttpHandler D.当它的IsReusable属性为false时,表示只能使用一次 6.下面哪个选项不能在web.config文件中配置的(C) A.连接字符串 B.身份验证 C.网站导航 D.程序出现错误时,定向到的错误提示页面 7.a SPNET支持三种验证方式,不属于其中的是(B) A.passport B.SqlServer身份 C.Windows D.Forms

Net面试题

Net面试题 NET 面试题一 .NET 技术题 1. 类成员有几种可访问性? 答:4 种, private : 私有成员, 在类的内部才可以访问。公共成员,完全公开,没有访问限制。 在同一命名空间内可以访问 protected : 保护成员,该类内部和继承类中可以访问。 public : internal: 2. 用 sealed 修饰的类有什么特点 sealed 修饰符用于防止从所修饰的类派生出 其它类。如果一个密封类被指定为其他类的基类,则会发生编 译时错 3. 执行下面代码后: String strTemp ="abcdefg 某某某"; Int i System.Text.Encoding.Default.GetBytes(strTemp).Length; Int j = strTemp.Length; 1. 问:i,j 分别为多少并说明理由 答:i=(14 ) ;j=(11 ) 中文两个字节 4. 5. 6. 概述三层结构体系? 答:web/business/dataaccess net 中读写 XML 的类都归属于哪些命名空间, 答:System.Xml a=10,b=15,在不用第三方变量的前提下,把 a,b 的值互换, 答:a=a+b;b=a-b;a=a-b 7. 对数据的并发采用什么办法进行处理较好答: 可以控 制连接池的连接数量条件好的话可以用负载平衡 8. override 与重载的区别, 重写是方法名与返回类型一致,而重载是方法名与返回类型一致,参数个数不同 答:重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需 要 Override 是进行基类中函数的重写。为了适应需要 9. 如果在一个 B/S 结构 的系统中需要传递变量值,但是又不能使用 Session、Cookie、Application,您

(完整word版)https://www.wendangku.net/doc/7b13122941.html,面试题132道

1. 简述private、protected、public、internal 修饰符的访问权限。 答 . private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,没有访问限制。 internal: 在同一命名空间内可以访问。 2 .列举https://www.wendangku.net/doc/7b13122941.html, 页面之间传递值的几种方式。 答. 1.使用QueryString, 如....?id=1; response. Redirect().... 2.使用Session变量 3.使用Server.Transfer 3. 一列数的规则如下: 1、1、2、3、5、8、13、21、3 4...... 求第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); } } 4.C#中的委托是什么?事件是不是一种委托? 答: 委托可以把一个方法作为参数代入另一个方法。 委托可以理解为指向一个函数的引用。 是,是一种特殊的委托 5.override与重载的区别 答: override 与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要 Override 是进行基类中函数的重写。为了适应需要。

.Net程序员面试题大全

1. 简述 private、 protected、 public、 internal 修饰符的访问权限。 答 . private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,没有访问限制。 internal: 在同一命名空间内可以访问。 2 .列举https://www.wendangku.net/doc/7b13122941.html, 页面之间传递值的几种方式。 答. 1.使用QueryString, 如....?id=1; response. Redirect().... 2.使用Session变量 3.使用Server.Transfer 3. 一列数的规则如下: 1、1、2、3、5、8、13、21、3 4...... 求第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); } } 4.C#中的委托是什么?事件是不是一种委托? 答: 委托可以把一个方法作为参数代入另一个方法。 委托可以理解为指向一个函数的引用。 是,是一种特殊的委托 5.override与重载的区别 答: override 与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要 Override 是进行基类中函数的重写。为了适应需要。 6.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理? 答: this.Server.Transfer

最新的。net面试题及答案

最新的.Net面试题及答案 文章分类:.net编程 引用 最新的.Net面试题及答案 1.a=10,b=15,在不用第三方变题的前提下,把a,b的值互换 a=a+b;b=a-b;a=(a-b)/2;b=b+a 2:已知数组int[] max={6,5,2,9,7,4,0};用快速排序算法按降序对其进行排列,并返回数组public class TestQuickSort { private int[] array = null; private void quickSort(int lowest, int highest) { if (array == null || lowest < 0 || lowest >= highest || highest >= array.length) { return; } int low = lowest; int high = highest; int key = low++; for (; low <= high;) { if (key < high) { if (array[key] > array[high]) { array[high] = array[key] + (array[key] = array[high]) * 0; key = high; } high--; } if (key > low) { if (array[key] < array[low]) { array[low] = array[key] + (array[key] = array[low]) * 0; key = low; } low++; } } quickSort(lowest, key - 1); quickSort(key + 1, highest); } /** * @param args */

.net高级工程师面试题

.net软件工程师面试题 基础题: 1.简述string[]、ArrayList、List的区别。 数组: 优点: o数组在内存中是连续存储的,索引速度非常快; o赋值和修改元素也很简单; 不足: o两个数据之间插入数据比较麻烦; o声明数组的时候,必须指明数组的长度,数组长度过长会造成内存浪费,数组的长度过短,会造成数据溢出错误。 ArrayList: 优点: https://www.wendangku.net/doc/7b13122941.html, framework 提供的用于数据存储和检索的专用类 o大小依据存储的数据来动态扩展和收缩 o继承IList,可以方便的进行数据的添加、插入和删除 缺点: o允许插入不同类型的数据,都当做object类型处理 o数据处理时可能出现类型不匹配的错误

o存在装箱(值=》引用)拆箱的操作,会带来很大的性能损耗 List: 优点: o声明List集合时,需要声明集合内数据的对象类型 o避免了类型安全问题和装箱拆箱的性能问题 2.简述装箱和拆箱操作中的性能损耗是如何产生的。 3.简述对https://www.wendangku.net/doc/7b13122941.html,中的事件机制的理解。 4.在一个https://www.wendangku.net/doc/7b13122941.html,的三层结构系统中,以登录操作为例,简述在各层中如何组织代码。 5.简述相比DATASET,实体类在WEB项目中的优点与缺点。 6.简述GC是如何工作的。 Java采用VM(Virtual Machine)机制,由VM来管理程序的运行当然也包括对GC管理。90年代末期.NET出现了,.NET采用了和Java类似的方法由CLR(Common Language Runtime)来管理。 Garbage Collector(垃圾收集器,在不至于混淆的情况下也成为GC)以应用程序的root 为基础,遍历应用程序在Heap上动态分配的所有对象[2],通过识别它们是否被引用来确定哪些对象是已经死亡的、哪些仍需要被使用。已经不再被应用程序的root或者别的对象所引用的对象就是已经死亡的对象,即所谓的垃圾,需要被回收。这就是GC工作的原理。为了实现这个原理,GC有多种算法。比较常见的算法有Reference Counting,Mark Sweep,Copy Collection等等。目前主流的虚拟系统.NET CLR,Java VM和Rotor都是采用的Mark Sweep算法。

NET软件工程师48个面试题目

NET软件工程师48个面试题目

.NET软件工程师48个面试题目 一.填空题 1.面向对象的语言具有(继承)性、(多态)性、(封装)性。 2.能用foreach遍历访问的对象需要实现(IEnumberable)接口或声明(GetEnumberator)方法的类型。 3.列举https://www.wendangku.net/doc/7b13122941.html,中的五个主要对象(Command)、(Connection)、(DataReader)、(DataSet)、(DataAdapter)。 4.C#中的三元运算符是__(?:)__ 5.当整数a赋值给一个object对象时,整数a将会被__(装箱)___ 6.类成员有__(3)__种可访问形式 7.float f=-123.567F;int i=(int)f;i的值现在是_(-123)__

8.委托声明的关键字是___(delegate)_ 9.在https://www.wendangku.net/doc/7b13122941.html,中所有的自定义用户控件都必须继承自_ (https://www.wendangku.net/doc/7b13122941.html,erControl) __ 10.在.Net中所有可序列化的类都被标记为__[serializable]___ 11.在.Net托管代码中我们不用担心内存漏洞,这是因为有了_ GC __ 12.当类T只声明了私有实例构造函数时,则在T的程序文本外部,_不能够_(能够or 不能够)从T派生出新的类,_不能够_(能够or 不能够)直接创立T的任何实例。 二.选择题 1.以下叙述正确的是:BC A. 接口中能够有虚方法。 B. 一个类能够实现多个接口。 C. 接口不能被实例化。 D. 接口中能够包含已实现的方法。

2.从数据库读取记录,你可能用到的方法有:BCD A. ExecuteNonQuery B. ExecuteScalar C. Fill D. ExecuteReader 3.对于一个实现了IDisposable接口的类,以下哪些项能够执行与释放或重置非托管资 相关的应用程序定义的任务?(多 选) ( ABC ) A.Close B.Dispose C.Finalize D. using E.Quit 4.以下关于ref和out的描述哪些项是正确的?(多选) ( ACD ) A.使用ref参数,传递到ref参数的参数必须最先初始化。 B.使用out参数,传递到out参数的参数必须最先初始化。 C.使用ref参数,必须将参数作为ref参数显式传递到方法。

.net软件工程师面试题

.net软件工程师面试题 3 .软件测试方法分为()()。 4 . .NET通过对各语言先编译成(),然后再执行时用()将其编译成本地平台代码,来实现异构平台下对象的互操作 5 .在SQL SERVER中游标的声明的语句是()释放的语句是()。 6 . SQL SERVER的编程语言是()语言 7 .委托声明的关键字是()。 8 .在MS SQL Server中,用来显示数据库信息的系统存储过程是()9. SQL语言中,用于事务回滚的语句是()。10 .如果两个实体之间具有M : N联系,则将它们转换为关系模型的结果是()个表。11 . Codebehind 主要是通过把()和()放在不同的文件中来实现代码分离的。12 .在C#中由值类型转换为引用类型称为(),有引用类型转换为值类型称为()13 . SQL SERVER 中索引类型包括的三种类型分别是()()()。14 .软件工程的三大文档()()()。15.在SQL SERVER2000 中的四中约束()()() ()。二.简答题1.什么是中间语言(IL) ?它的作用? 2 . C#中与 基类通信的关键字什么?作用是什么? 3 .什么是元数据?4. ASP。NET和ASP的主要优势?5. Override与重载有什么区别?6 . SQL SERVER中的触发器的理解?7. ref与out有什么区别?8 .大概描述下ASP。NET中服务器控件的生命周期?9 .什么是强类型系统? 10 .触发器分为事前触发和事后触发,有何区别?11 .谈谈final, fin ally, fin alize 的区别。12 .在.n et (C# or https://www.wendangku.net/doc/7b13122941.html, )中,

一套.net面试题及答案

一套.net面试题及答案 1、a=10,b=15,在不用第三方变量的前提下,把a,b的值互换 2、已知数组int[] max={6,5,2,9,7,4,0};用快速排序算法按降序对其进行排列,并返回数组 3、请简述面向对象的多态的特性及意义! 4、session喜欢丢值且占内存,Cookis不安全,请问用什么办法代替这两种原始的方法 5、对数据的并发采用什么办法进行处理较好。 6、已知Oracle数据库有GD和ZS两个数据库,GD数据库v_s表有数据写入时,从v_s表中提取最新数据到ZS数据库的D_E表中。请问用什么办法解决这一问题?如果又碰到不能互访的问题时,又用什么办法解决? 7、已知Oracle数据库a,b现在在a用户权限下,访问b 数据库sql语句为select a.* From b a,请改正这一句Sql的写法 8、当对数据库进行海量级的数据插入时,数据库出现报错,错误原因可能有哪些,以你的经验谈谈你的解决办法 9、算法分析AH 20060625 12 44 01 CAD001AH 20060625 12 44 01 CAD001AH 20060625 13 44 02 CAD001AH 2原理2、public class TestQuickSort {private int[] array = null;private void quickSort(int lowest, int highest) {if (array == null || lowest = highest|| highest >= array.length) {return;}int low = lowest;int high = highest;int key = low++;for (; low array[high]) {array[high] = array[key] + (array[key] = array[high]) * 0;key = high;}high–;}if (key > low)

net高级工程师面试题完整版

n e t高级工程师面试题集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]

.net软件工程师面试题 基础题: 1.简述string[]、ArrayList、List的区别。 数组: 优点: o数组在内存中是连续存储的,索引速度非常快; o赋值和修改元素也很简单; 不足: o两个数据之间插入数据比较麻烦; o声明数组的时候,必须指明数组的长度,数组长度过长会造成内存浪费,数组的长度过短,会造成数据溢出错误。 ArrayList: 优点: https://www.wendangku.net/doc/7b13122941.html, framework 提供的用于数据存储和检索的专用类 o大小依据存储的数据来动态扩展和收缩 o继承IList,可以方便的进行数据的添加、插入和删除 缺点:

o允许插入不同类型的数据,都当做object类型处理 o数据处理时可能出现类型不匹配的错误 o存在装箱(值=》引用)拆箱的操作,会带来很大的性能损耗 List: 优点: o声明List集合时,需要声明集合内数据的对象类型 o避免了类型安全问题和装箱拆箱的性能问题 2.简述装箱和拆箱操作中的性能损耗是如何产生的。 3.简述对https://www.wendangku.net/doc/7b13122941.html,中的事件机制的理解。 4.在一个https://www.wendangku.net/doc/7b13122941.html,的三层结构系统中,以登录操作为例,简述在各层中如何组织代码。 5.简述相比DATASET,实体类在WEB项目中的优点与缺点。 6.简述GC是如何工作的。 Java采用VM(Virtual Machine)机制,由VM来管理程序的运行当然也包括对GC管理。90年代末期.NET出现了,.NET采用了和Java类似的方法由CLR(Common Language Runtime)来管理。 Garbage Collector(垃圾收集器,在不至于混淆的情况下也成为GC)以应用程序的root 为基础,遍历应用程序在Heap上动态分配的所有对象[2],通过识别它们是否被引用来确定哪些对象是已经死亡的、哪些仍需要被使用。已经不再被应用程序的root或者别的对象所引用的对象就是已经死亡的对象,即所谓的垃圾,需要被回收。这就是GC工作的原理。为了实现这个原理,GC有多种算法。比较常见的算法有Reference Counting,Mark Sweep,Copy Collection等等。目前主流的虚拟系统.NET CLR,Java VM和Rotor都是采用的Mark Sweep算法。 Java的内存管理实际就是对象的管理,其中包括对像的分配和释放。对于程序员来说,分配对象使用new关键字,释放对象时只是将对象赋值为null,让程序员不能够再访问到这个对象,该对象被称为“不可达”。GC将负责回收所有“不可达”对象的内存空间。

.NET开发人员面试题(含答案)

.NET 开发人员试题(综合) 每题 5 分 1用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 2、软件开发过程一般有几个阶段?每个阶段的作用? 3、请列举一些您用到过的设计模式以及在什么情况下使用该模式? 4、您对编程的兴趣如何?工作中遇到不懂的问题是怎样去解决的?您一般怎样去提高自己的编程水平? 5、您离职的原因是什么?

.NET开发人员试题(基础) 一、填空:每题2分 1?面向对象的语言具有继承性、封装性、多态性。 2.能用foreach遍历访问的对象需要实现回umerable _ 接口或声明 3?委托声明的关键字是delegate ? 4.在.Net托管代码中我们不用担心内存漏洞,这是因为有了gc __? 5?当类T只声明了私有实例构造函数时,则在T的程序文本外部,不可以(可以or不可 以)从T派生出新的类,不可以(可以or不可以)直接创建T的任何实例。 二、单选:每题2分 6.在对SQL Server数据库操作时应选用(A)。 a)S QL Server .NET Framework 数据提供程序; b)O LE DB .NET Framework 数据提供程序; c)O DBC .NET Framework 数据提供程序; d)O racle .NET Framework 数据提供程序; 7.以下描述错误的是(A) a)在C++中支持抽象类而在C#中不支持抽象类。 b)C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并 且在同一处声明和定义类的成员。 c)在C#中可使用new修饰符显式隐藏从基类继承的成员。 d)在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。 8.C#的数据类型有(A) a)值类型和调用类型; b)值类型和引用类型; c)引用类型和关系类型; d)关系类型和调用类型; 9.下列描述错误的是(D) a)类不可以多重继承而接口可以; b)抽象类自身可以定义成员而接口不可以; c)抽象类和接口都不能被实例化; d)一个类可以有多个基类和多个基接口;

.Net面试题大全(个人整理)

2 .列举https://www.wendangku.net/doc/7b13122941.html, 页面之间传递值的几种方式。 答: QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。 如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。 Application对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock。 Session变量想必这个肯定是大家使用中最常见的用法了,作用于用户个人,所以,过量的存储会导致服务器内存资源的耗尽。 Cookie对象变量这个也是大家常使用的方法,与Session一样,其是什对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合https://www.wendangku.net/doc/7b13122941.html,内置对象Request来使用。 Server.Transfer方法这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer 方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。 3. 一列数的规则如下: 1、1、2、3、5、8、13、21、3 4...... 求第30位数是多少,用递归算法实现。 答:publicstaticint Calculate(int x) { int retInt = 1; if (x > 2) { return Calculate(x - 2) + Calculate(x - 1); } else return retInt; } 4.C#中的委托是什么?事件是不是一种委托? 答:委托是一种定义方法签名的类型,可以与具有兼容签名的任何方法关联。可以通过委托调用方法。委托用于将方法作为参数传递给其他方法。 委托具有以下特点: 委托类似于C++ 函数指针,但它们是类型安全的。 委托允许将方法作为参数进行传递。 委托可用于定义回调方法。 委托可以链接在一起;例如,可以对一个事件调用多个方法。 方法不必与委托签名完全匹配。 事件是一种特殊的委托。 5.override与重载的区别 答: Override:要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,重写的基方法必须与override方法具有相同的签名。

NET高级工程师面试题题目

net软件工程师面试题 基础题: 1.简述string[]、ArrayList、List的区别。 数组: 优点: o数组在内存中是连续存储的,索引速度非常快; o赋值和修改元素也很简单; 不足: o两个数据之间插入数据比较麻烦; o声明数组的时候,必须指明数组的长度,数组长度过长会造成内存浪费,数组的长度过短,会造成数据溢出错误。 ArrayList: 优点: https://www.wendangku.net/doc/7b13122941.html, framework 提供的用于数据存储和检索的专用类 o大小依据存储的数据来动态扩展和收缩 o继承IList,可以方便的进行数据的添加、插入和删除 缺点: o允许插入不同类型的数据,都当做object类型处理 o数据处理时可能出现类型不匹配的错误

o存在装箱(值=》引用)拆箱的操作,会带来很大的性能损耗 List: 优点: o声明List集合时,需要声明集合内数据的对象类型 o避免了类型安全问题和装箱拆箱的性能问题 2.简述装箱和拆箱操作中的性能损耗是如何产生的。 3.简述对https://www.wendangku.net/doc/7b13122941.html,中的事件机制的理解。 4.在一个https://www.wendangku.net/doc/7b13122941.html,的三层结构系统中,以登录操作为例,简述在各层中如何组织代码。 5.简述相比DATASET,实体类在WEB项目中的优点与缺点。 6.简述GC是如何工作的。 Java采用VM(Virtual Machine)机制,由VM来管理程序的运行当然也包括对GC管理。90年代末期.NET出现了,.NET采用了和Java类似的方法由CLR(Common Language Runtime)来管理。 Garbage Collector(垃圾收集器,在不至于混淆的情况下也成为GC)以应用程序的root 为基础,遍历应用程序在Heap上动态分配的所有对象[2],通过识别它们是否被引用来确定哪些对象是已经死亡的、哪些仍需要被使用。已经不再被应用程序的root或者别的对象所引用的对象就是已经死亡的对象,即所谓的垃圾,需要被回收。这就是GC工作的原理。为了实现这个原理,GC有多种算法。比较常见的算法有Reference Counting,Mark Sweep,Copy Collection等等。目前主流的虚拟系统.NET CLR,Java VM和Rotor都是采用的Mark Sweep算法。

Net史上最全的面试题及.NET基础知识

.Net 基础知识 什么是面向对象 面向对象OO(object oriented) = 面向对象的分析OOA(Object Oriented Analysis) + 面向对象的设计OOD(Design) +......OOP; 通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),它们可以自己完 成自己的功能,而不是像C 那样分成一个个函数; 现在纯正的OO 语言主要是java 和C#,C++也支持OO,C 是面向过程的。 阐述面向接口、面向对象、面向方面编程的区别面向对象不好解释,可以理解为以一切元素都是对象,在设计时以 对象为单位,考虑它的属性及 方法。设计中采用了封装、继承、抽象的手法 面向接口本身就是面向对象的,无所谓区别,只不过面向接口的好处是耦合性低 面向方面Aspect-Oriented Programming (AOP)就是大名鼎鼎的AOP。其实有点象struts里的拦截。 举例:假设有在一个应用系统中,有一个共享的数据必须被并发同时访问,首先,将这个数据封装在数据对象中,称为D ata Class,同时,将有多个访问类,专门用于在同一时刻访问这同一个数据 对象。 为了完成上述并发访问同一资源的功能,需要引入锁Lock 的概念,也就是说,某个时刻,当有 一个访问类访问这个数据对象时,这个数据对象必须上锁Locked,用完后就立即解锁unLocked,再 供其它访问类访问。 面向对象的思想主要包括什么?继承:子类拥有父类的所有数据和操作。 封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内。多态:一个程序 中同名的不同方法共存的情况。有两种形式的多态–重载与重写。 抽象类是否可以继承实体类?抽象类可以继承实体类,但是有个条件,条件是,实体类必须要有明确的构造函数。 当类T 只声明了私有实例构造函数时,则在T 的程序文本外部,是否可以从T 派生出新的类,是否可以直接创 建T 的任何实例。 不可以,不可以 C#中有没有静态构造函数,如果有是做什么用的? 有. 静态构造函数用于初始化类。在创建第一个实例或引用任何静态成员之前,将自动调用静态 构造函数来初始化类。静态构造函数既没有访问修饰符,也没有参数。在创建第一个实例或引用任何静 态成员之前,将自动调用静态构造函数来初始化类。无法直接调用静态构造函数。在程序中,用户无法 控制何时执行静态构造函数。静态构造函数的典型用途是:当类使用日志文件时,将使用这种构 造函数向日志文件中写入项。 什么是.net? .net 是一种平台和框架, .net 不是单纯的语言也不是单纯的工具,它是从底层平台开始构建起来 的一个整体框架

NET软件工程师48个面试题目

.NET软件工程师48个面试题目 一.填空题 1.面向对象的语言具有(继承)性、(多态)性、(封装)性。 2.能用foreach遍历访问的对象需要实现(IEnumberable)接口或声明(GetEnumberator)方法的类型。 3.列举https://www.wendangku.net/doc/7b13122941.html,中的五个主要对象(Command)、(Connection)、(DataReader)、(DataSet)、(DataAdapter)。 4.C#中的三元运算符是__(?:)__ 5.当整数a赋值给一个object对象时,整数a将会被__(装箱)___ 6.类成员有__(3)__种可访问形式 7.float f=-123.567F;int i=(int)f;i的值现在是_(-123)__ 8.委托声明的关键字是___(delegate)_ 9.在https://www.wendangku.net/doc/7b13122941.html,中所有的自定义用户控件都必须继承自_ (https://www.wendangku.net/doc/7b13122941.html,erControl) __ 10.在.Net中所有可序列化的类都被标记为__[serializable]___ 11.在.Net托管代码中我们不用担心内存漏洞,这是因为有了_ GC __ 12.当类T只声明了私有实例构造函数时,则在T的程序文本外部,_不可以_(可以or 不

可以)从T派生出新的类,_不可以_(可以or 不可以)直接创建T的任何实例。二.选择题 1.以下叙述正确的是:BC A. 接口中可以有虚方法。 B. 一个类可以实现多个接口。 C. 接口不能被实例化。 D. 接口中可以包含已实现的方法。 2.从数据库读取记录,你可能用到的方法有:BCD A. ExecuteNonQuery B. ExecuteScalar C. Fill D. ExecuteReader 3.对于一个实现了IDisposable接口的类,以下哪些项可以执行与释放或重置非托管资相关的应用程序定义的任务?(多选) ( ABC ) A.Close B.Dispose C.Finalize https://www.wendangku.net/doc/7b13122941.html,ing E.Quit 4.以下关于ref和out的描述哪些项是正确的?(多选) ( ACD ) A.使用ref参数,传递到ref参数的参数必须最先初始化。 B.使用out参数,传递到out参数的参数必须最先初始化。 C.使用ref参数,必须将参数作为ref参数显式传递到方法。 D.使用out参数,必须将参数作为out参数显式传递到方法。 5.在对SQL Server 数据库操作时应选用(A) A.SQL Server .NET Framework 数据提供程序; B.OLE DB .NET Framework 数据提供程序; C.ODBC .NET Framework 数据提供程序; D.Oracle .NET Framework数据提供程序;

常见.NET技术面试题

常见.NET技术面试题 C# 什么是委托?委托和事件是什么关系? 答:简单的说:委托是一种方法容器,里面可以装载若干个具有相同签名的方法引用地址,那么调用委托,就相当于同时调用了该容器内的所有方法。 委托可以将方法作为参数传递给方法. ?事件是一种特殊的委托 什么是反射? ?答:反射提供了封装程序集,模块和类型对象,可以用反射动态地创建类型的实例,将类型绑定到现有对象,或者从现有对象类型里获取类型,然后调用类型的方法或访问字段和属性。 C#中是否可以从多个类中继承?如何实现多重继承? ?答:不能,要想实现多继承,就用接口 什么是密封类? ?答:密封类是类的一种,用sealed修饰,不能用作基类。因此,它也不能是抽象类。密封类主要用于防止派生。 using关键字有几种用途? ?答:两种 ?(1)应用命名空间; ?(2)定义一个范围,在范围结束时处理对象

#warning和#error分别的用途是什么? string和StringBuilder有什么区别? ?答:String 对象是不可改变的。StringBuilder对象是动态对象 string 是常量,定义后不能改变, stringbuilder定义后可以改变,且线程不安全 const和readonly的区别? ?答:const声明常量,raadonly是运行是的常量 new、virtual、abstract、override、sealed的区别? ?New :(1)new 一个对象(2)隐藏基类中的方法(3)在泛型时,new一个泛型类 ?Virtual:virtual关键字用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。virtual修饰符不能与static、abstract, private或override修饰符一起使用。 Abstract:abstract修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用abstract修饰符以指示某个类只能是其他类的基类。标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。 ?Override:重写:重写基类中的方法,不能重写非虚方法或静态方法。重写的基方法必须是vi rtual、abstract或override的。override声明不能更改virtual方法的可访问性。override方法和virtual方法必须具有相同的访问级别修饰符。 ?Sealed:密封类不能作为基类,密封类不能同时为抽象类 abstract class和interface有什么区别? ?答:区别一,两者表达的概念不一样。抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于“是”的关系; ?而接口是定义行为规范,因此对于实现接口的子类来说,相对于接口来说,是“行为需要按照接口来完成”。 ?区别二,抽象类在定义类型方法的时候,可以给出方法的实现部分,也可以不给出; 而对于接口来说,其中所定义的方法都不能给出实现部分。 ?区别三,继承类对于两者所涉及方法的实现是不同的。继承类对于抽象类所定义的抽象方法,可以不用重写,也就是说,可以延用抽象类的方法; ?而对于接口类所定义的方法或者属性来说,在继承类中必须要给出相应的方法和属

相关文档