NET面试笔试题 1.docx
- 文档编号:24450394
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:70
- 大小:57.12KB
NET面试笔试题 1.docx
《NET面试笔试题 1.docx》由会员分享,可在线阅读,更多相关《NET面试笔试题 1.docx(70页珍藏版)》请在冰豆网上搜索。
NET面试笔试题1
内容摘要:
private、protected、public、internal修饰符的访问权限,ASP.NET页面之间传递值的几种方式,C#中的委托是什么,件是不是一种委托,override与重载的区别,实现一个冒泡排序算法....
关键词:
面试题JavaScript面试题
本文地址:
内容正文:
1.简述private、protected、public、internal修饰符的访问权限。
答.private:
私有成员,在类的内部才可以访问。
protected:
保护成员,该类内部和继承类中可以访问。
public:
公共成员,完全公开,没有访问限制。
internal:
在同一命名空间内可以访问。
2.列举ASP.NET页面之间传递值的几种方式。
答.1.使用QueryString,如....?
id=1;response.Redirect()....
2.使用Session变量
3.使用Server.Transfer
3.一列数的规则如下:
1、1、2、3、5、8、13、21、34......求第30位数是多少,用递归算法实现。
答:
publicclassMainClass
{
publicstaticvoidMain()
{
Console.WriteLine(Foo(30));
}
publicstaticintFoo(inti)
{
if(i<=0)
return0;
elseif(i>0&&i<=2)
return1;
elsereturnFoo(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.Controlcontrolinthis.Controls)
{
if(controlisSystem.Windows.Forms.TextBox)
{
System.Windows.Forms.TextBoxtb=(System.Windows.Forms.TextBox)control;
tb.Text=String.Empty;
}
}
8.请编程实现一个冒泡排序算法?
答:
int[]array=newint[*];
inttemp=0;
for(inti=0;i { for(intj=i+1;j { if(array[j] { temp=array[i]; array[i]=array[j]; array[j]=temp; } } } 9.描述一下C#中索引器的实现过程,是否只能根据数字进行索引? 答: 不是。 可以用任意类型。 10.求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m 答: intNum=this.TextBox1.Text.ToString(); intSum=0; for(inti=0;i { if((i%2)==1) { Sum+=i; }else { Sum=Sum-I; } } System.Console.WriteLine(Sum.ToString()); System.Console.ReadLine(); ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -------------------------------------------------------------------------------- 1)描述线程与进程的区别? 线程(Thread)与进程(Process)二者都定义了某种边界,不同的是进程定义的是应用程序与应用程序之间的边界,不同的进程之间不能共享代码和数据空间,而线程定义的是代码执行堆栈和执行上下文的边界。 一个进程可以包括若干个线程,同时创建多个线程来完成某项任务,便是多线程。 而同一进程中的不同线程共享代码和数据空间。 用一个比喻来说,如果一个家庭代表一个进程,在家庭内部,各个成员就是线程,家庭中的每个成员都有义务对家庭的财富进行积累,同时也有权利对家庭财富进行消费,当面对一个任务的时候,家庭也可以派出几个成员来协同完成,而家庭之外的人则没有办法直接消费不属于自己家庭的财产。 2)什么是Windows服务,它的生命周期与标准的EXE程序有什么不同 Windows服务是运行在windows后台指定用户下(默认System)的应用程序,它没有标准的UI界面,想比标准的EXE程序,Windows服务是在服务开始的时候创建,而在服务结束的时候销毁,而且可以设置服务是否与操作系统一起启动,一起关闭。 它支持三种方式: 1)自动方式2)手动方式 3)禁用。 自动方式的时候,windows服务将在OS启动后自动启动运行,而手动方式则必须手工启动服务,禁用的情况下服务将不能被启动。 另外标准的EXE默认使用的当前登录的用户,而windows服务则默认使用System用户,这在对系统资源访问的时候特别需要注意。 3)Windows单个进程所能访问的最大内存量是多少? 它与系统的最大虚拟内存一样吗? 这对于系统设计有什么影响? 这个需要针对硬件平台,公式为单个进程能访问的最大内存量=2的处理器位数次方/2,比如通常情况下,32位处理器下,单个进程所能访问的最大内存量为: 232/2=2G。 单个进程能访问的最大内存量是最大虚拟内存的1/2,因为要分配给操作系统一半虚拟内存。 4)什么是强类型,什么是弱类型? 哪种更好些? 为什么? 强类型是在编译的时候就确定类型的数据,在执行时类型不能更改,而弱类型在执行的时候才会确定类型。 没有好不好,二者各有好处,强类型安全,因为它事先已经确定好了,而且效率高。 一般用于编译型编程语言,如c++,java,c#,pascal等,弱类型相比而言不安全,在运行的时候容易出现错误,但它灵活,多用于解释型编程语言,如javascript,vb等 5)PID是什么? 在做系统的故障排除时如何使用它? PID是进程编号,在系统发现故障的时候,可以根据它寻找故障所发生的具体进程,并且可通过visual等ide将故障进程附加到进程中进行调试(debug) 6)单个TCP/IP端口上能够被多少个进程侦听? 1个 7)什么是GAC? 它解决了什么问题? GloalAssemblyCache,全局应用程序集缓存。 它解决了几个程序共享某一个程序集的问题。 不必再将那个被共享的程序集拷贝到应用程序目录了,其实这道理很简单,.net应用程序在加载的时候,会首先查看全局应用程序集缓存,如果有就可以直接使用,没有再到应用程序目录进行查找。 中级.NET开发人员 1)阐述面向接口、面向对象、面向方面编程的区别 面向接口更关注的是概念,它的原则是先定义好行为规范,再根据行为规范创建实现,严格的来说,面向接口应该是面向对象中的一部分吧,因为面向对象也强调的是本末倒置原则,也就是实现依赖于抽象,而抽象不依赖于具体实现,更具比较的应该是面向接口与面向抽象对象,我的体会是面向接口更加灵活,但实现时候,稍微有些代码冗余,而面向抽象可以结合面向接口,先定义接口,再定义抽象类,在抽象类中处理一些公共逻辑,再实现具体实现类。 面向对象是对复杂问题的分解。 面向方面的编程是一种新概念,它解决了很多面向对象无法解决的问题,比如面向对象技术只能对业务相关的代码模块化,而无法对和业务无关的代码模块化。 而面向方面正是解决这一问题的方案,它的关键思想是"将应用程序中的商业逻辑与对其提供支持的通用服务进行分离"。 2)什么是Interface? 它与AbstractClass有什么区别? 接口(Interface)是用来定义行为规范的,不会有具体实现,而抽象类除定义行为规范外,可以有部分实现,但一个类能实现多个接口,但只能继承一个父类 3)什么是反射? 程序集包含模块,而模块又包括类型,类型下有成员,反射就是管理程序集,模块,类型的对象,它能够动态的创建类型的实例,设置现有对象的类型或者获取现有对象的类型,能调用类型的方法和访问类型的字段属性。 它是在运行时创建和使用类型实例 4)使用ASMX的XMLWeb服务与使用SOAP的.NETRemoting的区别? Web服务使用的消息机制,而Remoting采用的RPC.WebService能用于不同平台,不同语言,Remoting只适用于.Net。 效率上Remoting高于XmlWebService 5)类型系统是由XMLSchema表示的吗? CLS是XMLSchema表示的吗? 不清楚 6)从概念上阐述前期绑定(early-binding)和后期绑定(late-binding)的区别? 这个就像是强弱类型的比较相似,前期绑定是在编译的时候就确定了要绑定的数据,而后期绑定是在运行的时候才填充数据。 所以前期绑定如果失败,会在编译时报编译错误,而后期绑定失败只有在运行时的时候才发生 7)调用Assembly.Load算静态引用还是动态引用? 动态 ========================================================================================================================== 21.在.net中,配件的意思是? 答: 程序集。 (中间语言,源数据,资源,装配清单) 22.常用的调用WebService的方法有哪些? 答: 1.使用WSDL.exe命令行工具。 2.使用VS.NET中的AddWebReference菜单选项 Remoting的工作原理是什么? 答: 服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置。 24.在C#中,stringstr=null与stringstr=“”请尽量使用文字或图象说明其中的区别。 答: stringstr=null是不给他分配内存空间,而stringstr=""给它分配长度为空字符串的内存空间。 25.请详述在dotnet中类(class)与结构(struct)的异同? 答: Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的. 26.根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写: namespacetest { publicdelegatevoidOnDBOperate(); publicclassUserControlBase: System.Windows.Forms.UserControl { publiceventOnDBOperateOnNew; privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgse) { if(e.Button.Equals(BtnNew)) { //请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。 } } } 答: if(OnNew! =null) OnNew(this,e); 27.分析以下代码,完成填空 stringstrTmp="abcdefg某某某"; inti=System.Text.Encoding.Default.GetBytes(strTmp).Length; intj=strTmp.Length; 以上代码执行完后,i=j= 答: i=13,j=10 28.SQLSERVER服务器中,给定表table1中有两个字段ID、LastUpdateDate,ID表示更新的事务号,LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号 答: SelectIDFROMtable1WhereLastUpdateDate=(SelectMAX(LastUpdateDate)FROMtable1) 29.根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁? 并简要说明理由。 publicvoidtest(inti) { lock(this) { if(i>10) { i--; test(i); } } } 答: 不会发生死锁,(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。 但如果把int换做一个object,那么死锁会发生) 30.简要谈一下您对微软.NET构架下remoting和webservice两项技术的理解以及实际中的应用。 答: WS主要是可利用HTTP,穿透防火墙。 而Remoting可以利用TCP/IP,二进制传送提高效率。 ============================================================= ============================================================= 11.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 答: 一般为3层 数据访问层,业务层,表示层。 数据访问层对数据库进行增删查改。 业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。 表示层为了与用户交互例如用户添加表单。 优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。 缺点: 增加成本。 12.在下面的例子里 usingSystem; classA { publicA() { PrintFields(); } publicvirtualvoidPrintFields(){} } classB: A { intx=1; inty; publicB() { y=-1; } publicoverridevoidPrintFields() { Console.WriteLine("x={0},y={1}",x,y); } 当使用newB()创建B的实例时,产生什么输出? 答: X=1,Y=0;x=1y=-1 13.什么叫应用程序域? 答: 应用程序域可以理解为一种轻量级进程。 起到安全的作用。 占用资源小。 14.CTS、CLS、CLR分别作何解释? 答: CTS: 通用语言系统。 CLS: 通用语言规范。 CLR: 公共语言运行库。 15.什么是装箱和拆箱? 答: 从值类型接口转换到引用类型装箱。 从引用类型转换到值类型拆箱。 16.什么是受管制的代码? 答: unsafe: 非托管代码。 不经过CLR运行。 17.什么是强类型系统? 答: RTTI: 类型识别系统。 中读写数据库需要用到那些类? 他们的作用? 答: DataSet: 数据存储器。 DataCommand: 执行语句命令。 DataAdapter: 数据的集合,用语填充。 19.ASP.net的身份验证方式有哪些? 分别是什么原理? 答: 10。 Windwos(默认)用IIS...From(窗体)用帐户....Passport(密钥) 20.什么是Code-Behind技术? 答: 代码后植。 ============================================================= ============================================================= new有几种用法 第一种: newClass(); 第二种: 覆盖方法 publicnewXXXX(){} 第三种: new约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。 2.如何把一个array复制到arrayList里 foreach(objectoinarray)arrayList.Add(o); 3.datagrid.datasouse可以连接什么数据源[dataset,datatable,dataview] dataset,datatable,dataview,IList 4.概述反射和序列化 反射: 程序集包含模块,而模块包含类型,类型又包含成员。 反射则提供了封装程序集、模块和类型的对象。 您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。 然后,可以调用类型的方法或访问其字段和属性 序列化: 序列化是将对象转换为容易传输的格式的过程。 例如,可以序列化一个对象,然后使用HTTP通过Internet在客户端和服务器之间传输该对象。 在另一端,反序列化将从该流重新构造对象。 5.概述o/rmapping的原理 利用反射,配置将类于数据库表映射 6.类成员有()种可访问形式 可访问形式? 不懂。 可访问性: public,protected,private,internal 7.用sealed修饰的类有什么特点 sealed修饰符用于防止从所修饰的类派生出其它类。 如果一个密封类被指定为其他类的基类,则会发生编译时错误。 密封类不能同时为抽象类。 sealed修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。 具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。 8.列举ADO.NET中的五个主要对象,并简单描述 connection,command,dataReader,trans,dataset... 9.执行下面代码后: StringstrTemp="abcdefg某某某"; IntiSystem.Text.Encoding.Default.GetBytes(strTemp).Length; Intj=strTemp.Length; 问: i=(14);j=(11) i=(14);j=(11)中文两个字节 10.C#中,stringstr=null与stringstr="",请尽量用文字说明区别。 (要点: 说明详细的内存空间分配) stringstr=""分配空间 11.详述.NET里class和struct的异同! class: 放在? struct放在? struct值传递 类与结构有很多相似之处: 结构可以实现接口,并且可以具有与类相同的成员类型。 然而,结构在几个重要方面不同于类: 结构为值类型而不是引用类型,并且结构不支持继承。 结构的值存储在“在堆栈上”或“内联”。 细心的程序员有时可以通过聪明地使用结构来增强性能。 12.概述.NET里对remoting和webservice两项技术的理解和实际中的应用。 远程逻辑调用,remoing接口只能用在.net中 13.什么是code-behind技术 aspxandcs 14.概述三层结构体系 web/business/dataaccess 如何实现MVC模式,举例说明! web/business/dataaccess ============================================================= ============================================================= 内容摘要: 考查了与string相关的知识点,dotnet中类(class)与结构(struct)的异同,委托(delegate)的知识,线程安全的相关知识,正确使用连接池,remoting和webservice两项技术... 关键词: c#面试题.NET面试题SqlServer面试题 本文地址: 内容正文: 1、在C#中,stringstr=null与stringstr=“”请尽量使用文字或图象说明其中的区别。 回答要点: 说明详细的空间分配。 (10分) 答: stringstr=null是不给他分配内存空间,而stringstr=""给它分配长度为空字符串的内存空间. 2、请详述在dotnet中类(class)与结构(struct)的异同: (10分) 答: Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的. 3、根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写: (10) namespacetest { publicdelegatevoidOnDBOperate(); publicclassUserControlBase: System.Windows.Forms.UserControl { publiceventOnDBOperateOnNew; privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgse) { if(e.Button.Equals(BtnNew)) { //请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。 } } } 答: if(OnNew! =null) OnNew(this,e); 4、分析以下代码,完成填空(10分) st
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NET面试笔试题 NET 试笔 试题