淘宝2011春季实习生招聘研发类笔试题回顾


4月1日(坑爹的日子)晚上到南大参加了今年淘宝春季实习生的笔试,这是我求职路上的第一步——第一次投简历,第一次参加笔试。说个题外话,南大老校区很有味道。

虽然我投的是安全工程师的岗位,但和投研发类的同学做的是同一份试卷。发现考场里投安全工程师的还是很少的,大部分都是我同学了,恩,去了好多南邮人。笔试题总体上来讲比较基础,填空选择侧重基础的C语言语法,基本算法和数据结构,综合题比较考验思维和能力。现在把我还记得的部分题目记录一下,供大家参考,也欢迎讨论。

选择题:
在局域网的网关对访问请求进行过滤,哪种方案开销最小()
A:根据http请求的头信息包含的关键字进行过滤
B:对特定IP地址进行过滤,在握手阶段断开连接
C:拦截DNS请求,对请求返回随机的IP
D:检查访问请求的网址,对含有关键字的请求进行过滤

char val=‘A’,下面哪个选项正确()
A:free((char *)&val)
B:*((short*)&val)=65
C:*((unsigned char*)&val=’a’
D:delete ((char *)&val)

下面的cache替换的算法中,哪个平均命中率最高()
A:FILO   B:RAND     C:FIFO       D:LRU

剩下的选择题有排序算法、二叉树的中序遍历、进栈出栈顺序、二分搜索的题,比较基础,就不列了。

填空题:
前面两题是数组的元素插入问题和二分搜索非递归实现的程序填空,后面两题如下。

int c[4][5] , (*p)[5] ; p=c; 用p表示c[2][3]____________。(不能出现[])

下面程序运行结果是___________。

#include<stdio.h>
void main()
{
    int i;
    for(i=0;i<3;i++)
    {
        switch(i)
        {
            case 0:printf("%d",i);
            case 2:printf("%d",i);
            default:printf("%d",i);
        }
    }
}

综合题:
一间囚房里关押着两个犯人。每天监狱都会为这间囚房提供一罐汤,让这两个犯人自己来分。起初,这两个人经常会发生争执,因为他们总是有人认为对方的汤比自己的多。后来他们找到了一个两全其美的办法:一个人分汤,让另一个人先选。于是争端就这么解决了。可是后来,这间囚房里又加进来一个新犯人,现在是三个人来分汤。必须寻找一个新的方法来维持他们之间的和平。该怎么办呢?

给定一个整数数组a[0~n-1],试给出一个算法,找出一段连续的数组下标L,L+1,L+2……,M,使得a[L],a[L+1],a[L+2],……,a[M]的和最大,并给出该算法的计算复杂度。

淘宝网有2000台机器提供web访问服务,用户每次访问的信息都会被记录下来,包括用户名、IP、请求 url、响应时间等。现需要每天凌晨2点时要出一份报表,统计一天内平均响应时间最长的100个url,要求报表尽可能快地生成。如何设计这个报表系统?

  1. #1 by kivan on 2011 年 04 月 03 日 - 12:14

    = = 就记得5题额。。
    还有弄个插件把代码高亮额。
    还有最后面的程序括号不匹配额。。
    坐等狼哥捷报= =#~

    • #2 by mazhechao on 2011 年 04 月 03 日 - 19:45

      昨晚仓促发布,现已修改。捷报……已然噩耗。

      • #3 by kivan on 2011 年 04 月 04 日 - 14:22

        这么快就有噩耗了额。。= =|||
        我们学校有捷报麽= =、、

  2. #4 by Tom-Zhao on 2011 年 04 月 14 日 - 20:44

    那个分汤我是这样想的:要是他们任意两个不串通的话,可以A先分成两份,B从两份中挑一份再分两份,C可以从3分钟任意挑,B只能挑自己分的那两份中的一份,A要他们剩下的。
    不知这个可行否?

    • #5 by mazhechao on 2011 年 04 月 14 日 - 21:33

      可以看我的GR分享:-)如果有串通怎么办?这个问题我们上周的freetalk讨论过,希望今后看到你们参与freetalk的身影。还可以读一些关于博弈论和数学小品的书。来我这儿逛逛很好啊~

  3. #6 by tangbo on 2011 年 05 月 02 日 - 13:42

    确实是 基础&思维, 我一直认为算法中最经典的就是dynamic programming,最能体现一个人的思维能力。

  4. #8 by tangbo on 2011 年 05 月 03 日 - 10:23

    只要想找,就能找到啊。。。

(will not be published)

Are you a human?