首页 > 精品范文库 > 3号文库
.Net面试题集
编辑:星海浩瀚 识别码:12-272345 3号文库 发布时间: 2023-04-01 02:18:46 来源:网络

第一篇:.Net面试题集

1.有哪几种方法可以实现一个类存取另外一个类的成员函数及属性,并请举列来加以说明和分析.2.A类是B类的基类,并且都有自己的构造,析构函数,请举例证明B类从实例化到消亡过程中构造,析构函数的执行过程.请附code

3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?

4..Net中读写数据库需要用到哪些类?他们的作用

5.ASP.net的身份验证方式有哪些?分别是什么原理?

6.解释一下UDDI、WSDL的意义及其作用。

7.常用的调用webservice方法有哪些?

8.讲一讲你理解的web service,在dot net framework中,怎么很好的结合xml?(讲概念就行了)

9.C#可否对内存进行直接的操作?(这可是个难点哦?要注意!),如果能,如何操作;如果不能,为什么?

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

1.值类型和引用类型的区别?

2.了解程序集强签名吗?

3.C#中接口和类有什么区别?

4.View State 的作用和实现方式?

5.在ASP.net中可以利用哪些对象存储状态?几种维持状态的对象应用场合以及优缺点?

6.简单说说 ASP.NET 中基于表单的身份验证方式的用法

7.是否了解 URL Rewrite?请简要说明其原理和在 ASP.NET 中的实现方式。

8.在超过10万条记录的页面显示时,你如何处理分页,有多少种替代方案?

9.DataReader和DataSet的异同

10.你会利用那些工具进行数据库的性能分析及其优化?说说你觉得优化数据库需要注

意的方面。比如:如何设计优化查询为主、插入更新为主的表。

11.数据库某表主键自增,是很常见的情形。在ASP.Net或C#程序中,要求向该表插入一条记录,并马上从该表查出这条记录。不能使用时间戳,请问你如何实现?

12.Xhtml 的三种 DOCTYPE 分别有啥意义?请说明。简单说明各个情况下,那些标签可用,那些不可用。

13.请列举说明XHtml代码规范,越多越好。

14.客户端与浏览器:如果让你做一个TreeView控件,你的思路。

15.谈谈论坛,聊天室,IM,和各种网站程序的交互与刷新思路的差异与共同点。

16.请谈谈对WSE(Web Services Enhancements)的认识。

17.你用过哪些版本控制工具

18.在开发中你利用那些工具进行单元测试和模块测试

19.如何进行Bug管理

20.如何生成和管理开发文档

21.请用代码简单描述一下Singleton、抽象工厂、Bridge、Composite(任选三个)的设计模式的概念。

22.如果你是一位软件架构师,您将如何去搭建一个符合n-tie的架构?并请描述一下您搭建的每一层的作用。(注意:请您考虑项目中有WebService的情况)

23.就数据结构或算法某一话题谈一下自己看法,如链表,二叉树,递归,分治等任选其一。

24.谈一下假设如果让你做一个特殊的数据结构体,比如网络对弈中国象棋,如何组织数据结构,描述棋盘,行棋步骤,进行存储和传递?

25、可否简要的介绍asp.net 2.0 Membership,WebPart和C#的匿名函数和泛型等你认为.net 2.0自己感兴趣的内容,希望可以简要地阐述其中的特点。

26、你如何学习新知识?有哪些站点或者资源你认为值得推荐?

27、你最近在做哪些工作,或者你在对哪个技术感兴趣,请描述其中数项你觉得很有心得的内容。可以是以下项:

a)介绍自己最近正在深入研究的技术心的、自己写的小程序的心得等等

b)自己最近参与的项目中涉及到的各种技术,软件管理方法等等的心得。

28、期望的工资待遇与前景,目前的住所,人际关系等。以前的经历,和以后的打算,比如:30岁程序员的话题。

1.面向对象的思想主要包括什么?

2.什么是ASP.net中的用户控件

3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?

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

5.值类型和引用类型的区别?写出C#的样例代码。

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

7.如何理解委托?

8.C#中的接口和类有什么异同。

9.。net中读写数据库需要用到哪些类?他们的作用

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

11.ASP.net的身份验证方式有哪些?分别是什么原理?

12.进程和线程分别怎么理解?

13.什么是code-Behind技术。

14.活动目录的作用。

15..net中读写XML的类都归属于哪些命名空间?

16.解释一下UDDI、WSDL的意义及其作用。

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

18.如何部署一个ASP.net页面。

19.如何理解.net中的垃圾回收机制。

20.常用的调用webservice方法有哪些?继承多态封装用户控件.不会说懂得做装箱和拆箱发生值类型向引用类型转换,和引用类型向值类型转重载:同一个函数参数不同

4.xml可以用来做网页(xslt)xml可以当作数据库 xml可以用来保存对象的系列化

5值类型,没有什么好说的.引用类型用处是返回两个以上参数的时候比较好用 ref out 我常用的是out不要先赋值

6ado.net 我直接用 sqlhelper了有connection command 还有参数回调机制比较有用的.在net中采用了委托.接口,是可以多继承,类只有单继承.接口强调了你必须实现,而没有具本实现的方法和虚类有点相似datareader dataset 还有一个不太常用udp不要实现什么三次握手.asp.net身份验证最常用还是以前的session方法.form验证没有用过.微软的哪个也没有用过进程简单理解为单个程序吧(按ctrl+alt+del)可以看到的.它至少有一个主线程.13 代码后置..不懂得讲活动目录..完全不会system.xml(system.io创建目录的时候用)这个也是web服务里的东西.soap简单协议.我只知道.web服务是基于它之上的部置一个页面.也就是说没有代码是直接写在aspx中的了.只接放在IIS的虚拟目录下就行了.当然要asp.net支持垃圾回收..一般的只要掌握.非托管对象要记得释放资源就行了吧.直接在vs.net里面引用就OK了.它会自己生成一个代理类

第二篇:面试题.net

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

2、C#中的委托是什么?编写一个简单的委托代码。

3、C#中抽象类是什么?编写一个简单的抽象类代码。

4、例举ASP.NET页面之间传值的几种方式。

5、override与重载的区别

6、求以下表达式的值,写出你想的到其中一种实现方法:1-2+3-4+……..+m7、.NET中读写数据库需要用到那些类?他们的作用?

8、.NET异常处理机制?

9、写出下面题目的SQL语句

表1TB_BMBM 部门基本信息表

BMBM 部门编码

BMMC 部门名称

表2TB_BMJE部门月营业表,YY年

MM 月

BMBM 部门编码

JE部门营业额

A.要求写一条SQL语句查询有哪些部门年累计金额>1000的,注意要按 年YY,部门名称BMMC分组的累计金额查询

B.查出表1中有哪些部门不在(表2中季度金额>200的部门)中

10、用一条SQL语句 查询出每门课都大于80分的学生姓名

namekechengfenshu

张三语文81

张三数学75

李四语文76

李四数学90

王五语文81

王五数学100

王五英语90

第三篇:-.net面试题

Face to Face内容

有可能有笔试:

两份英文写作测试题:

1、将高知特的中文描述翻译成英文;(看一下高知特的网站就可以啦,但不要完全照搬,那样很容易看出来)

2、根据一个特定的情景来写一封英文

(本次是关于如何向自己的Manager报告自己的项目需要延期,并提供解决计划)。

英文口试:

1、自我介绍(英文);在介绍的中途,HR不时会打断你绵绵不绝的背诵,从你的简历或者你的自我介绍中提一些相关的问题,所以你务必做好准备

2、项目经验(包括几个项目,什么技术等);说说你最近的一个项目

3、懂哪些技术,每种技术用的时间。

4、兴趣爱好等。

5、说说你的前任老大是一个什么样的人

6、对薪资的期望值

小结一下:尽量放松,不要怕英文,只要你开口,别管什么语法错误,记住一条:英文是用来交流的,只要你表达清楚自己要说的意思,那你就OK啦

注:Hr比较喜欢压力面试,就是比如问到你期望的薪水,然后她直接说给不到,看人选的反应。其实薪水是由面试结果来评定的,所以Hr只是想看人选是更关注什么,是薪水还是好的机会。所以薪水方面不用顾虑太多,表现出对机会的看重就好了。

英文面试结束后,是招人的项目组负责人面试,此轮面试时间约为1个小时

技术考察可分为三个类别:

1、一些技术细节,基于所做的项目,此部分面试比重最大;

2、对WEB开发比较看重;

3、对开发的专业性:如UML分析,设计模式能了解会更好。

