2012/11/11 vmware 笔试题目

来源:互联网 发布:w7怎么删除软件 编辑:程序博客网 时间:2024/06/04 17:50


今天在上海交大闵行校区,笔试了vmware。写一篇日志,记录下笔试的题目。

试题形式:90分钟。20道不定项选择题,占60%分数;2个写程序的题目,占40%分数。全英文。

从后往前写吧,因为后边的题目记得清楚些。题目后边的 ref 是我搜索到一些相关技术文章,供我写完这篇随笔后慢慢学习使用。

 

一. 写程序题目:

1. 给定一个 int 类型的数,在一个已经排序好的数列 int[] 中查找该数出现了多少次。例如 [1 1 2 2 2 4 6 7 7 8 9 10], f(7) = 2。设计一个你认为最理想的算法。描述算法,并给出时间复杂度。

  我是用 java 写的,算法是构建一个 Hashtable<Integer, Integer>, key 和 value 分别是数字和该数字出现的次数。然后在这个Hashtable 中查找给定数字出现的次数。构建 Hashtable 的时间复杂度是 O(n),n 是数列长度,查找给定数字的时间复杂度是 O(1)。

2. (第二个题目描述很复杂,而且我做到这道题的时候,已经不到10分钟了,我按照我记得的复述一下,不一定正确)分配存储空间,有一种 aligned_malloc 方法,它每次动态分配的存储空间是2的次方,比如 16, 32, 64...,根据实际需要的 size 来确定分配的 aligned memory。实现下面两个函数:

  1) void * aligned_malloc(int size, int alignment)

  2) void * aligned_free(void * memory)

  ref: http://msdn.microsoft.com/zh-cn/library/vstudio/8z34s9c6.aspx

 

二. 选择题目

  每一道题目都需要一定的时间,所以这部分我记得的比较乱,而且我记住的许多是我不会或者拿不准的题目,毕竟比较困难的题目在脑海中会盘桓的比较久一点。我随便写下我记得的吧,下面的标号不是实际的题号。

 

1. 这是第一题,给定一个数组和数组的排序过程,然后问是那种排序,我选的是堆排序。不过选项中有个 shell sort,我忘了是它是怎么实现的了...

 

2. GET 和 POST 的区别,当然,题目本身不是这么问的,每个选项都很细节,我不确定。记得有 GET是不是比 post 更安全, post是不是能传输更多的信息, post 的传输数据量是不是无限的。

  ref: http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html

    http://zhidao.baidu.com/question/7984230.html

    http://youngsin2009.cnblogs.com/

 

3. Etag 标签和 http 协议中什么选择相关联,我选择了 if-modified-since,回来之后,百度了下,还应该选 if-matched/if-none-match

  ref: http://en.wikipedia.org/wiki/HTTP_ETag

    http://baike.baidu.com/view/3039264.htm

 

4. 数据库有连个选择题,一个是 pattern expression 的,选取某 column 中以字符串 abcd 开头的项,答案是 A,表达式部分是 LIKE 'abcd%'  ; 另一道数据库的题目是 database index 是用哪些数据结构实现的,选项有 b tree, b+ tree, b- tree, AVL tree 还有一个忘了,我只选了 b+ b-树,应该是漏选了。

  ref: http://en.wikipedia.org/wiki/Database_index

    http://blog.csdn.net/hguisu/article/details/7786014

    http://blog.jobbole.com/24006/

 

5. 有两道虚函数表的题目,Vmware 好像很看重这个,因为我看到在2010年和2011年的笔试面试中都有这方面的题目,当然,它不是直接问你概念,而是很具体的例子和细节,所以尽管我之前看了好几篇虚函数表的文章,依然不是很确定做没做对。 

 

6. 完全二叉树,有 N 个node, 问叶子节点有多少个。

  我通过举列子试验,得出答案是:N/2 和 N/2 + 1

 

7. 死锁问题。有3个 processes,每个process 都需要4个同一类型的 resources。问如果不发生死锁,那么至少 (at least) 需要多少个 resources?

  选项有9、10、11、12 四个。 我选择的10。

 

8. toplogical sort 问题。一个单项无环图 (a directed acyclic graph),有这些边 (<1, 2> <2, 3> <3, 4> <1, 4>),问这幅图的 toplogical sort 是什么?

  选项有四个,我选了两项。(a) 1, 2, 4, 3   和 (b) 1, 4, 2, 3  

 

9. Brain teaser 题目有两三个吧。只记得一个排队买电影票的问题。题目是有10个人排队买电影票,电影票每张 5$,其中5个有 5$ 的纸币,另外5个人只有 10$ 的纸币,问有多少种排队方法,让售票员顺利卖给他们票,同时不需要准备售票员自己准备钱?

  选项有41, 42, 43... 这道题我想了会儿没想出来,就随便选了一项,继续往下做了。

 

写到这里发现大部分的题目都已经被我写出来,看来我的记忆力还可以 :-0)  但愿我能通过笔试吧 O(∩_∩)O~