开发者社区> zting科技> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

.net软件工程师面试

简介:
+关注继续查看

.net软件工程师面试题一. 填空题:

  1. 类的三大特性是(封装)(继承)(多态)。

  2. 在SELECT语句的FROM子句中最多可以指定(256)个表或视图,相互之间要用(逗号)分隔,当所查询的表不在当前数据库时,可用(数据库名.所有者名.表名)格式来指出表或视图对象。

  3. 创建存储过程的命令是(create proc 存储过程名)删除表的命令是(drop 表名)。

  4. 计算字段的累加和的函数是:(sum),统计项目数的函数是:(count)。

  5. 关系数据库中,主键是(外键)。

  6. 声明抽象类的关键字是(abstract),抽象类不能(sealed)。

  7. .NET运行库支持被称为(委托)的引用类型,其作用类似于C++中函数指针的用途。

  8. XML的全称是(Extensible Markup Language)。

  9. C#中所有的类型实质上都是从(Object)类派生而来的。

  10. 声明静态变量的关键字是(static),声明常量的关键字是(const)。

  11. C#中处理内存管理功能的是(托管代码)。

  12. 在C#中用于显式地将一个值或引用转换为另一种不同的类型称为(拆箱)。

  13. 在ADO。NET中,command对象是用(ExcuteNonQuery)(ExcuteScalar)(ExcuteDataReader)方法执行命令。

  14. B/S通常使用的结构设计模型分为(模型)(视图)(控制)。

  15. SQL SERVER中索引类型包括的三种类型分别是(主键索引)(唯一索引)(聚集索引)。

  .net软件工程师面试题二. 简答题:

  1.什么是中间语言(IL)?它的作用?

  答:代码在执行前都要被编译为托管代码,与CPU无关的指令集。

  其作用:支持平台无关性,还支持语言的互操作性。

  2.什么是装箱和拆箱?

  答:值类型转换成引用类型是装箱,引用类型转换成值类型是拆箱。

  3. 出ADO。NET中读写数据库的主要的几个类?它们的作用?

  答:Connection数据库连接;Command执行SQL语句或存储过程;DataAdapter用于填充DataSet和更新数据库的一组数据命令和数据库连接,断开模式;DataReader,读取数据库信息,是只读向前的;DataSet数据在内存中的缓存。

  4. C#中接口和类有什么异同?

  答:类是引用类型,可以继承类、接口和被继承,有默认的构造函数,有析构函数,可以使用abstract和sealed,有protected修饰符,必须使用new初始化。

  结构是值类型,只能继承接口,不能被继承,没有默认的构造函数,可以创建,没有析构函数,不可以用abstract和sealed,没有protected修饰符,可以不用new初始化。

  如何选择使用结构还是类:

  1.堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些

  2.结构表示如点、矩形和颜色这样的轻量对象,例如,如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存。在此情况下,结构的成本较低。

  3.在表现抽象和多级别的对象层次时,类是最好的选择

  4.大多数情况下该类型只是一些数据时,结构是最佳的选择

  5. 解释ASP。NET中的code-behind?

  答:代码隐藏,显示逻辑的代码和处理逻辑的代码分离

  6. 什么是ASP。NET中的用户控件?

  答:是asp.net代码创建的控件,就像在标准的ASP.NET Web页面中创建控件一样,可以在多个ASP.NET页面中重用它们。

  7. 在C#中,string str = null 与 string str = “” 请尽量说明其中的区别。

  答:string str=null没有分配空间,string str=“”分配了空间

  8. 什么是受管制代码?

  答:由公共语言运行环境进行管理的代码,它主要负责内存管理。在.net平台上运行的代码都是受管制代码

  9 C#中常用的访问形式?它们各自的作用域?

  答:public 不受限制的访问。

  private 只能在本类中访问

  protected 本类和继承他的类中访问

  internel表示在同一个应用程序(application)或类库(library)中都能使用

  10. SQL SERVER 中的存储过程的理解?

  答:存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。

  11.CTS,CLS,CLR分别作何解释?

  答: CTS:公共类型系统.主要是为了语言之间的进行标准化处理.

  CLS:公共语言规范.主要是确保代码可以在任何语言中访问的最小标准集体

  CLR:公共语言运行时.主要是管理代码..处理,加载代码,以及所有服务的代码

  12. ASP。NET和ASP的主要优势?

  答:ASP.Net的优势:

  ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++ , VB , JS等等,当然,最合适的编程语言还是MS为.Net Frmaework专门推出的C(读c sharp),它可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/ 纠错体系。

  13. NET的错误处理机制是什么?

  答:try{可能要出错的代码}

  catch{扑捉到错误后的处理}

  finally{不论代码是否出错都要执行}

  14. 解释Page.IsPostBack属性?

  答:使用者第一次浏览这个网页时Page.IsPostBack 会传回False,不是第一次浏览这个网页时就传回True

  15..net framework包含哪几种技术?

  答:Application Framework,Domain Framework

  16.触发器分为事前触发和事后触发,有何区别?

  答:事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值

  17.解释SQL SERVER2000中HAVING的用法?]

  答:在分组时筛选数据

  18.解释SQL SERVER2000中GROUP BY的用法?

  答:分组

  19.解释下C#中的方法的重载?

  答:重载方法:是指使用相同的方法名,但指定不同的参数(个数,类型)。

  20.事务是什么?

  答:在许多大型、关键的应用程序中,计算机每秒钟都在执行大量的任务。更为经常的不是这些任务本身,而是将这些任务结合在一起完成一个业务要求,称为事务。当某一个任务失败时,就恢复到指定的恢复点,这个叫回滚。

  21.描述下ASP。NET中使用DataReader对象 和DataSet对象的区别?

  答:dataset是保存数据的数据结构,断开模式,而DataReader不承担保存数据的责任,需要自己手动关闭连接数据库,它只负责从数据源读取数据到本地而已,是只读向前的,它不是数据结构,而是网络通讯组件的高层封装。

  22.分析类和结构的异同?

  答:类是引用类型,可以继承类、接口和被继承,有默认的构造函数,有析构函数,可以使用abstract和sealed,有protected修饰符,必须使用new初始化。

  结构是值类型,只能继承接口,不能被继承,没有默认的构造函数,可以创建,没有析构函数,不可以用abstract和sealed,没有protected修饰符,可以不用new初始化。

  如何选择使用结构还是类:

  1.堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些

  2.结构表示如点、矩形和颜色这样的轻量对象,例如,如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存。在此情况下,结构的成本较低。

  3.在表现抽象和多级别的对象层次时,类是最好的选择

  4.大多数情况下该类型只是一些数据时,结构是最佳的选择

  23.解释ADO。NET中的使用Connection 类的CLOSE()和DISPOSE()的区别?

  答:close只是关闭,dispose是释放资源。

  24.叙述ADO。NET中的DataAdapte类的作用?

  答:断开模式连接数据库,并且填充DataSet。

  25.什么是WEBSERVICE ?

  答:web服务,是利用SOAP(简单对象访问协议,Simple Object Access Protocol)在HTTP上执行远程方法调用的一种方法,也可以使用WSDL(Web Service Description Language,Web服务描述语言)来完整的描述Web服务,基于XML标准。

  26.行下面代码后:

  String strTemp ="abcdefg 某某某";

  int i System.Text.Encoding.Default.GetBytes(strTemp).Length;

  int j = strTemp.Length;

  问:i=( 14) ;j=( 11)

  原因是什么?

  答:汉字占2个字节,所以i=14

  27..叙述ASP。NET中的几种验证控件(equiredFieldValidato, CompareValidator, RangeValidator, RegularExpressionValitor, CustomValidator, ValidationSummary)及作用?

  答:

  a) RequiredFieldValidator(必须字段验证);

  b) CompareValidator(比较验证);

  c) RangeValidator (范围验证);

  d) RegularExpresionValidator(正则表达式);

  e) ValidationSummary(验证总结);

  f) CustomValidator(自定义验证)

  .net软件工程师面试题三. 编程题:

  1.有三个表,结构如下:

  STUDENT(学生证号,姓名,性别,出生年月)

  COURSE(课程号,课程名,授课教师)

  SC(学生证号,课程号,成绩,授课教师)

  用标准SQL 语句完成下列操作

  1. 查询女生的基本情况,并按照学生证号降序排列

  答:select * from STUDENT where性别=’女’order by 学生证号 desc

  2. 查询成绩在90分以上的学生的姓名

  答:select 姓名from STUDENT,SC where STUDENT.学生证号 = SC.学生证号 and SC.成绩 > 90

  3. 查询数学类课程的课程号和课程名(模糊查询,以S开头)

  答:select 课程号,课程名 from COURSE where 课程名 like ‘S%’

  4. 查询选课学生所选课程的课程号和成绩,以及该学生的姓名和性别

  答:select 课程号,成绩,姓名,性别 from SC,STUDENT,COURSE

  where SC.学生证号 = STUDENT.学生证号

  and COURSE.课程号 = SC.课程号 group by 学生证号

  5. 查询03号课程的平均成绩

  答:select avg(成绩) from SC where 课程号 = ‘03’

  6. 删除成绩不及格的学生姓名

  答:delete from STUDENT where学生证号 in (select学生证号 from SC where 成绩 < 60);

  delete from SC where成绩 < 60;

  注意:删除的顺序不能反

  7. 把学生证号为90876的学生所选的01号课程成绩改为80分

  答:update SC set 成绩 = ’80’where 学生证号=’90876’ and课程号 = ‘01’

  2.SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号。(10)

  答:select ID from table1 where LastUpdateDate = (select max(LastUpdateDate) from table1)

         以上面试资料.net软件工程师面试题精华集锦中的一部分,经过一段时间的工作经验的积累后,可发展成为高级软件工程师、算法应用开发工程师和需求工程师,但需要具有丰富的软件开发经验和相关工作的技术背景。如果想成为技术精英、项目经理,则还需要具有较强的管理和组织等方面的能力。