面试题目:

1、自我介绍(英文),不会的话用中文;

2、项目经验((包括几个项目,什么技术等));

3、然后问技术:c#基本概念包括:接口和抽象类区别,ado.net,web service;

4、设计模式,mvc,分层设计,web service安全机制;

5、Oracle数据库设计的原则,后台程序

6、算法:包括树的概念;

7、O/R mapping的概念,优点和缺点等;

8、Xml的文档处理,包括xpath,dom,xsl等

9、GAC,strongName,sql index,还有SSAS,dim,facttable10、T-SQL请解释事务处理,并发处理,游标概念

SQL-Server2005中PIVOT的用途以及CASE的用途

三层框架,如何开发数据层程序集

11、问到Session,Javascript

如何设计一个三层架构的应用

如何在三层架构的应用中传递数据

介绍以前的项目中某一个细节

给你一个需求,叫你设计数据库模型

如何验证用户的输入信息

有个关于安全问题的题目

12、请说明在.net中常用的几种页面间传递参数的方法

13、WebForm窗体数据传递

14、ViewState,Session,Application,Cache区别

15、IIS安全机制

16、托管和非托管的区别

17、对象的生存周期,及内存回收机制

18、多线程

WSE

Remoting

NUnit

PowerDesigner19、设计模式(只说自己用过的,会要求举出实际经历)

20、OO的特征(详细讲出)

21、ADO.Net中的重要类的用法,及性能、使用上的区别

22、开始时开发的.net 程序用户体验比较快,后来慢了,从哪些方面解决。

23、用户将数据导入excel,用javascript或者思路可以提示用户导入开始,结束。

24、临时表的分类,索引

25、OO的概念。

26、多线程,如何防止死锁

27、xml28、asp.net page 的生命周期,重要的事件,顺序

29、webservice 协议,用什么标识一个webservice方法,如何公开一个webservice让别的开发者调用?(这个问题

忘了是不是这样问的)

30、response.redirect server,transfer 区别,哪个效率高

31、游标,可不可以嵌套,可以用什么办法替换使用游标

32、数据库的3大范式

注:如果面试人谈到那一方面比较深入,面试官可能会比较深入的问下去,所以不知道的最好坦白说不知道,不要硬充明白,以免留下坏印象。

.net面试侧重点:

1、如果有多年的工作经验他们希望你至少在以往的工作中在某一个方向很专,如数据库设计、数据库优化、业务层设计;

2、如果在对大数据量的事务、并发处理和ASP.net表现层有研究他们更看重

3、如果有一些设计经验:如UML、设计模式会更好

4、如果工作多年他们希望有项目管理经验:如需求分析、团队管理等等

5、英文方面:英语能对话就可以了,笔试只是测试下英语读写

而且面试都是中国人,对于技术问题可以用中文回答

面试的过程中会让你在简历上找一个项目重点说明:承担的角色,用到何种技术、项目的软件架构,项目有什么是当时觉得做的最好的。整个面试的过程还是以简历上反映的技术为主。

以下是一个资深.net人员根据面试题目做的总结:

要的是WEB开发,用的数据库是SQLSERVER2005,对人员比较看重数据库。基本还是应用层级的,准备:侧重复习数据库编程方面的知识,server端的。.net和数据库之间也要掌握。

第四篇:.NET 面试题紧急

转].NET面试题集

[收藏此页] [打印] 【IT168知识库】

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

2.讲一讲你理解的web service,在dot net framework中,怎么很好的结合xml?(讲概念就行了)3.C#, Java 和 c++的特点,有什么相同的地方,不同的地方,C#分别从c++和java中吸取了他们那些优点?

4.C#可否对内存进行直接的操作?(这可是个难点哦?要注意!)

5.用Visual C++ 6.0编写的代码(unmanaged code),如何在CLR下和其他dot net component结合? 6.以前作过的一些项目?介绍一下自己的编程经验。(这是蒙混不过去的,基本一问就知道是真是假)7.你对公司有什么期望?你的薪水期望值?为什么学计算机?以前的工作经验(这非常重要)?

Q3:维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么 Q4:ADO。NET相对于ADO等主要有什么改进? Q5:ASP。NET与ASP相比,主要有哪些进步? Q6:C#中的委托是什么?事件是不是一种委托?

Q7:描述一下C#中索引器的实现过程,是否只能根据数字进行索引? Q8:C#中要使一个类支持FOREACH遍历,实现过程怎样?

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

Q11:你对XMLHTTP、WEBSERVICE 了解吗?简单描述其特点、作用 Q12:接口和抽象类有什么区别?你选择使用接口和抽象类的依据是什么?

Q13:自定义控件和一般用户控件的异同?如果要用这两者之一,你会选择哪种?为什么 Q14:大概描述一下ASP。NET服务器控件的生命周期 Q15:UML Q16:面向对象的概念,主要特点 Q17:类划分的依据。类粒度问题 Q18:事物管理问题

第一,谈谈final, finally, finalize的区别。

