搜狐2010校园招聘第一站北邮笔试题
转自 狼窝 http://blog.youkuaiyun.com/haoxing168
转载请注明出处
一.填空选择题。(好像是20多分)
太多了,忘了,总之是基础的啦,有看代码的题,有个Python脚本的没看懂
1.以下协议中,报文头最短的协议是:
A.UDP B.TCP C.IP D.以太网帧
2.一个递归算法球时间复杂度,具体忘了,自己先考虑着吧
3.
二.名词解释。(10分,一题1分)
例如:COM = Component Object Model = 组件对象模型
1.ATL
2.SSH(JAVA)
3.SVN
4.MSDN
5,NAT
6,JVM
7,CSS
8.AIO,
9,AJAX
备注:总共10个,忘了一个,另外顺序和原题当然也不一样啦。
三.问答题。(好像是42分,第一题6分,其他三题12分)
1.分别解释const char* p, char const* p, char* p const的作用和区别,如果是java程序员,比较StringBuilder和StringBuffer的区别
2.有两个表,分别表示用户的发图记录和发帖记录,写一SQL语句,求发帖数最少的用户发的图片数,以下是表结构,其中两个表以img_user,rev_user关联。
表image
|
表revision |
如:select _______ as user_id, _______ as rev_count, _______ as img_count from ______
3.对于函数strtok 在多线程下会存在什么问题,应该如何解决。
备注:Strtok是个字符串分割函数,搜狐原题中给了C和JAVA的实现代码,这个大家可以到网上找找,总之就是strtok 函数中用到了一个静态变量,并且会读写这个静态变量,所以在多线程情况下是不安全的,需要同步。
4.已知一个N*N矩阵,矩阵内的元素满足如下条件:对于任意的i+j > x+y 则 Aij > Axy,写一个算法,查找数X的位置,要求算法最优,写出时间复杂度。
备注:搜狐原题中给出了类似的一个矩阵,我肯定是忘了,不过不影响做题。
四.编程题。(20分,任选一个)
1.旅行者问题,已知N*N的格子,旅行者要从格子的左上角走到右下角,格子中的数字代表格子中的金币数,其中-1是旅行者不能走的格子,旅行者需要N-1步能走到重点,这里的每一步可以是向下走一格,也可以是向右走任意格然后再向下走一格。写一算法,使得旅行者走过的路径中得到的金币数量最多。
1 | 4 | 4 |
|
1 | 1 | 2 | 100 |
2 | 2 | 1 | -1 |
1 | 2 | 1 | 1 |
备注:格子类似于上面的,但是具体数字和原题不一样,记不住了,大家将就看吧,最后的算法是一样的,不影响算法的编写。
2.已知一个十二进制数,用字符串表示,如”11”,写一个函数,将其转为long型的10进制数,如:字符串”11”,最后转为 13(10) ,函数原型为:long convert(const char* pStr);