1、NET面试题及答案合并1. 什么是自定义控件?动态如何传数据?答案1) 概述:自定义控件也是的一种服务器控件,体现格式为*.dll2) 适用场合:当.net平台给我们提供的web服务器控件不够用的时候,就需要我们自己开发一个自定义控件,或者又称为第三方控件;可以把该种控件添加到工具箱中,然后就像使用Web服务器控件一样。例如:分页控件3) 在控件内部公开属性,通过给属性赋值进行数据的交互; 控件最终体现在界面上的样式是靠重写父类的Render方法来实现的2. 写出一个函数实现对一个字符串的所有排列(说出实现思路)答案1) char chars = str.ToCharArray();Array
2、.Sort(chars);2) 冒泡排序算法3. 手写一个表单内容包括 用户名 text 年龄 text 性别 单选 默认没有选中 提交按钮 重置按钮答案 女 男4. 手写一个表格, 第一行2列, 第二行1列答案12合并5. 抽象类和接口的区别答案1) 接口:inerface 纯抽象的类,里面不能有任何实现的成员2) 抽象类:abstract 实现和非实现成员都可以有6. 用socket实现服务器端向客户端传递几个字符,在客户端输出答案Using System.Net.Sockets;/启动监听TcpListener objLsn = new TcpListener(1000);objLsn.
3、Start();Socket objSocket = objLsn.AcceptSocket();/发送String msg = “测试发送”;Byte arr = System.Text.Encoding.Default.GetBytes(msg);objSocket.Send(arr);参考:WinForm第八章Socket编程7. 写处一个单例模式类答案Public class SingleClassPrivate SingleClass()Static SingleClass objClass= null;Public static SingleClass GetObject() If
4、(objClass!=null) objClass = new SingleClass();Return objClass;8. 表达式float f=3.4对吗?如果不对,请说明原因答案1) 不对2) 在c#中,应为 float f = 3.4f 或者 float f = 3;9. x=4,y=6在不声明新变量的情况下交换x,y的值答案Int x = 4;Int y = 6;X+=y;Y = x y;X = x- y;10. List list=new List(); 对不对 如何改正答案1) 不对2) List为泛型集合, List list = new List();3) 例: List
5、 list = new List();11. 声明一个有100个元素的数组答案1) String arr = new String100;2) Array arr = Array.CreateIntence(typeof(string),100);注:Array类是所有数组的父类12. 列举一下public,private,protected以及未声明修饰符之间的区别答案1) 太简单,不说了2) 强调下internal 在同一程序集内部,与public作用域大小一样,跨程序集访问时,internal不可以访问到13. 请试写一下你在项目中经常遇到的几种异常(至少两种以上)答案1) 连接数据库失
6、败(数据库连接串有问题)2) 未将对象引用到对象的实例 (某些对象在使用过程中,未判断是否等于null,然后就直接调用方法或者属性)14. 试写出&与&有什么区别答案1) &: 位的逻辑运算2) & 逻辑运算15. 有两个字符串变量Atr与Btr,写出这两个字符串变量如何判断它们的内容相等答案1) Atr = Btr2) Atr.Equals(Btr)16. 什么修饰符可以使类无法继承?答案1) Sealed 密封的2) 结构(struct)默认就是密封的17. 列举几种C#中常见用的类(如:dataset),以及类得简单介绍答案1)DataSet:数据集,用于缓存从数据库中取到的数据,可以提
7、供数据库的访问速度。2)Connection:连接对象,用于应用程序与数据进行连接。3)TreeView:树形控件,主要用于向树一样显示数据18. 介绍几种你熟悉的设计模式,写出原理及应用环境答案1)Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。用于可能使用多种数据源的情况。2)Singleton:保证一个类仅有一个实例,并提供一个访问它的全局访问点。用于一些工具类,如数据库操作类。3)Iterator:提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。 如集合中类的枚举方法19. 说说你对面向对象设计开发的理解
8、,以及接口的作用答案面向对象更符合我们人的思维模式。面向对象使用继承、封装、多态使程序复用性、扩展性、安全性、健壮性、易维护性得到极大的提高。接口用于描述一组类的公共方法/公共属性. 它不实现任何的方法或属性,只是告诉继承它的类 至少要实现哪些功能,继承它的类可以增加自己的方法.接口使方法具有较好扩展性20. 说明.net中的错误处理机制 答案 异常处理有两种方法:一种是使用Try Catch处理,一种使用throw扔出21. 写一段程序,把 this is a apple 变成 apple a is this 这种形式答案string str = this is a apple; strin
9、g strs = str.Split( ); string output = ; for (int i = strs.Length - 1; i = 0; i-) output += strsi + ; if (output.Length 0) output = output.Substring(0, output.Length - 1); str = output;22. Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?答案Overload(重载)指一个类的多个方法重名,但参数列表不同。Override(重写)指多个类中有继承关系的一个方法同名,
10、但实现不同。23. 小数默认都是double,如果要float的话就是在数字后加f答案对24. 抽象类与接口的区别答案抽象类是子类的基类,它是子类的通用特征的描述接口是某一类通用功能的描述。和子类没有必然的联系。25. 访问修饰符答案Public 公有,其他类都可以访问 Protected 保护,只有本类和子类可以访问 Private 私有,只有本类可以使用 Internal 内部,本程序集中的类可以使用。26. 标识符的命名规范答案Pascal 标识符所有单词首字母都大写 用于类,接口,属性,方法的命名 Camel 标识符所有单词除首单词的首字母外其他首单词都大写,用于字段和内部变量的命名。
11、 匈牙利 标识符前面是类型缩写,后面所有单词首字母都大写,用于对象的命名。27. C/S与B/S答案C/S就是客户机和服务器结构,在客户端需要安装一个软件.将业务需求合理的分配到客户机与服务器两端来进行. C/S结构的软件需要针对不同的操作系统开发不同版本的软件. 如果产品的更新换代很快的话,就很难适应上百台电脑用户同时更新。更新的代价很高. B/S 结构 即浏览器和服务器结构. 它是随着互联网技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑是在服务器端(Server)实现,形成所谓三层3
12、结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。以目前的技术看,建立B/S结构的网络应用,在互联网模式下数据传输,相对易于把握、成本也是较低的。近似于一次性到位的开发,能实现不同的人员,从不同的地点,访问和操作共同的数据库.28. 给我一个你最常见到的runtime exception答案如除零异常29. swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?答案可以30. Try 里有一个return语句,那么紧跟在这个try后的finally 里的code会不会被执行,什么时候被执行,在return前还是后答
13、案会,在return前31. 请说出你所知道的线程同步的方法答案Lock Monitor类 32. 编程题求两个数的最小公倍数。答案求两个数的最大公约数,然后两个数想乘,在除于最大公约数就可以得到最大公倍数。33. short a = 1,a = a+1 有什么错?short a = 1, a += 1有什么错答案1)a=a+1中的1要做强制类型转换为short。2)没有错34. 编写一个类,求一元二次方程的实根答案x = double.Parse(a.Text); y = double.Parse(b.Text); z = double.Parse(c.Text); if (x = 0) i
14、f(y!=0) n1 = z / y; x1.Text = n1.ToString(); /y1.Text = n2.ToString(); if(y=0&z!=0) MessageBox.Show(b=0 无解, wujie,MessageBoxButtons.OK, MessageBoxIcon.Warning); if(y=0&z=0) MessageBox.Show(无数组解, 00,MessageBoxButtons.OK); if(x!=0) if (y * y - 4 * x * z = 0) n1 = (-y + Math.Sqrt(y * y - 4 * x * z) / (
15、2 * x); n2 = (-y - Math.Sqrt(y * y - 4 * x * z) / (2 * x); x1.Text = n1.ToString(); y1.Text = n2.ToString(); else MessageBox.Show(无解, wujie,MessageBoxButtons.OK, MessageBoxIcon.Warning); 35. 编写一个类,打印昨天当前时间答案class Program static void Main(string args) DateTime dt= DateTime.Now - new TimeSpan(1, 0, 0,
16、 0);/ TimeSpan 对象表示时间间隔或持续时间 Console.WriteLine(dt.ToString(); 36. 列举一种适合应用开发的分层结构,介绍每层的作用答案1)表现层 显示数据和接受输入 2)业务逻辑层 用于进行业务数据的处理 3)数据访问层 用于访问数据 4)实体层 用于控制数据传递对象37. 编写一个实现复数 +, -, *, / 的类答案classComplexprivatedoublem_dRealPart;privatedoublem_dImagePart;publicComplex(doubledRealPart,doubledImagePart)m_dR
17、ealPart=dRealPart;m_dImagePart=dImagePart;publicComplex(doubledRealPart)m_dRealPart=dRealPart;m_dImagePart=0;publicComplex()m_dRealPart=0;m_dImagePart=0;publicComplex(Complexorig)m_dRealPart=orig.m_dRealPart;m_dImagePart=orig.m_dImagePart;staticpublicComplexoperator+(Complexop1,Complexop2)Complexres
18、=newComplex();res.m_dRealPart=op1.m_dRealPart+op2.m_dRealPart;res.m_dImagePart=op1.m_dImagePart+op2.m_dImagePart;returnres;staticpublicComplexoperator-(Complexop)Complexres=newComplex();res.m_dRealPart=-op.m_dRealPart;res.m_dImagePart=-op.m_dImagePart;returnres;staticpublicComplexoperator-(Complexop
19、1,Complexop2)Complexres=newComplex();res=op1+(-op2);returnres;staticpublicComplexoperator*(Complexop1,Complexop2)Complexres=newComplex();res.m_dRealPart=op1.m_dRealPart*op2.m_dRealPart-op1.m_dImagePart*op2.m_dImagePart;res.m_dImagePart=op1.m_dImagePart*op2.m_dRealPart+op1.m_dRealPart*op2.m_dImagePar
20、t;returnres;staticpublicComplexoperator/(Complexop1,Complexop2)Complexres=newComplex();doubletemp=op2.m_dRealPart*op2.m_dRealPart+op2.m_dRealPart*op2.m_dImagePart;res.m_dRealPart=(op1.m_dRealPart*op2.m_dRealPart+op1.m_dImagePart*op2.m_dImagePart)/temp;res.m_dImagePart=(op1.m_dImagePart*op2.m_dRealPa
21、rt-op1.m_dRealPart*op2.m_dImagePart)/temp;returnres;publicdoubleGetRealPart()returnm_dRealPart;publicdoubleGetImagePart()returnm_dImagePart;38. 什么是自定义控件?动态如何传数据?答案1) 概述:自定义控件也是的一种服务器控件,体现格式为*.dll2) 适用场合:当.net平台给我们提供的web服务器控件不够用的时候,就需要我们自己开发一个自定义控件,或者又称为第三方控件;可以把该种控件添加到工具箱中,然后就像使用Web服务器控件一样。例如:分页控件3)
22、 在控件内部公开属性,通过给属性赋值进行数据的交互; 控件最终体现在界面上的样式是靠重写父类的Render方法来实现的39. 写出一个函数实现对一个字符串的所有排列(说出实现思路)答案1) char chars = str.ToCharArray();Array.Sort(chars);2) 冒泡排序算法40. 手写一个表单内容包括 用户名 text 年龄 text 性别 单选 默认没有选中 提交按钮 重置按钮答案41. 手写一个表格, 第一行2列, 第二行1列答案12合并42. 抽象类和接口的区别答案1) 接口:inerface 纯抽象的类,里面不能有任何实现的成员2) 抽象类:abstra
23、ct 实现和非实现成员都可以有43. 用socket实现服务器端向客户端传递几个字符,在客户端输出答案Using System.Net.Sockets;/启动监听TcpListener objLsn = new TcpListener(1000);objLsn.Start();Socket objSocket = objLsn.AcceptSocket();/发送String msg = “测试发送”;Byte arr = System.Text.Encoding.Default.GetBytes(msg);objSocket.Send(arr);参考:WinForm第八章Socket编程44
24、. 写处一个单例模式类答案Public class SingleClassPrivate SingleClass()Static SingleClass objClass= null;Public static SingleClass GetObject() If(objClass!=null) objClass = new SingleClass();Return objClass;45. 表达式float f=3.4对吗?如果不对,请说明原因答案1) 不对2) 在c#中,应为 float f = 3.4f 或者 float f = 3;46. x=4,y=6在不声明新变量的情况下交换x,y的值答案Int x = 4;Int y = 6;X+=y;Y = x y;X = x- y;47. List list=new List(); 对不对 如何改正答案1) 不对2) List为泛型集合, List list = new List();3) 例: List list = new List();48. 声明一个有100个元素的数组答案
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1