第二,Anonymous Inner Class(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。第四,&和&&的区别。

第五,HashMap和Hashtable的区别。第六,Collection 和 Collections的区别。第七,什么时候用assert。第八,GC是什么? 为什么要有GC? 第九,String s = new String(“xyz”);创建了几个String Object? 第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 第十一,short s1 = 1;s1 = s1 + 1;有什么错? short s1 = 1;s1 += 1;有什么错? 第十二,sleep()和 wait()有什么区别? 第十三,Java有没有goto? 第十四,数组有没有length()这个方法? String有没有length()这个方法? 第十五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 第十六,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别? 第十七,给我一个你最常见到的runtime exception。第十八,error和exception有什么区别? 第十九,List, Set, Map是否继承自Collection接口? 第二十,abstract class和interface有什么区别? 第二十一,abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized? 第二十二,接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 第二十三,启动一个线程是用run()还是start()? 第二十四,构造器Constructor是否可被override? 第二十五,是否可以继承String类? 第二十六,当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 第二十七,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 第二十八,编程题: 用最有效率的方法算出2乘以8等於几? 第二十九,两个对象值相同(x.equals(y)== true),但却可有不同的hash code,这句话对不对? 第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上? 第三十二,编程题: 写一个Singleton出来。数据库方面:

1.存储过程和函数的区别 2.事务是什么?

3.游标的作用?如何知道游标已经到了最后?

4.触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。

1。用C#实现以下功能

a 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。b 对上面生成的数组排序,需要支持升序、降序两种顺序

2。请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。3。请说明.net中的错误处理机制,并举例 4。请说出强名的含义

5。请列出c#中几种循环的方法,并指出他们的不同 6。请指出.net中所有类型的基类 7。请指出GAC的含义

8。SQL SREVER中,向一个表中插入了新数据,如何快捷的得到自增量字段的当前值 您在什么情况下会用到虚方法?它与接口有什么不同? Q:Override与重载有什么区别? Q:值类型与引用类型有什么区别? Q:怎样理解静态变量?

Q:向服务器发送请求有几种方式? Q:DataReader与Dataset有什么区别?

Q:如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?

Q:用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? Q:软件开发过程一般有几个阶段?每个阶段的作用?

Q:微软推出了一系列的Application Block,请举出您所知道的Application Block并说明其作用? Q:请列举一些您用到过的设计模式以及在什么情况下使用该模式? Q:您对WebService的体会?

Q:您对编程的兴趣如何?工作中遇到不懂的问题是怎样去解决的?您一般怎样去提高自己的编程水平? Q:您离职的原因是什么?

Q:通过超链接怎样传递中文参数?

Q:请编程遍历页面上所有TextBox控件并给它赋值为string.Empty? Q:请编程实现一个冒泡排序算法?

1、override与重载的区别

2、.net的错误处理机制是什么

3、C#中接口和类的异同

4、DataReader和DataSet的异同

1.有哪几种方法可以实现一个类存取另外一个类的成员函数及属性,并请举列来加以说明和分析.2.如果需记录类的实例个数,该如何实现,请写一个简单的类于以证明.3.A类是B类的基类,并且都有自己的构造,析构函数,请举例证明B类从实例化到消亡过程中构造,析构函数的执行过程.4.需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.一.填空题

1.c#中的三元运算符是__?:___? 2.当整数a赋值给一个object对象时,整数a将会被__装箱(封装)___? 3.类成员有_____种可访问形式? this.;new Class().Method;4.public static const int A=1;这段代码有错误么?是什么? const不能用static修饰 5.float f=-123.567F;int i=(int)f;i的值现在是_____? 123 6.利用operator声明且仅声明了“==”,有什么错误么? 7.委托声明的关键字是______? delagete 8.用sealed修饰的类有什么特点?密封,不能继承

9.在Asp.net中所有的自定义用户控件都必须继承自________?Control 10.在.Net中所有可序列化的类都被标记为_____? 11.在.Net托管代码中我们不用担心内存漏洞,这是因为有了______?gc 12.下面的代码中有什么错误吗?_______ using System;class A { public virtual void F(){ Console.WriteLine(“A.F”);} } abstract class B:A { public abstract override void F();// new public abstract void F();}

13.当类T只声明了私有实例构造函数时,则在T的程序文本外部,___可以___(可以 or 不可以)从T派生出新的类,不可以____(可以 or 不可以)直接创建T的任何实例。14.下面这段代码有错误么? switch(i){ case(): CaseZero();break;case 1: CaseOne();break;case 2: dufault;//wrong CaseTwo();break;} 15.在.Net中,类System.Web.UI.Page 可以被继承么?可以

二.简答题

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

4.谈谈类和结构的区别?类是引用类型、结构是值类型

5.一个长度为10000的字符串,通过随机从a-z中抽取10000个字符组成。请用c#语言编写主要程序来实现。

6.对于这样的一个枚举类型: enum Color:byte{ Red, Green, Blue, Orange } string[] ss=Enum.GetNames(typeof(Color));byte[] bb=Enum.GetValues(typeof(Color));试写一段程序显示出枚举类型中定义的所有符号名称以及它们对应的数值。7.您了解设计模式么?请列出您所知道的设计模式的名称。// 8.请在SQL Server中设计表来保存一个树状结构的组织结构图(假设结构图中只有名称这一项内容需要保存),如果我想查询某一职位下的所有职位,用一个存储过程来实现,你有什么思路? 9.什么叫做SQL注入,如何防止?请举例说明。10.下面这段代码输出什么?为什么? int i=5;int j=5;if(Object.ReferenceEquals(i,j))Console.WriteLine(“Equal”);else Console.WriteLine(“Not Equal”);//不相等,因为比较的是对象

1.写一个实现对一段字符串翻转的方法,附加一些条件,如其中包括“,”、“.”,对其设计测试用例。2.对一支纸杯设计测试用例(可以是广义的杯,不一定是某一支特定功能的杯)开发语言概念题 3.什么是反射?

4.用Singleton如何写设计模式 5.C#中的垃圾回收机制是怎样的? 6.什么是Application Pool?

7.链表和数组的区别,各有什么优缺点.8.Remoting在客户端服务器怎么实现 ? 9.什么是友元函数? 10.用标准C如何实现多态? 11.什么是虚函数? 12.什么是抽象函数?

13.什么是内存泄漏,怎样最简单的方法判断被存泄漏 ? 英语题

14.用英文介绍一下使用C#/C++做的项目,主要功能 15.如果要与美国开电话会议,会如何与美国的工程师沟通 16.如果老板认为你的技术落后,你会怎么回答

数据库知识题

17.使用什么工具来调用存储过程

18.SQL Server的两种索引是何形式?索引的作用?索引的优缺点? 19.触发器的作用

其它知识题及问题 20.什么是Web Service? 21.什么是XML? 22.Socket怎么实现?

-某人的答案

请大家指出我的错误

1.C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里? 一个是属性,用于存取类的字段,一个是特性,用来标识类,方法等的附加性质

2.讲一讲你理解的web service,在dot net framework中,怎么很好的结合xml?(讲概念就行了)不会,正在学习中

3.C#, Java 和 c++的特点,有什么相同的地方,不同的地方,C#分别从c++和java中吸取了他们那些优点?

相同点:都是C系的,都是面向对象

不同点:Java,C#都是建立在虚拟机机制上,而C++不是

4.C#可否对内存进行直接的操作?(这可是个难点哦?要注意!)可以

5.用Visual C++ 6.0编写的代码(unmanaged code),如何在CLR下和其他dot net component结合? 编译Dll,[DLLImport]

6.以前作过的一些项目?介绍一下自己的编程经验。(这是蒙混不过去的,基本一问就知道是真是假)7.你对公司有什么期望?你的薪水期望值?为什么学计算机?以前的工作经验(这非常重要)?

Q3:维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么 触发器,性能好,事务性

Q4:ADO。NET相对于ADO等主要有什么改进? 新增dataset等,不需要随时保持连接,性能提高

Q5:ASP。NET与ASP相比,主要有哪些进步? asp解释形,aspx编译型,性能提高,有利于保护源码

Q6:C#中的委托是什么?事件是不是一种委托? 委托是一种安全的函数指针,事件是一种消息机制

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

Q8:C#中要使一个类支持FOREACH遍历,实现过程怎样? 实现一个接口

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

Q11:你对XMLHTTP、WEBSERVICE 了解吗?简单描述其特点、作用 xmlhttp可以主动获取远端web代码,类似HttpWebRequest

Q12:接口和抽象类有什么区别?你选择使用接口和抽象类的依据是什么? 接口用于规范,抽象类用于共性。

Q15:UML 统一建模语言

Q16:面向对象的概念,主要特点 封装,基层,多态

数据库方面:

1.存储过程和函数的区别

存储过程是编译好的存储在数据库的操作,函数不用说了。。

2.事务是什么? 具有原子性特点

3.游标的作用?如何知道游标已经到了最后? 指示当前记录的位置,检查NULL

4.触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。一个是操作前,一个是操作后

1。用C#实现以下功能

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

b 对上面生成的数组排序,需要支持升序、降序两种顺序 ArrayList本身就能排序

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

cookie 简单,但可能不支持,可能被伪造 input ttype=“hidden” 简单,可能被伪造 url参数简单,显示于地址栏,长度有限 数据库稳定,安全,但性能相对弱

3。请说明.net中的错误处理机制,并举例 try catch final

4。请说出强名的含义

具有自己的key,可以在GAC为公用

5。请列出c#中几种循环的方法,并指出他们的不同 for wile foreach

6。请指出.net中所有类型的基类 object

7。请指出GAC的含义 全局程序集缓存

8。SQL SREVER中,向一个表中插入了新数据,如何快捷的得到自增量字段的当前值 select @@id...什么的,忘了

您在什么情况下会用到虚方法?它与接口有什么不同? 前面已说

Q:Override与重载有什么区别?

一个是重写父类函数,一个是同一个函数的几种形式

Q:值类型与引用类型有什么区别? 值和指针的区别

Q:怎样理解静态变量? 所有实例公用一个的变量

Q:向服务器发送请求有几种方式? get post

Q:DataReader与Dataset有什么区别? 一个是只能向前的只读游标,一个是内存中的表

Q:如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理? input type=“" url 数据库

Q:用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 三层,表现,逻辑,数据,安全性,维护性

Q:软件开发过程一般有几个阶段?每个阶段的作用? 需求分析,架构设计,代码编写,QA,部署

Q:请列举一些您用到过的设计模式以及在什么情况下使用该模式? 著名的singleton

Q:您对编程的兴趣如何?工作中遇到不懂的问题是怎样去解决的?您一般怎样去提高自己的编程水平? Q:您离职的原因是什么?

Q:通过超链接怎样传递中文参数? URLEncode URLDecode

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

1.有哪几种方法可以实现一个类存取另外一个类的成员函数及属性,并请举列来加以说明和分析.同一个名称控件直接,或者反射

2.如果需记录类的实例个数,该如何实现,请写一个简单的类于以证明.const static int classNum=0;classNum++;

3.A类是B类的基类,并且都有自己的构造,析构函数,请举例证明B类从实例化到消亡过程中构造,析构函数的执行过程.构造先父后子,析够反之

4.需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.string inputStr=” xx xx “;inputStr=Regex.Replace(inputStr.Trim(),” *“,” “);

二.简答题

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

using 引入名称空间或者使用非托管资源 new 新建实例或者隐藏父类方法

4.谈谈类和结构的区别? 类是引用类型、结构是值类型

5.一个长度为10000的字符串,通过随机从a-z中抽取10000个字符组成。请用c#语言编写主要程序来实现。

和前面那个差不多,一样

6.对于这样的一个枚举类型: enum Color:byte{ Red, Green, Blue, Orange } string[] ss=Enum.GetNames(typeof(Color));byte[] bb=Enum.GetValues(typeof(Color));试写一段程序显示出枚举类型中定义的所有符号名称以及它们对应的数值。foreach

9.什么叫做SQL注入,如何防止?请举例说明。利用sql关键字对网站进行攻击。过滤关键字'等

10.下面这段代码输出什么?为什么? int i=5;int j=5;if(Object.ReferenceEquals(i,j))Console.WriteLine(”Equal“);else Console.WriteLine(”Not Equal“);//不相等,因为比较的是对象

1.写一个实现对一段字符串翻转的方法,附加一些条件,如其中包括“,”、“.”,对其设计测试用例。inputStr=inputStr.ToCharArray().Reverse().ToString();

2.对一支纸杯设计测试用例(可以是广义的杯,不一定是某一支特定功能的杯)太宽了。。

开发语言概念题 3.什么是反射? 动态获取程序集信息

4.用Singleton如何写设计模式 static属性里面new ,构造函数private

5.C#中的垃圾回收机制是怎样的?

三个generation,当每个generation内存满了的时候检查引用,无引用就回收内存

6.什么是Application Pool?

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

7.链表和数组的区别,各有什么优缺点.一个可以动态增长,一个固定(VB中可以Redim),性能数组教好

8.Remoting在客户端服务器怎么实现 ? 9.什么是友元函数?

friendly声明,可以访问protect级别方法

11.什么是虚函数? 可以被重写

12.什么是抽象函数? 必须被重写

13.什么是内存泄漏,怎样最简单的方法判断被存泄漏 ? C++,C中忘了释放内存,内存不会再次分配

数据库知识题

17.使用什么工具来调用存储过程 任何一种语言

18.SQL Server的两种索引是何形式?索引的作用?索引的优缺点? cluster和非cluster,加速查找,占用额外控件,维护索引耗费时间

19.触发器的作用

保证数据库操作变更能接到通知

其它知识题及问题 20.什么是Web Service? 使应用程序在整个网上可以被调用

21.什么是XML?

可扩展标记语言,可以做配置文件,可以传输数据,可以存储数据

22.Socket怎么实现? 这个不知道怎么说了。。

1.1.1 Visual Studio.NET 有几个集成开发环境? ● A.一个 ○ B.两个 ○ C.三个 ○ D.四个

1.1.2 我们称.NET编程架构是什么?

● A..NET Framework ○ B.VS.NET ○ C.XML Web Service ○ D.开发工具

1.1.3 以下那些标准是与Web Service相关的

○ A..SOAP ○ B.WSDL ○ C.UDDI ○ D.以上都是

1.1.4 SOAP标准是谁来制定的? ○ A.Microsoft ● B.W3C ○ C.IBM ○ D.SUN

1.1.5 Visual Studio.NET 会支持多少种开发语言? ○ A.两种 ○ B.三种 ○ C.四种 ● D.多种

1.1.6 ASP.NET 是用来开发何种应用的?

○ A.Windows应用 ○ B..NET组件类 ● C.Web应用 ○ D.命令行应用程序

1.1.7 C#编译器将C#程序编译成什么样的代码? A.汇编语言代码 B.机器语言代码 C.微软中间语言代码 D.二进制代码 答案:C

1.2 B 类题

1.2.1 所有的.NET基类库是用什么语言编写的? ○ A.C++ ● B.C# ○ C.VB.NET ○ D.汇编

1.2.2 什么语言提供了对XML注释的支持?

○ A.C++ ● B.C# ○ C.VB.NET ○ D.Jscript

1.2.3 关于微软中间语言,下面什么说法错误的? ●A.它是解释执行的。

B.在执行时,它被转化为机器代码。C.它是处理器无关的指令集。D.它允许真正的跨语言集成。

1.2.4.ASP.NET比ASP相比较,下列哪个是不正确的? A.支持更多编程语言

●B.可以同时存在于一个应用程序里

C.用户界面和代码分离,大大提高编程质量 D.都支持页面级和应用程序级的跟踪调试

1.2.5 关于VB.NET,与C#(发音,C sharp)比较,下列哪项是不正确的? A.都是类型安全的编程语言。B.都支持自动垃圾收集。C.都是面向对象的语言。

●D.VB.NET不支持API调用。

1.2.6 微软在VS.NET默认安装中提供了几种编程语言的开发环境? A.2种 B.3种 ●C.4种 D.5种抢答(规则,题念完了,才可以抢答)

2.1 下列哪些不是公共语言运行环境(CLR)的特性? ●A.代码执行管理 ●B.管理函数指针调用 C.类型安全

D.代码访问安全

2.2 下面哪个不是ADO.NET对象? A.数据适配器DataAdapter ●B.记录集Recordset C.数据集DataSet

2.3 什么工具来进行数据库建模? A.SQL Server。

B.VS.NET架构版中的Visio。●C.VS.NET的集成环境。D.Biztalk Server。

2.4 ACT(微软应用程序中心测试工具)能够用来进行下面哪些测试: A.Web应用程序的功能性测试 B.性能测试 C.压力测试 ●D.以上所有

2.5 ADO.NET中,数据集的Schema(结构定义)用什么来描述? A.SQL语句 ●B.XML C.为达到最高的效率而设计的二进制标准

2.6 ASP.NET支持哪种会话状态保存的方式: A.服务器进程内

B.状态服务(State Service)C.SQL 服务器 ●D.以上都是风险

3.1 A类题

3.1.1 下列哪种语言不是面向对象的? A.C# ●B.VB C.VB.NET D.C++

3.1.2.NET框架不可以运行在什么样的平台上? A.Windows 2000 B.Windows NT 4.0 C.Windows 98 D.Windows XP E.Windows 95

3.1.3 VB.NET 是一种完全面向对象的语言吗? ● A.是 ○ B.不是

3.1.4 用户可以在.NET环境中使用Java语言吗? ● A.可以 ○ B.不可以

3.1.5 ASP和ASP.NET应用程序可以同时在同一个Web Server上运行,并不相互影响。这种说法: ●A.正确 B.错误

3.1.6 在.NET应用中,如果开发时分配了内存却不小心忘了及时释放,会造成内存不足吗? A.会

●B.不会

3.2 B类题

3.3 对于发布.NET应用,那个说法正确? A.只能使用文件复制发布

B.只能使用Windows Installer C.只能使用打包和发布向导 ●D.以上方法都可以

3.3.1 关于C#语言的描述,下列哪项是不正确的? A.和Java一样,都起源于C++语言

B.和Java都已经提交给ECMA国际标准组织。●C.它支持C++所不支持的接口(Interface)D.它支持自动垃圾回收

3.3.2 下面哪一条有关ASP.NET是错误的? ●A.比ASP需要更多代码 B.是编译执行的

C.服务器端控件可以减小客户端编程工作量 D.编译后的页可以被缓存起来提高性能

3.3.3 真正实现跨平台集成的技术是什么? A.HTML。B.Java。C.DCOM。

●D.XML web service。

3.3.4 微软.NET框架快速开发的原因是什么? A.丰富的类库 B.统一的编程模型 C.优秀的集成环境 ●D.以上都是

3.3.5 下列哪条不包括在.NET框架中? A.ASP.NET ●B.MFC C.ADO.NET D.Windows 表单

3.4 C类题

3.4.1 关于VC++.NET的管理扩展,下面哪个说法不正确? A.它默认情况下不被安装

B.它可以将现有的代码直接移植到.NET C.它可以完成所有C#能做到的 D.它完全支持.NET框架

3.4.2 VS.NET支持VB6的升级,不正确的说法是哪个? A.VS.NET提供该升级向导

B.VB表单和用户控件被升级到Windows表单 C.ADO数据绑定可升级到ADO.NET D.ActiveX文档, DHTML页面被升级

13.ADO.NET数据集在那里创建数据缓冲? A.数据库服务器内存 ●B.Web服务器内存 C.客户端内存

3.4.3 下面哪种特性VB.NET中没有提供? A.类的继承 B.指针

C.Delegate D.Attributes

11.在C#中,怎样决定一个对象的类型? A.使用is操作符 B.使用typeof操作符 C.使用GetType方法

3.4.4 在一个过程里面发生了意外(Exception),而该过程里没有设置如何处理它,那么会发生什么情况? A.产生错误。

B.该应用程序被终止。C.显示错误信息。

●D.该意外传回调用者或者前一个过程

备份题(如果出现相同的最高分)

3.5 当你升级一个Visual Basic 6.0的应用程序时,变体数据类型会被转换成: A.整型 B.字节型

●C.对象类型 D.字符串类型

一个名字空间可以分布在多少个装配件里面? A.无 B.一个 C.两个

●D.可以按需要任意多个。

5.为了使用全局装配件缓冲,装配件必须有: ●A 强命名 B 弱命名 C 都可以

6.我们可以使用那个命令行工具从全局装配件缓冲中安装或删除装配件? ●A.gacutil.exe B.pview.exe C.al.exe D.csc.exe

7..NET中下列什么工具可以用来察看策略信息? A 代码访问安全工具(Caspol.exe)B 权限查看工具(permview.exe)C 都可以

11.12.在ADO.NET中,数据关联类说明了在同一个数据集里的两张数据表中的一列或多列之间的关系。这种说法: A.正确 ●B.错误

13.非连接数据访问模式比连接数据访问模式更适合于那些需要高可扩展性的应用程序。这种说法: ●A.正确 B.错误

16.事务的启动或终止可以使用下面那种对象: A.事务对象 B.连接对象 C.命令对象

15.数据适配器能被用来基于SQL join操作更新数据表中的数据,这种说法: A.正确 ●B.错误

没事自已检查一下自已,答案仅供参考

一、选择填空题(每空2分,共60分)

1.在对SQL Server 数据库操作时应选用()。a)SQL Server.NET Framework 数据提供程序; b)OLE DB.NET Framework 数据提供程序; c)ODBC.NET Framework 数据提供程序; d)Oracle.NET Framework数据提供程序; 2.下列选项中,()是引用类型。a)enum类型 b)struct类型 c)string类型 d)int类型

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

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

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

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

