毕业季面试题(3)

以下的面试题为微软亚太研发总部的面试题(如果其中的算法有其他的人有其他的算法的希望可以共同讨论或给我发邮件fanhongshuo@sina.com中)

首轮笔试试面试题如下:

9.字符串str="I love coding!",写一个方法将字符串反转,输出“!gindoc evol I".

 方法一:不可直接输出字符串,需要遍历输出

(使用Reverse()方法

static void Main(string[] args)

{

string str="I love coding!";

char[] a=str.ToCharArray()://ToCharArray()把一个字符串转化成一个字符数组。

Array.Reverse(a);

foreach(char c in a)

{

Console.WriteLine("{0}",c);

}

}

方法二:利用数组

static void Main(string[] args)

{

string str="I love coding";

char[] a=str.ToCharArray():

for(int i=str.Length-1;i>=0;i--)

{

Console.Write("{0}",a[i]);

}

}

 方法三:比方法二遍历快点,遍历二分之一

static void Main(string[] args)

{

string str="I love coding";

char[] a=str.ToCharArray();

int Len=a.Length;

for(int i=0;i<Len/2;i++)

{

char temp=a[i];

a[i]=a[Len-Len-i];

a[Len-Len-i]=temp;

}

foreach(char j in a)

{

Console.WriteLine(j);

}

}

方法4:

static void Main(string[] args)

{

string str="I love coding";

StringBuilder str2=new StringBuilder(str.Length);

for(int i=str.Length-1;i>=0;i--)

{

b.Append(str[i]);

}

Console.WriteLIne(b.ToString());

}

10.长度为1001的整形数组array,每个元素都是1到1000之间不重复的一个数,但是有唯一一个数出现了两次,编写方法求出这个重复数字是多少?

 (方法1):声明一个数组arr1={0,0,...,0};中间有一千个零,遍历array数组,把整形元素对应的数组arr1为整形元素的下标的元素++1,最后只有一个arr1元素加完后为2,搜索到2即使对应的重复数字。

(方法2):(本题在面试的过程中改进方法1)在++1之后,进行一个if判断,如果对应整形元素下标的元素++1之后所对应的值大于1则结束输出此元素。

11.文件传输的问题,大规模传输图片,视频等文件用的是TCP协议还是UDP协议?

 UDP协议

12.有一个”学生---课程“数据库,数据库中包括三个表:

(1)”学生“表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,可记为:Student(Sno,Sname,Ssex,Sage,Sdept)Sno为关键字。

(2)”课程“表Course由课程号(Cno)、课程名(Cname)、先修课程号(Cpno)、学分(Ccredit)四个属性组成,可记为:Course(Cno,Cname,Cpno,Credit)Cno为关键字。

(3)”学生选课“表SC由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,可记为:SC(Sno,Cno,Grade)(SNO,CNO)为关键字。

完成下列操作:

1.简历一个”学生“表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成,其中学号属性不能为空,并且其值是唯一的。

2.查考试成绩有不及格的学生的学号。

3.将学生95001的年龄改为22岁

4.计算1号课程的学生平均成绩

14.什么是装箱和拆箱?频繁的装箱和拆箱有没有问题?怎么在不用装箱拆箱的情况下,解决由于装箱拆箱造成的问题(不要用方法重载这些过于繁琐的解决方法)。

第二轮面试

13.如果第10道题,你通过数组遍历的方式完成的换,那下面在本体中,还是上面这道题,你给我不用遍历就可以找出那个重复的数是多少?请问你的方法是?

(编程实现这个方法)

 方法3:(1)int[] arr2={1,2,3,....,1001};先对arr2求和得sumArr2

 (2)在对array求和得sumArray

(3)重复数字X=1001-(sumArray-sumArr2);

(4)最重要的就是这个思想。

14.Translate into Chinese

 Last week I went to the theatre.I had a very good seat.The play was very intersting.I did not enjoy it.A young man and a young woman were sitting behind me.They were talking loudly.I got very angry.I could not hear the actors.I turned round.I looked at the man and the woman angrily.They did not pay any attention.In the end,I could not bear it.I turned round again.'I can't hear a word!' I said angrily.'It's none of your business,'the young man said rudely.'This is a private conversation!

 上周我去电影院,我有一个很好的座位,电影也很有意思,但是我不高兴。一对少男少女正好坐在我后面。他们说话的声音太大了,我感到非常生气,

15.Write in English

  我们的客户提交了一个Bug,关于电视在播放节目的时候会提示”网络条件不好,不能流畅播放高清节目“的警告栏。清幽英语书写一封邮件,表达感谢客户及时地反馈信息,我们对此表示诚挚的歉意。经我们项目组经验表明,是使用无线网络的机顶盒在一定条件下,网络带宽不足导致的。希望客户提供更多的环境参数,我们会尽快解决这个问题。

 第三轮面试:

1.我有一列数比如:3,5,6,8,9,10,20,13我要的效果就是把所以的奇数都放到偶数的前面请用代码给我实现(之后面试官就会拿来笔记本,你在他的笔记本上现场作答完成这个算法,自己在vs2010上建一个项目,写出一个方法来实现这个功能,同时要完成不管是任意一组数,不仅局限于上边这一列数,面试官就在你一旁看你现场编程,考察现场解决问题的能力)

第四轮面试:

第四轮面试题是微软的合作伙伴的跨国公司的面试官

1.先用英文做一个自我介绍

2.把我的简历上的项目经验中的项目描述拿出来现场翻译,项目描述如下:

本项目是在原人事人才网的基础上做的二次开发,原人事人才网系统存在某些不足,比如用户功能单一,网页样式陈旧,运行效率低下,操作重复执行等,随着用户数量的快速增长,数据丢失、误报、不能承载用户数据的快速增长等问题已经严重制约人才储备系统的发展。本项目使用Microsoft Server与.net等技术,以数据库为核心,运用web开发技术详细设计并开发出了一套更加完善的人事人才网系统。 
本系统用B/S架构实现了个人用户与企业用户之间的信息交互,以SQL server作为系统数据库,通过权限分级实现模块化管理。

(然后就是现场翻译)

3.说一下泛型List<T>

原文地址:https://www.cnblogs.com/fanhongshuo/p/3810954.html