c# net面试题

上传人:xzh****18 文档编号:34573991 上传时间:2018-02-25 格式:DOC 页数:29 大小:132KB
返回 下载 相关 举报
c# net面试题_第1页
第1页 / 共29页
c# net面试题_第2页
第2页 / 共29页
c# net面试题_第3页
第3页 / 共29页
c# net面试题_第4页
第4页 / 共29页
c# net面试题_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《c# net面试题》由会员分享,可在线阅读,更多相关《c# net面试题(29页珍藏版)》请在金锄头文库上搜索。

1、本文集中了多条常见的 C#、 .Net 经典面试题目例如“ .NET 中类和结构的区别” 、“ASP.NET页面之间传递值的几种方式?”,并简明扼要的给出了答案,希望能对学习 C#、.Net 的读者有所帮助。 1, 请你说说.NET 中类和结构的区别?答:结构和类具有大体的语法,但是结构受到的限制比类要多。结构不能申明有默认的构造函数,为结构的副本是又编译器创建和销毁的,所以不需要默 认的构造函数和析构函数。结构是值类型,所以对结构变量所做的改变不会影响其的原值,而类是应用类型,改变其变量的值会改变其原值。申明结构用 Struck 关键字,申明类用 class 关键字,向方法传递结构是时是通过

2、值传递的,而不是通过引用。与类不同,结构的实例化可以不使用New 关键字。类 可以实现接口。2, 死锁的必要条件?怎么克服?答:系统的资源不足,进程的推进的顺序不合适,资源分配不当,一个资源每次只能被一个进程使用,一个资源请求资源时,而此时这个资源已阻塞,对已获得资源不放,进程获得资源时,未使用完前,不能强行剥夺。3, 接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承实体类?答:接口是可以继承接口的,抽象类是可以实现接口的,抽象类可以继承实体类,但是有个条件,条件是,实体类必须要有明确的构造函数。4, 构造器 Constructor 是否可以被继承?是否可以被 Override

3、?答:Constructor 不可以被继承,因此不能被重写(Overriding),但可以被重载(Overloading).5, 当一个线程进入一个对象的方法后,其它线程是否可以进入该对象的方法?答:不可以,一个对象的方法只能由一个线程访问。6, 用最有效的方法算出等已 8 对于几?答:2=ln(n)/ln2(k=1)解得 k=ln(n)/ln3(2)k*ln3/ln2=ln(2n)/ln2(k1)解得 k=ln(2n)/ln3这是得到下限,可以很轻易证明满足条件的最小正整数 k 就是所求。比如称 3 次知道轻重可以从 33=27 个球中找出不同的球出来,如果不知道轻重就只能从(33-1)/2

4、=13 个球中找出不同的球出来。.net 笔试题姓名: 日期:1. 填空: (1)面向对象的语言具有 _封装_性、_继承_性、_ 多态_性。(2)能用 foreach 遍历访问的对象需要实现 _IEnumerable_接口或声明_GetEnumerable_方法的类型。(3)列举 ADO.net 中的五个主要对象_Command_、_Connection_、_DataAdapter_、_DataSet_、_DataReader_。2. 不定项选择:(1) 以下叙述正确的是:bc A. 接口中可以有虚方法。 B. 一个类可以实现多个接口。C. 接口不能被实例化。 D. 接口中可以包含已实现的方法

5、。(2) 从数据库读取记录,你可能用到的方法有:bcdA. ExecuteNonQuery B. ExecuteScalarC. Fill D. ExecuteReader3. 简述 private、 protected、 public、 internal 修饰符的访问权限。答:public 不受限制的访问Private 只能在本类中访问Protected 本类和继承与他的类中的都能访问Internal 同一个应用程序或类库中4. 写出一条 Sql 语句: 取出表 A 中第 31 到第 40 记录(SQLServer, 以自动增长的 ID 作为主键, 注意:ID 可能不是连续的。)答:sele

6、ct top 10 from a where id not in(select top 30 from a)或:select top 10 from a where id (select max(id) from (select top 30 from a) as b)5 .列举 ASP.NET 页面之间传递值的几种方式。答:session(viewstate) 简单,但易丢失application 全局cookie 简单,但可能不支持,可能被伪造input type=hidden 简单,可能被伪造url 参数 简单,显示于地址栏,长度有限数据库 稳定,安全,但性能相对弱6. 写出程序的输出结