d)以上都不正确。

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

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

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

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

d)在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。5.C#的数据类型有()a)值类型和调用类型; b)值类型和引用类型; c)引用类型和关系类型; d)关系类型和调用类型; 6.下列描述错误的是()

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

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

d)一个类可以有多个基类和多个基接口; 7.在DOM中,装载一个XML文档的方法()a)save方法 b)load方法 c)loadXML方法 d)send方法

8.下列关于构造函数的描述正确的是()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]的值是()。a)9 b)2 c)6 d)越界

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

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

12.ASP.NET框架中,服务器控件是为配合Web表单工作而专门设计的。服务器控件有两种类型,它们是()a)HTML控件和Web控件 b)HTML控件和XML控件 c)XML控件和Web控件 d)HTML控件和IIS控件 13.ASP.NET中,在Web窗体页上注册一个用户控件,指定该控件的名称为”Mike”,正确的注册指令为()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()方法,下面叙述错误的是()。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控件的属性和事件的描述不正确的是()。a)Buttons属性表示ToolBar控件的所有工具栏按钮

b)ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度 c)DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示)旁边是否显示下箭头键

d)ButtonClick事件在用户单击工具栏任何地方时都会触发

17.在ADO.NET中执行一个存储过程时,如果要设置输出参数则必须同时设置参数的方向和(),必要时还要设置参数尺寸。a)大小; b)上限; c)初始值; d)类型;

