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