研究面试题
准备辞职了,但自己的能力大公司进不去,小公司的面试又千篇一律,所以决定在网上找些面试题做做,而NHiberna则学习进度可能会变慢。
以下题目最好在心里想下解答在看答案,不然没意义了,程序题都有在VS中编写过。
1:a=10,b=15,在不用第三方变量的前提下,把a,b的值互换
思考:一般换值我们都是用第三方变量辅助的,但不能用第三方变量怎么办,先不管行不行,这个时候第一时间应该想到的是数学算法,而且最好A中有B,B中有A。
解答:
int b = 15;
a = a + b;//25
2:已知数组int[] max={6,5,2,9,7,4,0};用快速排序算法按降序对其进行排列,并返回数组
思考:快速排序我不知道,竟然是研究面试题,那就研究吧。
研究:http://www.cnblogs.com/neekey/admin/EditPosts.aspx?opt=1
解答:有了上面链接就不需要了吧。
3:什么是多态
思考:面向对象三要素之一,主要由基类虚方法子类重写来实现。
解答:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。多态性通过派生类重载基类中的虚函数型方法来实现。
在面向对象的系统中,多态性是一个非常重要的概念,它允许客户对一个对象进行操作,由对象来完成一系列的动作,具体实现哪个动作、如何实现由系统负责解释。
4:您在什么情况下会用到虚方法?它与接口有什么不同?
思考:感觉完全是两个不同的概念,不知道为什么会问答这上面去。
解答:接口和虚方法都是多态性的应用。如果基类中某个方法声明了虚方法,派生类不一定要有这个方法,但是有的话必须OVERRIDE才能实现多态性
接口可以被多继承,并且派生类必须实现接口的所有方法,属性
2010-5-11 END
5:编程遍历页面上所有TextBox控件并给它赋值为string.Empty?
思考:这个题目很多人应该都看到过,解决方法应该是foreach(Control c in this.Controls) if(typeof(c)==typeof(TextBox))....,但是这样可以变量嵌套的页面吗?
解答:
- 传入page的this.Colletions
- 对每一个contorl,如果contorl没有包含子control,进行处理。
- 如果包含,递归调用这个函数处理子control
代码
{
foreach (System.Web.UI.Control objControl in objControlCollection)
{
if (objControl.HasControls())
{
InitialControl(objControl.Controls);
}
else
{
if (objControl is System.Web.UI.WebControls.TextBox)
{
((TextBox)objControl).Text = String.Empty;
}
}
}
}
6:费波那其数列,1,1,2,3,5……编写程序求第十项。
思考:这题大家也做过吧,就是递归,但是能不能用高中数学的通项公式呢?有时间的试试吧,这里用递归。【{[(1+√5)/2]^n-[(1-√5)/2]^n}/√5】
解答:
代码
{
//费波那其数列,1,1,2,3,5……编写程序求第十项
Console.WriteLine("输入数字!");
Console.WriteLine(Fun(int.Parse(Console.ReadLine())));
Console.ReadLine();
}
static int Fun(int num)
{
switch (num)
{
case 1:
return 1;
case 2:
return 1;
default:
return Fun(num - 2) + Fun(num-1);
}
}
7:几种页面之间的传值方法
思考:这道题很简单,但是我原来面试没打出来,不是不会,关键字忘了。。。
解答:1.Session 2.Querystring(传参)3.Server.Transfer 4.Cookies 5.Application 6.Response.Redirect() 这个。。应该算页面跳转吧
8:服务器端Codebehind方式时,如何注册前端javascript脚本,用什么对象的方法
思考:这个很常用吧,不过笔试不知道能不能写出全称来。
解答:ClientScript.RegisterStartupScript
完整的:ScriptManager.RegisterStartupScript (this.GetType(), "", "<script>alert('信息!');location='PersonSchedule.aspx'</script>", false);
ClientScript.RegisterClientScriptBlock 这种控件全部会消失,只有提示框,类似遮罩。
完整的:ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "", "<script>alert('信息!');location='PersonSchedule.aspx'</script>", false);
2010-05-12 AM END
9:ASP.NET 页生命周期
思考:这个真不知道。
解答:
| 阶段 | 说明 |
|---|---|
|
页请求 |
页请求发生在页生命周期开始之前。用户请求页时,ASP.NET 将确定是否需要分析和编译页(从而开始页的生命周期),或者是否可以在不运行页的情况下发送页的缓存版本以进行响应。 |
|
开始 |
在开始阶段,将设置页属性,如 Request 和 Response。在此阶段,页还将确定请求是回发请求还是新请求,并设置 IsPostBack 属性。此外,在开始阶段期间,还将设置页的 UICulture 属性。 |
|
页初始化 |
页初始化期间,可以使用页中的控件,并将设置每个控件的 UniqueID 属性。此外,任何主题都将应用于页。如果当前请求是回发请求,则回发数据尚未加载,并且控件属性值尚未还原为视图状态中的值。 |
|
加载 |
加载期间,如果当前请求是回发请求,则将使用从视图状态和控件状态恢复的信息加载控件属性。 |
|
验证 |
在验证期间,将调用所有验证程序控件的 Validate 方法,此方法将设置各个验证程序控件和页的 IsValid 属性。 |
|
回发事件处理 |
如果请求是回发请求,则将调用所有事件处理程序。 |
|
呈现 |
在呈现之前,会针对该页和所有控件保存视图状态。在呈现阶段中,页会针对每个控件调用 Render 方法,它会提供一个文本编写器,用于将控件的输出写入页的 Response 属性的 OutputStream 中。 |
|
卸载 |
完全呈现页并已将页发送至客户端、准备丢弃该页后,将调用卸载。此时,将卸载页属性(如 Response 和 Request)并执行清理。 |
恩 自己默写遍:页请求——开始——页初始化——加载——验证——会发事件处理——呈现——卸载
10:写一个实现对一段字符串翻转的方法
思考:不用多说了,第一时间想到数组。
解答:
代码
char[] inputChar = inputStr.ToCharArray();
int count = inputChar.Length;
StringBuilder sb = new StringBuilder();
for (int m = count - 1; m >= 0; m--)
{
sb.Append(inputChar[m]);
}
Console.Write(sb.ToString());
11:关于一个纸杯的测试用例设计
思考:貌似这个是测试人员的题目,但考虑到一些BT小公司的面试题,还是写上了。我不是专人,但我觉得考虑到每一个可能出现的错误就行。
解答:
一 需求:
测试一个带广告图案的花纸杯
二 相关背景:
1.杯子特性:
(1)杯子的容量: 能装多少升水,空杯,半杯,满杯
(2)杯子的型状: 圆型,上面口大,下面小。
(3)杯子的材料: 纸杯
(4)杯子的抗摔能力: 风吹是否会倒,摔一次是否会摔坏,摔多次是否会摔坏
(5)杯子的耐温性: 装冷水,冰水,热水
2.广告图案:
(1)广告内容与图案碰水是否会掉色
(2)广告内容与图案是否合法
(3)广告内容与图案是否容易剥落
三 影响范围:
1.可用性:
(1)装入液体多久后会漏水
(2)装入热水多久后可以变温,装入冰水多久后可以融化
2.安全性:
(1)装入不同液体,是否会有化学反应。比如:可乐,咖啡等饮料
(2)装入热水杯子是不是会变型和异味
3.性能:
(1)不同人群是否能适合杯子的型状,包括握杯的感觉和喝水的感觉
(2)不同人群是否能接受杯子的广告内容与图案
2010-5-12 END

浙公网安备 33010602011771号