18.如果将窗体的FormBoderStyle设置为None,则()。a)窗体没有边框并不能调整大小; b)窗体没有边框但能调整大小; c)窗体有边框但不能调整大小; d)窗体是透明的;

19.如果要将窗体设置为透明的,则()a)要将FormBoderStyle属性设置为None; b)要将Opacity属性设置为小于100%得值; c)要将locked 属性设置为True; d)要将 Enabled属性设置为True;

20.下列关于C#中索引器理解正确的是()a)索引器的参数必须是两个或两个以上 b)索引器的参数类型必须是整数型 c)索引器没有名字 d)以上皆非

21.下面描述错误的是()。a)窗体也是控件; b)窗体也是类;

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

22.要对注册表进行操作则必须包含()。a)System.ComponentModel命名空间; b)System.Collections命名空间; c)System.Threading命名空间; d)Microsoft.Win32命名空间;

23.要创建多文档应用程序,需要将窗体的()属性设为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的描述错误的是()。a)XML提供一种描述结构化数据的方法;

b)XML 是一种简单、与平台无关并被广泛采用的标准; c)XML文档可承载各种信息; d)XML只是为了生成结构化文档; 上述答案:

1.在对SQL Server 数据库操作时应选用()a;2.下列选项中,()是引用类型。

c)string类型//其构造函数为静态构造函数所以看起来像值类型

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

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

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

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

5.C#的数据类型有()a)值类型和调用类型;

6.下列描述错误的是()

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

7.在DOM中,装载一个XML文档的方法()

b)load方法

8.下列关于构造函数的描述正确的是()c)构造函数必须与类名相同

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)越界

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

a)方法、属性、索引器和事件;

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

13.ASP.NET中,在Web窗体页上注册一个用户控件,指定该控件的名称为”Mike”,正确的注册指令为()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)Select操作的Sql语句只能由ExecuteReader()方法来执行;

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

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

16.Winform中,关于ToolBar控件的属性和事件的描述不正确的是()。a)Buttons属性表示ToolBar控件的所有工具栏按钮

b)ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度 c)DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示)旁边是否显示下箭头键

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

b)上限;

18.如果将窗体的FormBoderStyle设置为None,则()。a)窗体没有边框并不能调整大小; b)窗体没有边框但能调整大小; c)窗体有边框但不能调整大小; d)窗体是透明的;

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

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

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

b)索引器的参数类型必须是整数型

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

c)控件是从窗体继承来的;

22.要对注册表进行操作则必须包含()。a)System.ComponentModel命名空间; b)System.Collections命名空间; c)System.Threading命名空间; d)Microsoft.Win32命名空间;

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

d)IsMdiContainer;

24.如果设treeView1=new TreeView(),则treeView1.Nodes.Add(”根节点“)返回的是一个()类型的值。a)TreeNode; b)int; c)string; d)TreeView;

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

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

一、.Net Framework部分* 1.装箱、拆箱操作发生在:()A.类与对象之间 B.对象与对象之间 C.引用类型与值类型之间 D.引用类型与引用类型之间 2.用户类若想支持Foreach语句需要实现的接口是:()A.IEnumerableB.IEnumerator C.ICollectionD.ICollectData 3..Net Framework通过什么与COM组件进行交互操作?()A.Side By SideB.Web Service C.InteropD.PInvoke 4..Net依靠以下哪一项技术解决COM存在的Dll Hell问题的?()A.Side By SideB.Interop C.PInvokeD.COM+ 5.装箱与拆箱操作是否是互逆的操作?()A.是B.否

6.以下哪个是可以变长的数组?()A.ArrayB.string[] C.string[N]D.ArrayList 7.用户自定义异常类需要从以下哪个类继承:()A.ExceptionB.CustomException C.ApplicationExceptionD.BaseException 8.以下代码段中能否编译通过?请给出理由。try { } catch(FileNotFoundException e1){ } catch(Exception e2){ } catch(IOException e3){ } catch { }

9.对于一个实现了IDisposable接口的类,以下哪些项可以执行与释放或重置非托管资源相关的应用程序定义的任务?(多选)()A.CloseB.DisposeC.Finalize D.usingE.Quit 10..Net依赖以下哪项技术实现跨语言互用性?()A.CLRB.CTSC.CLSD.CTT 11.请问: String类与StringBuilder类有什么区别?为什么在.Net类库中要同时存在这2个类?(简答)

12.以下哪个类是int的基类?()A.Int32B.ObjectC.ValueTypeD.Int16

二、C# 部分* 13.以下哪些可以作为接口成员?(多选)()A.方法B.属性C.字段D.事件E.索引器 F.构造函数G.析构函数

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

15.“访问范围限定于此程序或那些由它所属的类派生的类型”是对以下哪个成员可访问性含义的正确描述?()A.publicB.protectedC.internalD.protected 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的值是多少?()A.1B.2C.3D.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){ Class2 o = new Class2();Console.WriteLine(o.MethodA());} } 请问,o.MethodA调用的是:()A.BaseClass.MethodAB.Class2.MethodA C.Class1.MethodAD.都不是

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

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

20.请叙述类与结构的区别。

三、ASP.NET & ADO.NET部分* 21.您需要创建一个ASP.NET应用程序,公司考虑使用Windows身份认证。所有的用户都存在于AllWin这个域中。

您想要使用下列认证规则来配置这个应用程序: • 匿名用户不允许访问这个应用程序。

• 所有雇员除了Tess和King都允许访问这个应用程序。

