.NET 面试题汇总(一)

移动UI设计

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

   static void Main(string[] args) { Console.WriteLine(add(30)); } public static int add(int i) { if (i == 1

   i == 2) return 1; else return add(i - 1) + add(i - 2); }2. override 和Overload(重载)的区别

  override 与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要

   Override 是进行基类中函数的重写。实现多态。

  3.委托是什么?事件和委托的区别

  委托:委托是对函数方法的一种封装,事件是一种特殊的委托

  4.值类型和引用类型的区别

  值类型 分配在内存栈中,引用类型的具体内容分配在内存堆中,引用类型地址分配在栈中

  5.ref关键字的作用

  写在值类型前面表示 传入值类型的地址,也就是值类型的内容会随之改变

   写在引用类型前面表示 传入引用类型在栈上的的实际地址,如果不加此关键字,在方法中修改类型的指向地址将不会起作用

   <u>ref关键字表示传入栈的地址,不加ref表示传入栈中某一地址存的具体内容</u>

   class Program { static void Main(string[] args) { testc cc = new testc { name="AAAAA" }; testc( cc); //cc的Name属性不会发生变化 } public static void testc( testc m) { m = new testc { name = "BBBBBB" }; } } class testc { public string name { get; set; } public int age { get; set; } }6.Asp.Net六大对象是什么

  Request-->读取客户端在Web请求期间发送的值Response-->封装了页面执行期后返回到Http客户端的输出Server-->提供对服务器上的属性和方法的访问Application-->用于整个运行期间的状态对象Session-->会话期状态保持对象,用于跟踪单一用户的会话Cookie-->客户端保持会员信息的一种方法7.MVC的路由选择是什么?

  路由选择功能帮你定义一个URL规则,映射URL到控制器。

  8.求以下表达式的值,写出您想到的一种或几种实现方法:1-2+3-4+……+m

  if (m % 2 == 0) sum = -(m / 2); else sum = -(m - 1) / 2 + m;9.CTS、CLS、CLR分别作何解释?

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

  10.程序集和命名空间的区别

  程序集:物理分组

   命名空间:逻辑分组

  11.分析以下代码,完成填空

  string strTmp = "abcdefg某某某";int i= System.Text.Encoding.Default.GetBytes(strTmp).Length;int j= strTmp.Length;i=13,j=10//一个中文占两个字节(byte)12.try{}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

  会在return之前执行

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

  session(viewstate) 简单,但易丢失

   application全局

   cookie简单,但可能不,可能被伪造

   inputttype="hidden" 简单,可能被伪造

   url参数 简单,显示于地址栏,长度有限

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

  14. 冒泡算法

   int[] array = new int[*]; int temp = 0; for (int i = 0; i < array.Length - 1; i++) { for (int j = i + 1; j < array.Length; j++) { if (array[j] < array[i]) { temp = array[i]; array[i] = array[j]; array[j] = temp; } } }15. 设计模式六大原则

  单一职责

   里氏代换(用到子类的地方都可以用父类替代)

   依赖倒置(高层模块不依赖于底层模块,二者都应依赖于抽象)

   接口隔离原则(客户端不应依赖他不需要的接口)

   迪米特法则(一个对象应该对其他对象保持最少了解)

   开闭原则(对拓展开放,对修改关闭)

  以下是我7月份的部分面试题答案:

  1、Int a=4, b=13, c=16, Max=0, Max = a > b ? a:b; Max = c < Max ? c:Max, 求Max的值

  Max = a > b Max=13

  2、不使用其他变量,交换两个整型a,b的值;

  数学运算 a = a + b; b = a - b; a = a - b; 位异或运算 a = a^b; b = a^b; a = a^b; 3、[javascript] ajax请求的时候get和post方式的区别?

  使用Get请求时,参数在URL中显示,而使用Post方式,则不会显示出来使用Get请求发送数据量小,Post请求发送数据量大4、[javascript]var a1=10; var a2=20; alert(“a1+a2=”+a1+a2)的值是什么?

  a1+a2=10205、[css]中可以让文字在垂直居中和清除浮动两个属性是什么?

  清除浮动 clear:both。 文字在垂直居中 text-align: center; vertical-align: middle;6、[css]display:none与visibility:hidden的区别是什么?

  display:none 会完全隐藏元素,不再占据页面空间!visibility:hidden 仅仅是隐藏了元素的显示效果,但是仍然占据页面空间!7、[sql]现有Employess表,字段birthDay。现在要查找当天过生日,本月和下月过生日的员工。

  --当天 select * from Employess where (month(getdate()) = month(birthDay) and day(getdate()) = day(birthDay)) --本月、下月 select * from Employess where month(birthDay) - month(getdate()) in (0,1,-11) 8、[sql]本题用到下面的三个关系表

  card (借书卡表) 字段: cno 卡号,name 姓名,class 班级

  books (图书表)字段: bno 书号,bname书名,author作者,price单价,quantity

  库存册数

  borrow (借书记录表)字段: cno 借书卡号,bno书号,rdate 还书日期

  1) 找出借书超过5本的读者,输出借书卡号及所借图书册数。

  select cno ,count(*) as ”借图书册数” from borrow group by cno having count(*)>5

  2) 查询当前借了”计算方法”但没有借”计算方法习题集”的读者,输出其借书卡号,并按卡号降序排序输出

  select a.cno from borrow a,books b where a.bno =b.bno andb.bname=N计算方法

  and not exists( select * from borrow aa,books bb where aa.bno =bb.bno

  and bb.bname=N计算方法习题集 and aa.cno =a.cno) order by a.cno desc

  3) 将”co1”班同学所借图书的还期都延长一周

  update b set rdate =DATEADD(Day,7,b.rdate) from card a,borrow b

  where a.cno =b.cno and a.class=NC01

  看完本文有收获?请转发分享给更多人!!!如果你有更好的答案,欢迎大家点赞,留言讨论,喜欢这篇文章可以分享给更多人,我每天更新分享有关程序员、科技、编程之类的文章!!!爱你们,,么么哒,,让我们一起愉快的玩耍把!!!

标签: 移动UI设计