Intel-面试经历

好吧,虽然面试过了好几天了,还是来记录下吧:

投的是嵌入式软件工程师实习职位:在面试半个月前收到一次Intel的电话面试,电面通过后说为了考验我的学习能力,让我自学Perl语言,并且做一个关于Pel的PPT到面试时演示,还说过段时间会把公司地址发我邮箱,面试时间定在了某个礼拜的星期二下午2点。于是乎我就在图书馆借了本 小骆驼书来看,学了段时间,可是迟迟木有收到Intel发来的地址和具体部分的邮件。 另外我当时木有记下他们的电话和Email,所以也联系不到他们。(这是个教训啊,以后得记的把接到的每个通知电面通过的电话记下,以防万一)。加上学校课程和工程实践也很忙,我就放下了Perl的学习,也觉得Intel可能已经有更合适的人选,也就把我忘了。可是,到了约定的那天中午12点,突然接到Intel电话,问我有没有去他们公司。那时候。。。觉得。。。好无语。。。都木有发邮件给我,都没通知地址和具体部门(当然自己也有错)。就这样延迟了面试时间,我继续捡起那边Perl狂看,并做了一晚上的PPT。

 

面试那天:要到上海紫竹科技园时,在公交上突然看到了上交闵行校区,那可是我的伤心地,熟悉的拖鞋门。。。不谈了。

下车后,首先见到的是 Microsoft,又伤心了,研究生期间的处女笔试就交给它了,气人的是身边的同学有的收到了拒绝信,有的收到了通过信。可是我却什么都没收到,你倒是拒了我也好,可是就这样把我给忽略掉了。我转身就奔向了隔壁的Intel。

 

在客厅等了半个小时后,被一MM,接到了面试房间:里面坐着两个面试官,问好后,让我坐在了靠近白板的地方(你懂的,意味着要在白板上写代码)。

两个面试官每人前面一台笔记本,下面就开始狂问了:

1:linux中怎么查看一个进程打开了多少文件或者哪些文件。

我答:先查看  /proc目录下面的进程号,然后。。。(我突然想不起来下面有什么了,电脑在他们那边,要是给我ls下也好啊),我一边说着,面试官一遍操作着,最后他自己也没捣鼓出来。一回校就迫不及待试了下,进入某个进程号目录下后看到了fd,ls下,就看到了N个fd号,也就是文件描述符,也就可以数下有几个fd号,也就知道了 一个进程打开了几个文件,当时木有回答上来,就说了一半。

2:说下Open系统调用的过程。

从中断讲到了系统调用,最后讲到了file_operation.感觉很多细节东西都忘了,就说了个大概~面试官也不问了。

3:文件操作read怎么实现的,要注意哪些。

就简单说了下用户态和内核态数据的复制,问注意哪些时,没想到太多,回来之后看了下内核代码才知道,要注意的东西太多了,内存检测等等。

4:讲下印象最深的项目,解决了哪些问题,怎么实现的。

这个一下把我问住了,我不知道讲哪个项目好,当时说了句,可不可以把所有项目都讲下一个一个的讲,其中一个面试官直接无语了,说他们时间有限。

唉~一点都没准备啊,说好的Perl呢,说好的PPT呢。就简单讲了下最近做的工程实践项目了。

5:进程、线程区别

好吧,这个是我目前唯一能自信的讲出来的。balabala讲了一堆。

6:在白板上写个代码,实现:给定一个整型数组,输入一个数字N时,要输出数组中第N大的数,并把它原来的下标输出来,要求用C语言实现,时间复杂度要求不超过O(n^2),20分钟时间。

当时心里想着,终于该我发挥的时候了,第一次在白板上写代码,很不适应的说。我上来就写了个冒泡排序,逆序排列数组,当时就想着怎么才能记下它们原来的下标呢,在冒泡的过程中,它们的下标肯定是变了的,突然想到,定义一个数组存放它们最原始的下标,在冒泡中元素交换位置时,把对应的下标也互换位置,这样也就相当与下标跟着元素走了。心里一阵狂喜,写好了。

面试官看了下,第一个问题就说我的冒泡写错了,我当时还真以为写错了,看了下就跟他辩论,我是逆序排序。。。好吧,他以为我要实现正序。。。

然后评价了下我的代码,说写的不够好看,木有封装好。。。

最后突然问,不用辅助空间怎么实现。 也就是说不允许定义一个存放下标的数组。

当时脑子短路了,一下子想不起来了,最后简单聊了聊后,就让我回去等消息了。

 

刚一出Intel大门,突然想到了解决不用辅助空间的方法,唉~反应太迟钝了,第一次遍历下数组,知道了数组最大元素。INT类型的是4个字节,一般整数不会完全用完,可以用4个字节的前2个字节存放它们的下标(前提是这个数小于2^16),这样每次冒泡时,比较它们的低16位就行了,同时下标也跟着元素的交换走了。

 

面试过了好几天了,说等通知的,估计没戏了~研究生初面就这样结束了。~纪念下了~默哀1分钟~

 

你可能感兴趣的:(int)