请问您应该使用以下哪一个代码段来配置这个应用程序?()A. B. C. D. E. 22.您要创建一个显示公司员工列表的应用程序。您使用一个DataGrid控件显示员工的列表。您打算修改这个控件以便在这个Grid的Footer显示员工合计数。请问您应该怎么做?()A.重写OnPreRender事件,当Grid的Footer行被创建时显示合计数。B.重写OnItemCreated事件,当Grid的Footer行被创建时显示合计数。C.重写OnItemDataBound事件,当Grid的Footer行被创建时显示合计数。D.重写OnLayout事件,当Grid的Footer行被创建时显示合计数。23.您要创建ASP.NET应用程序用于运行AllWin公司内部的Web站点,这个应用程序包含了50个页面。您想要配置这个应用程序以便当发生一个HTTP代码错误时它可以显示一个自定义的错误页面给用户。您想要花最小的代价完成这些目标,您应该怎么做?(多选)()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库。请问,应该选择下面哪一个字符串?()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,请问该怎么做?()A.将SqlCommand对象的CommandType属性修改为CommandType.Text,将CommandText属性修改为”SELECT * FROM procProductList ORDER BY ProductName DESC”。然后将这个DataTable对象绑定到DataGrid控件。B.创建一个基于这个DataTable对象的新的DataView并将这个DataView的Sort属性设置为“ProductName DESC”。然后将这个DataView对象绑定到DataGrid控件。

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

四、Xml部分 27.请写出获取上述Xml中全部没有属性的BBB元素的XPath。

28.请写出获取上述Xml中所有含有2个子节点的元素的XPath。

五、Javascript & DHtml部分* 登录 <script Language=”javascript”> function CheckFom(){} </script>

用户名: 密 码:
29.请完成上面脚本区中的CheckForm函数。要求用户名、密码框不允许为空。

30.您需要动态创建一个文本框,并且当此文本框获得焦点后弹出对话框,提示“Ok”。

六、逻辑推理部分* 31.一人拿一张百元钞票到商店买了25元的东西,店主由于手头没有零钱,便拿这张百元钞票到隔壁的小摊贩那里换了100元零钱,并找回了那人75元钱。那人拿着25元的东西和75元零钱走了。过了一会儿,隔壁小摊贩找到店主,说刚才店主拿来换零的百元钞票为假币。店主仔细一看,果然是假钞。店主只好又找了一张真的百元钞票给小摊贩。

问:在整个过程中,店主一共亏了多少钱财?(不计商品利润)

76.C#代码实现,确保windows程序只有一个实例(instance)

///

///应用程序的主入口点。///

[STAThread]

static void Main(){

//防止程序多次运行

if(!OneInstance.IsFirst(”GetPayInfo“)){

MessageBox.Show(”警告:程序正在运行中!请不要重复打开程序!可在右下角系统栏找到!“,”程序错误提示:“,MessageBoxButtons.OK,MessageBoxIcon.Stop);

return;}

Application.Run(new Form1());}

// ******************* 防止程序多次执行 ************************** public abstract class OneInstance {

///

///判断程序是否正在运行

///

///

程序名称

///如果程序是第一次运行返回True,否则返回False

public static bool IsFirst(string appId){

bool ret=false;

if(OpenMutex(0x1F0001,0,appId)==IntPtr.Zero){

CreateMutex(IntPtr.Zero,0,appId);ret=true;}

return ret;}

[DllImport(”Kernel32.dll“,CharSet=CharSet.Auto)]

