您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > C_面试题_总结_2
1.在.net(C#orvb.net)中如何获得当前窗体或控件的句柄,特别是控件本身的句柄(请列举)。答案:this(C#)Me(vb.net).2.在.net(C#orvb.net)中如何取消一个窗体的关闭。答案:privatevoidForm1_Closing(objectsender,System.ComponentModel.CancelEventArgse){e.Cancel=true;}3.在.net(C#orvb.net)中,Appplication.Exit还是Form.Close有什么不同?答案:一个是退出整个应用程序,一个是关闭其中一个form4.在C#中有一个double型的变量,比如10321.5,比如122235401.21644,作为货币的值如何按各个不同国家的习惯来输出。比如美国用$10,321.50和$122,235,401.22而在英国则为£10321.50和£122235401.22答案:publicstaticvoidMain(){//System.Globalization.CultureInfoMyCulture=newSystem.Globalization.CultureInfo(en-US);System.Globalization.CultureInfoMyCulture=newSystem.Globalization.CultureInfo(en-GB);//为英国货币类型decimaly=9999999999999999999999999999m;stringstr=String.Format(MyCulture,Myamount={0:c},y);Console.WriteLine(str);}//{0,10:c}0下标,10字符串要占用的字符数如果字符数不够也会完整显示,:c格式说明符d,e,f,g,n,p,x5.某一密码仅使用K、L、M、N、O共5个字母,密码中的单词从左向右排列,密码单词必须遵循如下规则:(1)密码单词的最小长度是两个字母,可以相同,也可以不同(2)K不可能是单词的第一个字母(3)如果L出现,则出现次数不止一次(4)M不能使最后一个也不能是倒数第二个字母(5)K出现,则N就一定出现(6)O如果是最后一个字母,则L一定出现问题一:下列哪一个字母可以放在LO中的O后面,形成一个3个字母的密码单词?A)KB)LC)MD)N答案:B问题二:如果能得到的字母是K、L、M,那么能够形成的两个字母长的密码单词的总数是多少?A)1个B)3个C)6个D)9个答案:ALL问题三:下列哪一个是单词密码?A)KLLNB)LOMLC)MLLOD)NMKO答案:C6.62-63=1等式不成立,请移动一个数字(不可以移动减号和等于号),使得等式成立,如何移动?答案:62移动成2的6次方7.根据线程安全的相关知识,分析以下代码,当调用test方法时i10时是否会引起死锁?并简要说明理由。(10分)答案:不会引起死锁(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。但如果把int换做一个object,那么死锁会发生)publicvoidtest(inti){lock(this){if(i10){i--;test(i);}}}8.简要谈一下您对微软.NET构架下remoting和webservice两项技术的理解以及实际中的应用。(10)答:WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。9.公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击ListView各列列头时,能按照点击列的每行值进行重排视图中的所有行(排序的方式如DataGrid相似)。根据您的知识,请简要谈一下您的思路:(10)答:根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中10.String和StringBuilder的区别?答案:(1)System.String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错。但是在.NET框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间,产生两个垃圾。(2)而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。如果想要编写将连续操作依次连接起来的单个语句,这将很方便。如果要操作一个不断增长的字符串,请你不要再用String类了。当然,一般情况下你是觉察不出这二者效率的差异的,但如果你要对某个字符串进行大量的添加操作,那么用StringBuilder类所耗费的时间和String类简直不是一个数量级的。11.能用foreach遍历访问的对象需要实现_______接口或声明_________方法的类型。答:IEnumerable、GetEnumerator。12.GC是什么?为什么要有GC?答:GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:System.gc()Runtime.getRuntime().gc()13.Strings=newString(xyz);创建了几个StringObject?答:两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。14..abstractclass和interface有什么区别?答:声明方法的存在而不去实现它的类被叫做抽象类(abstractclass),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义staticfinal成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof运算符可以用来决定某对象的类是否实现了接口。15.sleep()和wait()有什么区别?答:sleep()方法是使线程停止一段时间的方法。在sleep时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级(b)正在运行的线程因为其它原因而阻塞。wait()是线程交互时,如果线程对一个同步对象x发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。16.shorts1=1;s1=s1+1;有什么错?shorts1=1;s1+=1;有什么错?答:shorts1=1;s1=s1+1;有错,s1是short型,s1+1是int型,不能显式转化为short型。可修改为s1=(short)(s1+1);shorts1=1;s1+=1正确。17.如何处理几十万条并发数据?答:用存储过程或事务。取得最大标识的时候同时更新..注意主键不是自增量方式这种方法并发的时候是不会有重复主键的..取得最大标识要有一个存储过程来获取.18.Session有什么重大BUG,微软提出了什么方法加以解决?答:是iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sateserver或SQLServer数据库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件。19.进程和线程的区别?答:进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源20.堆和栈的区别?答:栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。堆:一般由程序员分配释放。用new、malloc等分配内存函数分配得到的就是在堆上。21.ASP。NET与ASP相比,主要有哪些进步?答:asp解释形,aspx编译型,性能提高,有利于保护源码。22.产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。int[]intArr=newint[100];ArrayListmyList=newArrayList();//动态数组(数组列表)Randomrnd=newRandom();while(myList.Count100){intnum=rnd.Next(1,101);If(!myList.Contains(num)){myList.Add(num);}}for(inti=0;i100;i++){intArr[i]=(int)myList[i];}23.列举ASP.NET页面之间传递值的几种方式。答.1.使用QueryString,如....?id=1;response.Redirect()....2.使用Session变量3.使用Server.Transfer24.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?答:this.Server.Transfer25.描述一下C#中索引器的实现过程,是否只能根据数字进行索引?答:不是。可以用任意类型。26.求以下表达式的值,写出您想到的一种或几种实现方法:1-2+3-4+……+m答:intNum=Convert.ToInt32(Console.ReadLine());intSum=0;for(inti=0;iNum+1;i++){if((i%2)==1){Sum+=i;}Else{Sum=Sum-i;}}Console.WriteLine(Sum.ToString());27.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?答:一般为3层:数据访问层,业务层,表示层。1).数据访问层对数据库进行增删查改。2).业务层一般分为二层,业务表现层实现与表示层的沟通,业务规则层实现用户密码的安全等。3).表示层为了与用户交互例如用户添加表单。优点:分工明确,条理清晰,易于调试,而且具有可扩展性。缺点:增加成本。28.什么叫应用程序域?答:应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小。应用程序域是.NET中的一个重要技术改进,他用于减少运行应用程序的系统开销,这些应用程序需要与其他程序分离开来,但同时还需要彼此通信。29.CTS、CLS、CLR分别作何解释?答:CTS:通用类型系统。CLS:通用语言规范。CLR:公共语言运行库。30.什么是装箱和拆箱?答:从值类型转换到引用类型为装箱。从引用类型转换到值类型拆箱。31.什么是受管制的代码?答:unsafe:非托管代码。不经过CLR运行。32.什么是强类型系统?答:RTTI:类型识别系统。33.net中读写数据库需要用到那些类?他们的作用?答:DataSet:数据存储器。DataCommand:执行语句命令。DataAdapter:数据的集合,用语填充。34.常用的调用WebService的方法有哪些?答:1.使用WSDL.exe命令行工具。2.使用V
本文标题:C_面试题_总结_2
链接地址:https://www.777doc.com/doc-2904441 .html