7、果class Class1 private string str = Class1.str;private int i = 0;static void StringConvert(string str) str = string being converted.;static void StringConvert(Class1 c) c.str = string being converted.;static void Add(int i) i+;static void AddWithRef(ref int i) i+;static void Main() int i1 = 10;int i2

8、 = 20;string str = str;Class1 c = new Class1();Add(i1);AddWithRef(ref i2);Add(c.i);StringConvert(str); StringConvert(c);Console.WriteLine(i1);Console.WriteLine(i2);Console.WriteLine(c.i);Console.WriteLine(str);Console.WriteLine(c.str); 答:10,21,0,str,string being converted.7.写出程序的输出结果public abstract

9、class A public A() Console.WriteLine(A);public virtual void Fun() Console.WriteLine(A.Fun();public class B: A public B() Console.WriteLine(B);public new void Fun() Console.WriteLine(B.Fun();public static void Main() A a = new B();a.Fun();答:A,B ,A.Fun()8. 写出程序的输出结果:public class A public virtual void

10、Fun1(int i) Console.WriteLine(i);public void Fun2(A a) a.Fun1(1);Fun1(5);public class B : A public override void Fun1(int i) base.Fun1 (i + 1);public static void Main() B b = new B();A a = new A();a.Fun2(b);b.Fun2(a); 答:2 ,5,1 , 69. 一列数的规则如下: 1、1 、2 、3、5、8 、13、21、34. 求第 30 位数是多少, 用递归算法实现。(C#语言)答:pri

11、vate int Add(int i)if (i 0); / throws an Assertionerror if a Function FindTextBox()var controls = document.getElementsByTagName(input);for(var i=0;i listi + 1)done = false;temp = listi;listi = listi + 1;listi + 1 = temp;j+; return list;1、override 与重载的区别答:其实很本质的区别就是看函数特征:覆写(Override)的两个函数的函数特征相同,重载(O

12、verload)的两个函数的函数名虽然相同,但函数特征不同。 函数特征包括函数名,参数的类型和个数。Override 是在继承的时候,如果你写的函数与要继承的函数函数特征相同,那么,加上这个关键字,在使用这个子类的这个函数的时候就看不见父类(或超类)的函数了,它被覆盖掉了。2、.net 的错误处理机制是什么答:try可能要出错的代码catch出错后如何处理finally不论是否出错都要执行3、C中接口和类的异同答:类是引用类型,可以继承类、接口和被继承,有默认的构造函数,有析构函数,可以使用abstract 和 sealed,有 protected 修饰符,必须使用 new 初始化。接口可以说

13、是比抽象类更抽象的类,只能继承接口,是一种规范4、DataReader 和 DataSet 的异同答:dataset 是保存数据的数据结构,断开模式,而 DataReader 不承担保存数据的责任,需要自己手动关闭连接数据库,它只负责从数据源读取数据到本地而已,是只读向前的,它不是数据结构,而是网络通讯组件的高层封装。1.有哪几种方法可以实现一个类存取另外一个类的成员函数及属性,并请举列来加以说明和分析.答:反射,base2.如果需记录类的实例个数,该如何实现,请写一个简单的类于以证明.答:static int num 0;在构造函数里 num+。3.A 类是 B 类的基类 ,并且都有自己的构

14、造,析构函数,请举例证明 B 类从实例化到消亡过程中构造, 析构函数的执行过程.答:A 构造 B 构造 B 析构 A 析构4.需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.答:string a = a b c d e c d ;string d = a.Replace( , );while (true)d = d.Replace( , );if (d.IndexOf( ) = -1)break;一. 填空题1.c#中的三元运算符是_?:_?2.当整数 a 赋值给一个 object 对象时,整数 a 将会被_ 装箱 (封装)_?3.类成员有_种可访问形式? (public,private,protected,internal )4.public static const int A=1;这段代码有错误么?是什么? const 不能用 static 修饰5.float f=-123.567F;int i=(int)f;i 的值现在是_? 答:123 6.利用 operator 声明且仅声明了 “=”,有什么错误么?答: 还要声明“!=”7.委托声明的关键字是_? 答:delegate8.用 sealed 修饰的类有什么特

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题 > 高中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号