private static extern IntPtr OpenMutex(uint dwDesiredAccess, // access

int bInheritHandle, // inheritance option

string lpName // object name);

[DllImport(”Kernel32.dll",CharSet=CharSet.Auto)]

private static extern IntPtr CreateMutex(IntPtr lpMutexAttributes, // SD

int bInitialOwner, // initial owner

string lpName // object name);}

第五篇:.Net面试题(个人整理)

第1页 /共17.列举ASP.NET 页面之间传递值的几种方式。答:

 QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。

 Application对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock。

 Session变量想必这个肯定是大家使用中最常见的用法了,作用于用户个人,所以,过量的存储会导致服务器内存资源的耗尽。

 Cookie对象变量这个也是大家常使用的方法,与Session一样,其是什对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用。

 Server.Transfer方法这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。

3.一列数的规则如下: 1、1、2、3、5、8、13、21、34......求第30位数是多少,用递归算法实现。

答:publicstaticint Calculate(int x){ int retInt = 1;if(x > 2){ return Calculate(x1);} else

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

答:委托是一种定义方法签名的类型,可以与具有兼容签名的任何方法关联。可以通过委

托调用方法。委托用于将方法作为参数传递给其他方法。委托具有以下特点:

 委托类似于 C++ 函数指针,但它们是类型安全的。 委托允许将方法作为参数进行传递。 委托可用于定义回调方法。

 委托可以链接在一起;例如,可以对一个事件调用多个方法。 方法不必与委托签名完全匹配。事件是一种特殊的委托。

5.override与重载的区别 答:

Override:要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,重写的基方法必须与override方法具有相同的签名。

第2页 /共17

方法重载:一个类中可以有一个以上的方法拥有相同的名称。但必须有不相同的签名。

6.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?

答: QueryString、Server.Transfer方法。

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

foreach(Control control inthis.Controls){ if(control isTextBox){ TextBox tb =(TextBox)control;tb.Text = String.Empty;} }

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

//冒泡排序

publicstaticvoid MaoPaoSort(refint[] arrays){ if(arrays!= null&& arrays.Length > 0){ for(int i = 1;i < arrays.Length;i++){ bool isChange = false;for(int j = 0;j < arrays.Length-i;j++){ if(arrays[j] > arrays[j + 1]){ int tempValue = arrays[j];arrays[j] = arrays[j + 1];arrays[j + 1] = tempValue;isChange = true;} } if(!isChange)break;} } }

第3页 /共17

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

答:索引器允许类或结构的实例就像数组一样进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。Public ReturnType this[ paramType index]{get{} set{}},可以用任何类型进行索引。

10.求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+„„+m 答:publicstaticint sumMethod1(int m){ int sum=0;for(int i = 1;i <= m;i++){ if(i % 2!= 0)sum += i;else

sum-= i;} return sum;}

publicstaticint sumMethod2(int m){ int sum = 0;if(m % 2!= 0)sum = m / 2 + 1;else

sum =-(m / 2);return sum;}

12.在下面的例子里

classA { public A(){ PrintFields();} publicvirtualvoid PrintFields(){ } }

classB : A { int x = 1;int y;public B()

第4页 /共17

{ y =-1;} publicoverridevoid PrintFields(){ Console.WriteLine(“x={0},y={1}”, x, y);} } 当使用new B()创建B的实例时,产生什么输出? 答:X=1,Y=0

13.什么叫应用程序域?

答:应用程序域(application domain)(AppDomain)一种边界,它由公共语言运行库围绕同一应用程序范围内创建的对象建立(即,从应用程序入口点开始,沿着对象激活的序列的任何位置)。应用程序域有助于将在一个应用程序中创建的对象与在其他应用程序中创建的对象隔离,以使运行时行为可以预知。在一个单独的进程中可以存在多个应用程序域。

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

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

15.什么是装箱和拆箱?

答:装箱:装箱转换是指将一个值类型隐式或显式地转换成一个object类型,拆箱:拆箱转换是指将一个对象类型显式地转换成一个值类型。

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

答:受托管的代码不能直接写内存,是安全的,它受CLR的内存安全管理,而非托管代码是非安全代码,可以使用指针操作内存

18.net中读写数据库需要用到那些类?他们的作用? 答:DataSet:数据存储器

Connection对象,用来创建和打开,关闭数据库连接。

Command对象,用来执行各种sql语句或者调用存储过程。

Adapter对象,数据适配器,用来执行SQL语句,配合数据集执行比较多。DataReader,只读的对象,有着很高的性能。

21.在.net中,配件的意思是? 答:程序集。(中间语言,源数据,资源,装配清单)

22.常用的调用WebService的方法有哪些? 答:1.使用WSDL.exe命令行工具。

2.使用VS.NET中的Add Web Reference菜单选项

第5页 /共17

23..net Remoting 的工作原理是什么?

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

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

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

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

36.GC是什么? 为什么要有GC? 答:GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:System.GC.Collect();

37.String s = new String(“xyz”);创建了几个String Object? 答:两个对象,一个是“xyx”,一个是指向“xyx”的引用对像s。

38.abstract class和interface有什么区别? 答: 抽象类:

 只能用做其它类的基类,它就是被设计来被继承的。 不能创建它的实例。

 它使用abstract修饰符来声明。 抽象类可以包含抽象成员,但不是必须的,它的成员可以抽象成员和普通带实现的成员的任意组合。

 它自己可以派生自另一个抽象类。任何派生自抽象类的类必须使用override关键字实现该类所有的抽象成员,除非派生类自己也是抽象类。接口:

 接口是表示一组函数成员而不实现成员的引用类型。其它类和结构可以实现接口。 接口声明不包括数据成员。

 接口声明只能包含如下类型的静态成员函数的声明:方法、属性、事件、索引。 接口的成员不能包含任何实现代码,而在每一个成员声明的主体后必须使用分号。 接口名称必须从大写的I开始。它和类一样,也可以声明成分部接口。 接口声明可以有任何的访问类型:public、protected、internal、private。 接口成员是隐式Public的,不允许有任何访问修饰符。

1,什么是线程池

为了帮我们降低创建和销毁线程相关的成本,CLR为每一个进程维护了一个线程池。一开始进程的线程池是空的,如果进程使用的线程被创建,并且完成了线程的执行,它不会被销毁,而是加入到进程的线程池中,这后,如果进程需要一个另外一个线程,CLR就会从池中还原一个线程,这就节省了很多时间。

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

第6页 /共17

答:启动一个线程是调用start()方法,这并不意味着线程就会立即运行,只是进入了可运行状态。直接调用run()方法不会产生线程,而是把它当作普通的方法调用,马上执行

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

41.构造器Constructor是否可被override? 答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。

42.是否可以继承String类? 答:不可以,因为String类是密封类,被Sealed修饰符所修饰。

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

Hash Code:可以简单的理解为内存的地址。“==” : 操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储 的地址是否相同,即栈中的内容是否相同。

“equals” : 操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。而字符串是一个特殊的引用型类型,在C#语言中,重载了string 对象的很多方法方法(包括equals()方法),使string对象用起来就像是值类型一样。

45.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上? 答:可以。

47.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 不能,一个对象的一个synchronized方法只能由一个线程访问。

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

51.数组有没有length()这个方法? String有没有length()这个方法? 答:数组和string都没有Length()方法,只有Length属性。

52.sleep()和 wait()有什么区别? 答:sleep()方法是将当前线程挂起指定的时间。

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正确。

第7页 /共17

复合赋值表达式自动地将所执行计算的结果转型为其左侧变量的类型,s1+=1等价于s1=(short)s1+1;

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

答:用存储过程或事务。取得最大标识的时候同时更新..注意主键不是自增量方式这种方法并发的时候是不会有重复主键的..取得最大标识要有一个存储过程来获取.56.Session有什么重大BUG,微软提出了什么方法加以解决?

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

57.进程和线程的区别?

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

进程:进程就是一组资源,它们构成了一个正在运行的程序。线程:在进程中系统创建了一个叫做线程的内核对象,线程体现了一个程序的真实执行情况。

58.堆和栈的区别?

答:栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。

栈:它是一个内存数组,是一个LIFO的数据结构,数据只能从栈顶插入和删除。

堆:它是一块内存区域,在堆里可以分配大块的内存用于存储某类型的数据,堆里的内存可以以任意顺序存入和取出。

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

 它们用来反映类的状态。

 静态成员它被类的所有实例所共享,所有实例都访问同一内存位置。 它们独立于所有的类实例,即使没有类实例,也可以调用类的静态成员。

60.ASP。NET与ASP相比,主要有哪些进步? 答:asp解释形,aspx编译型,性能提高,可以跟美工的工作分开进行,更有利于团队开发。

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

publicstaticint[] BuildIntArray(){ int[] retsInt = newint[100];

第8页 /共17

List tempList = newList();Random random = newRandom();while(tempList.Count < 100){ int num = random.Next(1, 101);if(!tempList.Contains(num))tempList.Add(num);} tempList.Sort();for(int i = 0;i < tempList.Count;i++)retsInt[i] = tempList[i];return retsInt;}

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

 QueryString 传递一个或多个安全性要求不高或是结构简单的数值。但是对于传递数组或对象的话,就不能用这个方法了

 session(viewstate)简单,但易丢失作用于用户个人,过量的存储会导致服务器内存资源的耗尽。

 application 对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock  cookie 简单,但可能不支持,可能被伪造 Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用  input ttype=“hidden” 简单,可能被伪造  url参数简单,显示于地址栏,长度有限

 Server.Transfer 把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流

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

63.请指出GAC的含义? 答:全局程序集缓存。

GAC(Global Assembly Cache),他的作用是可以存放一些有很多程序都要用到的公共Assembly。这样,很多程序就可以从GAC里面取得Assembly,而不需要再把所有要用到的Assembly都拷贝到应用程序的执行目录下面。

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

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

Get方式,服务器端用Request.Qurystring取变量的值,安全性不高,传送数据量小。

post方式,服务器端用Request.Form获取提交的数据,安全性高。建议:

1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;

2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式。

第9页 /共17

65.DataReader与Dataset有什么区别? 答:

 连接数据库时DataSet是非面向连接的,而DataReader是面向连接的。

 DataSet表示一个数据集,是数据在内存中的缓存,可以包括多个表,是保存数据的数据结构。而Datareader不承担保存数据的责任,它只负责从数据源读取数据到本地而已,它不是数据结构,而是网络通讯组件的高层封装。

 DataSet可以离线处理,前后滚动,而DataReader不能离线处理,且是只读向前的,速度快。

 DataSet可以存储数据库各种对象的,比如表触发器等,可以更新回原来的数据库。而DataReader只能存储游标记录,不可以更新回原来的数据库,它类似一个只能向前的游标记录集。

66.软件开发过程一般有几个阶段?每个阶段的作用?答: 软件开发一般分为五个阶段:  问题的定义及规划

此阶段是软件开发与需求方共同讨论,主要确定软件的开发目标及其可行性。 需求分析

在确定软件开发可行性的情况下,对软件需要实现的各个功能进行详细需求分析。需求分析阶段是一个很重要的阶段,这一阶段做的好,将为整个软件项目的开发打下良好的基础。“唯一不变的是变化本身”,同样软件需求也是在软件开发过程中不断变化和深入的,因此,我们必须定制需求变更计划来应付这种变化,以保护整个项目的正常进行。 软件设计

此阶段中要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计、数据库设计等。软件设计一般分为概要设计和详细设计,软件设计将为软件程序编写打下良好的基础。 程序编码

此阶段是将软件设计的结果转化为计算机可运行的程序代码。在程序编码中必定要制定统一、符合标准的编写规范。以保证程序的可读性、易维护性。提高程序的运行效率。 软件测试

在软件设计完成之后要进行严密的测试,一发现软件在整个软件设计过程中存在的问题并加以纠正。整个测试阶段分为单元测试、组装测试、系统测试三个阶段进行。测试方法主要有白盒测试和黑盒测试。 6.部署及维护。

67.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义? Uning:

 using做为命名空间指令:通过在源文件顶端放置Using命名空间指令以避免不得不使用长名称,它通知编译器你将要使用来自某个指定命名空间的类型。 using做为别名指令:它允许对一个命名空间或命名空间中的一个类型起一个别名。 using语句:某些类型的非托管对象有数量限制或很耗费系统资源,这样在代码使用完它们后,就得尽可能快的释放它们,using语句有助于简化该过程并确保这些资源被适当的处置。

New :

第10页 /共17

 创建类和结构的实例。 隐藏基类的方法。

 创建匿名类型(var和new关键字一起使用时可以创建匿名类型,匿名类型只是一个继承了Object的、没有名称的类,该类的定义从初始化器中推断,类似于隐匿类型化的变量)。

68.需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.答: string str = “ afdkd askdfji ksdafj ”;string strAfter = Regex.Replace(str.Trim(), @“s+”, “ ”);

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

int i = 5;int j = 5;if(Object.ReferenceEquals(i, j))Console.WriteLine(“Equal”);else

Console.WriteLine(“Not Equal”);答:Not Equal,因为ReferenceEquals是Object的静态方法,用于比较两个引用类型的对象是否是对于同一个对象的引用,对于值类型它总是返回false。

34.ReferenceEquals, == , Equals的区别

 String对于声明的相同的字符串在堆上只保留一个Copy,所以有相同字符串值的两个字符串变量将会指向相同的Reference。 ReferenceEquals:

它是Object的静态方法,用于比较两个引用类型的对象是否是对于同一个对象的引用,对于值类型它总是返回false。 ==:

它是一个可以重载的二元操作符,可以用于比较两个对象是否相等。对于内置值类型,==判断的是两个对象的代数值是否相等。它会根据需要自动进行必要的类型转换,并根据两个对象的值是否相等返回true或者false,而对于用户定义的值类型,如果没有重载==操作符,==将是不能够使用的。

对于引用类型,== 默认的行为与ReferenceEquals的行为相同,仅有两个对象指向同一个Reference的时候才返回true。但是.NET Framework中的类很多对==进行了重载,例如String类的==与Equals的行为相同,判断两个字符串的内容是否相等。所以在应用中,对于系统定义的引用类型建议不要使用==操作符,以免程序出现与预期不同的运行结果。 Equals(): 它对于值类型和引用类型的定义不同,对于值类型,类型相同,并且数值相同(对于struct的每个成员都必须相同),则Equals返回 true,否则返回false。而对于引用类型,默认的行为与ReferenceEquals的行为相同,仅有两个对象指向同一个Reference的时候才返回true。可以根据需要对Equals进行重载,例如String类的Equals用于判断两个字符串的内容是否相等。

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

第11页 /共17

答:利用sql语言漏洞获得合法身份登陆系统。如身份验证的程序设计成:

SqlCommand com=new SqlCommand(“Select * from users where username='”+t_name.text+“' and pwd='”+t_pwd.text+“'”);object obj=com.ExcuteScale();if(obj!=null)

{

//通过验证

} 这段代码容易被sql注入。如用户在t_name中随便输入,在t_pwd中输入1' or 1='1 就可以进入系统了。可以采用参数化查询语句进行防止。

71.什么是反射?

答:有关程序及其类型的数据被称为元数据(metadata),它们保存在程序的程序集中。程序在运行时,可以查看其它程序集及其本身的元数据,一个运行的程序查看本身及其它程序集的元数据的行为叫做反射(reflection)。

72.用Singleton如何写设计模式

publicsealedclassSun { privatestaticSun instance = null;private Sun(){} publicstaticSun Instance { get

{ return instance == null ? instance = newSun(): instance;} } }

73.什么是Application Pool?

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

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

 虚函数:使它们可以在派生类中被重写,它自身可以有函数的实现。

 抽像函数:规定其非虚子类必须实现的函数,必须被重写,它自身不可有函数的实现。

75.什么是XML?

答:XML即可扩展标记语言(Extensible Markup Language)。它是一种以简单文本格式存储数据的方式,这意味着它可以被任何计算机读取,它在.Net中执行大量的任务,包括描述应用程序的配置、在Web服务之间传输信息等。

77.什么是ASP.net中的用户控件?

第12页 /共17

答:用户控件是能够在其中放置标记和 Web 服务器控件的容器。然后,可以将用户控件作为一个单元对待,为其定义属性和方法。有了用户控件,就不必为每个需要相同内容的页面多次创建用户界面,编写代码,而只需要创建一个用户控件,在几个页面中多次使用。

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

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

79.ADO.net中常用的对象有哪些?分别描述一下。提供者对象:

 Connection 提供到数据源的基本连接。 Command 使用它对数据源发出命令。

 CommandBuilder 此对象用于构建Sql命令,在基于单一表查询的对象中进行数据修改。 DataReader 这是一个快速而易用的对象,可以从数据源中读取仅能前向和只读的数据流。

 DataAdapter 它是一个通用的类,可以执行针对数据源的各种操作,包括更新变动的数据,填充DataSet对象以及其它操作。用户对象:

 DataSet 它表示一组相关表,在应用程序中这些表作为一个单元来引用。

80.什么是code-Behind技术。

答:Code-Behind技术也称为代码隐藏技术,在ASP.NET中通过ASPX页面指向CS文件的方法实现显示逻辑和处理逻辑的分离,这样有助于web应用程序的创建。比如分工,美工和编程的可以个干各的,不用再像以前asp那样都代码和html代码混在一起,难以维护。

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

答:SOAP(Simple Object Access Protocol)简单对象访问协议,是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一种语言相互通信。这种相互通信采用的是XML格式的消息。

82.C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里?  Attribute是Microsoft.NET Framework文件的元数据,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。Attribute是派生于System.Attribute类之下,它的主要作用是描述

 Property是面向对象编程的基本概念,提供了对私有字段的访问封装,在C#中以get和set访问器方法实现对可读可写属性的操作,提供了安全和灵活的数据访问封装。

83.XML 与 HTML 的主要区别

 XML是HTML的补充,而不是HTML的替代品,XML和HTML是两种不同用途的语言。 XML是被设计用来描述数据的,重点是:什么是数据,如何存放数据。而HTML是被设计用来显示数据的,重点是:显示数据以及如何显示数据更好上面。

第13页 /共17

 XML是自由的、可以扩展的,XML标记并不是预先规定好的,你必须创造你自XML标记并不是,而在HTML文档中必须使用规则中定义好的标记。

 XML是区分大小写字母的,HTML不区分。 在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略

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

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

 在XML中,属性值必须封装在引号中。在HTML中,引号是可用可不用的。 在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。

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

85.当整数a赋值给一个object对像时,整数a将会被? 答:装箱。

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

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

答:const表现的很像静态变量,它们对类的每个实例都是可见的,而且即使没有类的实例它们也可以使用,而与静态变量不同的是它没有自己的存储位置,而是在编译时被编译器替换,因此它不能声明为Static。

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

将f的值强制转换成int型,也就是将小数点后面的部分直接截取,保留整数部分。89.委托声明的关键字是 Delegate。

91.在Asp.net中所有的自定义用户控件都必须继承自 Control。

92.在.Net中所有可序列化的类都被标记为[Serializable]。

93.在.Net托管代码中我们不用担心内存漏洞,这是因为有了GC垃圾回收机制。

94.下面的代码中有什么错误吗?_______ using System;class A

第14页 /共17

{ public virtual void F(){ Console.WriteLine(“A.F”);} abstract class B:A { public abstract override void F();} 答:abstract override 是不可以一起修饰.95.当类T只声明了私有实例构造函数时,则在T的程序文本外部,不可以从T派生出新的类,因为子类无法调用父类的构造函数,不可以直接创建T的任何实例。

96.Switch语句的格式

switch(1 + 1){ case 1: Console.WriteLine(“Wrong”);break;case 2: Console.WriteLine(“right”);break;default: Console.WriteLine(“jiaoyanqing”);break;}

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

98..net的错误处理机制是什么?

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

异常:它是程序中的运行时错误,它违反了一个系统约束或应用程序约束,或出现了在正常操作时未预料的情形,如果程序没有提供处理该异常的代码,系统会挂起这个程序。即使在Try块中有Return语句,Finally块也总是会在返回到调用代码之前执行。

99.利用operator声明且仅声明了==,有什么错误么? 答:要同时修改Equale和GetHash()? 重载了“==” 就必须重载 “!=”

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

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

第15页 /共17

105.对于这样的一个枚举类型:enumColor : byte { Red, Green, Blue, Orange };答:string[] ss = Enum.GetNames(typeof(Color));Array array = Enum.GetValues(typeof(Color));

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

答:C#可以直接对内存进行操作。但是默认情况下,为了保持类型安全,C#不支持指针运算。不过,通过使用 unsafe 关键字,可以定义可使用指针的不安全上下文。在不安全的上下文中,类型可以是指针类型以及值类型或引用类型。

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

 ADO.NET不依赖于数据提供程序,而是使用.Net托管提供的程序。 不使用com  不在支持动态游标和服务器端游

 可以断开connection而保留当前数据集可用  强类型转换  xml支持

110.大概描述一下ASP.NET服务器控件的生命周期 答:初始化加载视图状态处理回发数据加载发送回发更改通知处理回发事件预呈现保存状态呈现处置卸载

111.匿名内部类是否可以继承其它类,是否可以实现接口? 答:不能,可以实现接口

113.,&和&&的区别。

&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and).114.HashMap和Hashtable的区别。

答:HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable.116.重载方法可以改变返回值的类型?

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

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

118.<%# %>和<% %>有什么区别? 答:<%# %>表示绑定的数据源

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

120.重载与覆盖的区别?

第16页 /共17

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

 覆盖是一个方法或一对方法产生关系;方法的重载是多个方法之间的关系。 覆盖要求参数列表相同;重载要求参数列表不同。

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

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是一模一样的话,可以正确使用连接池。不过一模一样的意思是,连字符的空格数,顺序完全一致。

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

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

129.下面的例子中

classA { publicstaticint X;static A(){ X = B.Y + 1;

第17页 /共17

} } classB { publicstaticint Y = A.X + 1;static B(){ } } static void Main(){ Console.WriteLine(“X={0},Y={1}”, mytest.A.X, mytest.B.Y);}

产生的输出结果是什么? 答:X=2,Y=1;

.Net面试题集
TOP