我做过的面试题

在面试过程中遇到一些面试题,现在同大家分享一下,希望对自己对网友们都有所帮助。

第一次面试

1.  强类型数据集和弱类型数据集的区别和优缺点?

2.  Postback callback 区别

3.  C# 实现冒泡排序

4.  B/s c/s 区别

5.  Webservice remoting 区别

6.  Sql 方面(主子表,各种查询统计、汇总、更新主表同时更新子表)

7.  索引类型和创建方式

8.  内存泄露问题

9.  泛型、反射、委托的理解

10. ERP SCM CRM DRP OA 区别

答案(个人做的,仅够参考):

 

1. 

强类型数据集是面向对象的,而若类型数据集是针对数据的。而且若类型数据集比较灵活,所以强类型数据集适合相对静态的情形而若类型数据集适合相对动态的情形。

2.  

Postback asp.net webform 中的概念,回传的意思,就是我们将数据由客户端提交到服务器,是会引起页面刷新的。而 Callback 是回调的意思,我们将请求发送到服务器,服务器做出响应后以异步的方式发送到客户端。

3.

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int[] a = new int[] { 3,2,5,7,9,1}; BubbleSort(a); foreach (int i in a) { Console.WriteLine(i); } } public static void BubbleSort(int[] myArray) { int length = myArray.Length; for (int i = 0; i < length - 1; ++i) { for (int j = i + 1; j < length; ++j) { if (myArray[i] > myArray[j]) { int temp = myArray[i]; myArray[i] = myArray[j]; myArray[j] = temp; } } } } } }  

 

4.

C/S 是客户端服务器结构,在客户端需要安装相应的客户端软件及相应的环境,客户端相应速度快,但是不方便维护和升级。

B/S 是浏览器服务器结构,相当于瘦客户端,也就是在客户端只需要一个浏览器即可,优点是容易维护升级,但是在运行速度方面相对较慢。

 

5.

webservice web 服务,使用http 协议以xml 格式进行数据传输,和具体平台无关,传输效率相对较差,适用于b/s 结构。而remoting 是远程调用,可以使用http 协议,但是更多的采用tcp 协议以二进制方式进行传输,只适用于.net 平台,传输效率较高更适用于局域网c/s 结构。

6.原题不太清楚了,考察内容粘贴过来:

create table Sales ( id int identity(1,1) primary key not null, totalMoney float, saleDate datetime ) create table SaleDetail ( id int primary key foreign key references Sales(id) on delete cascade, goodsName varchar(50), number int, price float, goodsMoney float, ) select goodsName,sum(goodsMoney) as Total from Sales ,SaleDetail where Sales.id=SaleDetail.id and SaleDate>='2009-1-1' and SaleDate<='2010-10-1' group by goodsName order by Total desc create procedure pro_Sales ( @id int ) as select * from Sales where id=@id go exec pro_Sales 1 create index idx_SaleDetail_goodsName on SaleDetail(goodsName)  

7.

聚集、非聚集。Create index on tableName columns

8.

暂时没有找到答案,而且原题有些记不清楚了,以后补充。

9.

泛型:使你能够编写完全以一般化却可以重复使用的一种算法,其执行效率等同于针对特定类型编写的方法,类似与 c++ 中的模板。简单地说就是可以把数据类型作为参数进行传递。

反射:通过反射可以获得 .Net 每一个类型的成员信息,包括成员变量、属性、方法等,甚至可以实例化对象以及调用其相应的方法。我们常用的 orm 映射、 Ioc 控制反转都是利用反射来实现的。

委托:委托类似于 c++ 中的函数指针,利用委托我们可以将函数打包成一个变量进行传递。例如我们常用的匿名类、 Lambda 表达式其实质都是委托。

10.

这个没有回答上来,网上也没有找到太好的答案,希望知道的朋友给补充一下。

 

第二次面试

1.       不引入变量交换 ab 的值

2.       写出 工厂模式、命令模式、状态模式的一种

3.       Asp.net 传值方式

4.       造成查询速度慢的因素,如何解决

5.       如何判断一个字符串中的字母是否包含在另一个字符串中

6.       不引入新数组(或集合)的同时使一个数组内部元素不重复

7.       Asp.net 的服务器控件添加删除提示

8.       IHttpModule IHttpHandler 作用

 

答案(仅供参考):

1. 

a=b-a;

b=b-a;

a=b+a;

2.这个我就以工厂模式为例

namespace FactoryMethod { interface Car { void run(); void stop(); } class Benz : Car { public void run() { Console.WriteLine("Benz run"); } public void stop() { Console.WriteLine("Benz stop."); } } class Ford : Car { public void run() { Console.WriteLine("Ford run"); } public void stop() { Console.WriteLine("Ford stop."); } } interface Factory { Car createCar(); } class BenzFactory: Factory { public Car createCar() { return new Benz(); } } class FordFactory : Factory { public Car createCar() { return new Ford(); } } class Program { static void Main(string[] args) { Factory f = new BenzFactory(); Car c = f.createCar(); c.run(); c.stop(); } } }  

3.

表单传值 form.submit();

超链接后面加参数方式 <a href=”a.aspx?id=1”>a.aspx</a>;

Response.redrect(“a.aspx?id=1”);

Server.transfer(“a.aspx?id=1”);

Session

Cookie

Application

4.

建立索引

优化 sql 算法(尽量避免使用 in between select*

大量数据采取分页查询

5.

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string str1 = "abcdefg"; string str2 = "adch"; Console.WriteLine(IsInclude(str1, str2)); } public static bool IsInclude(string a,string b) { bool exit=true; for(int i=0;i<b.Length;++i) { if (a.IndexOf(b.Substring(i,1)) == -1) { exit = false; } } return exit; } } }  

 

6.

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int[] ar = new int[] { 1,2,1,3,5,7,1}; FilterSameNum(ar); foreach (int i in ar) { Console.WriteLine(i); } } public static void FilterSameNum(int[] intArray) { for (int i = 0; i < intArray.Length; ++i) { for (int j = i+1; j < intArray.Length; ++j) { if (intArray[j] == intArray[i]) { Array.Clear(intArray, j, 1); //j--; } } } } } }  

7.Page_Load 事件中添加

btnDelete.Attributes.Add("onclick", "javascript:return confirm('确定要删除吗?')");  

 

8.

 

实现 IHttpHandler 的类可以处理请求以及做出相应。

 

 

 

实现 IHttpModule 的类可以实现过滤并作出相应操作的功能。

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(我做过的面试题)