博彦科技面试题-最新(上海)
1.HR will have a interview face to face for your oral English and your ability of expressing your emotion for some thing. then Technical interviewer (Team Leader) will take some technology test.
2.数据库存储过程,ASP.NET 中怎么去调用存储过程。
其实,在这里主要是考察了ADO.NET中几大特性的运用,例如:Connection,Command,DataReader,Dataset,
DataAdapter。
说明:
Connection:建立与特定数据源的连接。 所有 Connection 对象的基类均为 DbConnection 类。
Command:对数据源执行命令。 公开 Parameters,并可在 Transaction 范围内从 Connection 执行。 所有 Command 对象的基类均为 DbCommand 类。
DataReader:从数据源中读取只进且只读的数据流。 所有 DataReader 对象的基类均为 DbDataReader 类。
DataAdapter:使用数据源填充 DataSet 并解决更新。 所有 DataAdapter 对象的基类均为 DbDataAdapter 类。
注意:新手面试经常会遇到考这样的题:ADO.NET 的五大对象,就是 上面四种 + DataSet 要牢牢记住哦。后期开发也经常用到。
3. 简单介绍一下ASP.NET三层架构 可以参考我的博客: 浅析ASP.NET三层架构
4.在未排序的整形数组中,长度大于10,寻找任意一个数,是这个数属于它的最小集。
对于这个问题,我不知道定义会不会有错,怎样去理解这个最小集,例如:有数组 a=(5,3,4,8,9,2,12,10),那在这个数组中,肯定有一个值 3,属于最小集(3,4)。那这样是不是很好理解呢.找出最小的,再找出第二小的。这样写出来它的时间复杂度就是 O(n),这时候,面试官问,有没有比O(n)更小的算法呢?读者可以考虑一下。
5.XPath。考查一下xpath 的运用。其中文思创新喜欢考这玩意。在这里写一下小运用:
{
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(filepath);
XmlNodeList nodelist = xmldoc.SelectNodes(@"/root/employees/employee"); // xpath
foreach (XmlNode node in nodelist)
{
Console.Write(node.Name + " ");
}
}
6.HeapSort。you can get more information from internet. below is source:
/// 小根堆排序
/// </summary>
/// <param name="dblArray"></param>
/// <param name="StartIndex"></param>
/// <returns></returns>
private static void HeapSort(ref double[] dblArray)
{
for (int i = dblArray.Length - 1; i >= 0; i--)
{
if (2 * i + 1 < dblArray.Length)
{
int MinChildrenIndex = 2 * i + 1;
//比较左子树和右子树,记录最小值的Index
if (2 * i + 2 < dblArray.Length)
{
if (dblArray[2 * i + 1] > dblArray[2 * i + 2])
MinChildrenIndex = 2 * i + 2;
}
if (dblArray[i] > dblArray[MinChildrenIndex])
{
ExchageValue(ref dblArray[i], ref dblArray[MinChildrenIndex]);
NodeSort(ref dblArray, MinChildrenIndex);
}
}
}
}
/// <summary>
/// 节点排序
/// </summary>
/// <param name="dblArray"></param>
/// <param name="StartIndex"></param>
private static void NodeSort(ref double[] dblArray, int StartIndex)
{
while (2 * StartIndex + 1 < dblArray.Length)
{
int MinChildrenIndex = 2 * StartIndex + 1;
if (2 * StartIndex + 2 < dblArray.Length)
{
if (dblArray[2 * StartIndex + 1] > dblArray[2 * StartIndex + 2])
{
MinChildrenIndex = 2 * StartIndex + 2;
}
}
if (dblArray[StartIndex] > dblArray[MinChildrenIndex])
{
ExchageValue(ref dblArray[StartIndex], ref dblArray[MinChildrenIndex]);
StartIndex = MinChildrenIndex;
}
}
}
/// <summary>
/// 交换值
/// </summary>
/// <param name="A"></param>
/// <param name="B"></param>
private static void ExchageValue(ref double A, ref double B)
{
double Temp = A;
A = B;
B = Temp;
}
7.智力题,在12个小球中有一个和其他不同(或轻或重),用一天枰。请问至少称几次可以称出来,怎么称。
这样的题目,网上很多,主要考察的是一种逻辑思维能力。
8.设计模式---单键模式,工厂模式,观察者模式等等。
在这里不做细致的分析,读者可以自己去网上找点资料找点。
这次面试比较快,后面也被推到微软那边了,面试题,我将会在后面统一列出来。
注: 本人只在这里做面试的技术和小小经验分享,不做任何的公司评价。给更多的程序员一个交流和发展的平台,更是给正在贫困线左右的找工作的大学生一个小分享。如有任何的问题,请留下你的足迹,后面,我同一修改。