原文地址



本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/archive/2012/12/26/2834908.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
2021 面试还不知道如何优雅关闭Java线程?(上)
线程池提供了两个方法:shutdown()和shutdownNow(): shutdown()是种保守的关闭线程池方法。线程池执行shutdown()后,就会拒绝接收新任务,但会等待线程池中正在执行的任务和已进入阻塞队列的任务,都执行完后才最终关闭线程池。 shutdownNow()相对激进,线程池执行shutdownNow()后,会拒绝接收新任务,同时中断线程池中正在执行的任务,已进入阻塞队列的任务也会被剥夺了执行的机会,不过这些被剥夺执行机会的任务会作为shutdownNow()方法的返回值返回。因为shutdownNow()方法会中断正在执行的线程,所以提交到线程池的任务。
48 0
2021 面试还不知道如何优雅关闭Java线程?(下)
线程池提供了两个方法:shutdown()和shutdownNow(): shutdown()是种保守的关闭线程池方法。线程池执行shutdown()后,就会拒绝接收新任务,但会等待线程池中正在执行的任务和已进入阻塞队列的任务,都执行完后才最终关闭线程池。 shutdownNow()相对激进,线程池执行shutdownNow()后,会拒绝接收新任务,同时中断线程池中正在执行的任务,已进入阻塞队列的任务也会被剥夺了执行的机会,不过这些被剥夺执行机会的任务会作为shutdownNow()方法的返回值返回。因为shutdownNow()方法会中断正在执行的线程,所以提交到线程池的任务。
32 0
【大厂Java并发编程面试题解】显式锁(Explicit Locks)(上)
Java5之前只能用synchronized和volatile,Java5后Doug Lea提供了ReentrantLock,并非为了替代内置锁,而是当内置锁的机制不适用时,作为一种可选择的高级功能。 内置锁不适用的场景包括: 无法中断一个正在等待获取锁的线程 无限的锁等待 内置锁必须放在代码块里(编程有些局限性) 所以提供了J.U.C的Lock接口及实现。
21 0
只用这一篇Java泛型的文章,保证你面试对答如流
只用这一篇Java泛型的文章,保证你面试对答如流
39 0
一道阿里面试难题:如何计算JAVA对象大小?
在做JVM内存调优的时候,我们免不了需要去计算对象的大小。计算对象大小又要考虑是普通对象还是数组对象,因为普通对象与数组对象的对象头存在些许差异。而且自JDK6以后,为了节省内存、提高运行效率,又引入了新的技术:指针压缩。更加剧了计算对象大小的难度。
198 0
Java初级开发0608面试
Java初级开发0608面试
37 0
一年经验Java开发0713面试
一年经验Java开发0713面试
51 0
面试Java后端却问我时间轮算法,面试官没想到我看过Dubbo源码!(中)
面试Java后端却问我时间轮算法,面试官没想到我看过Dubbo源码!(中)
46 0
最新 Java 面试职场指南,太实用了!
以下是Java技术栈微信公众号发布的所有关于 Java 面试、程序人生技术干货,没看过的可以利用碎片时间看下,希望对大家有帮助,本文会长期更新。
43 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
程序员面试宝典
立即下载
Java开发者面试百宝书
立即下载
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧
立即下载