2011年微软笔试真题

进修社 人气:1.34W

例行交代一下,今天早上闹钟不知道的何故没有响(每次有事的时候总出问题)。8点钟起床,8点20出发。三环外堵车,92路还堵。下车9:35,因为提前二十分钟进场,我就跑过去了。我原以为迟到会直接取消资格,结果10点才开始,而且有个姐姐过了开考半个多小时才过来,太飙汗了。全英文的,20道选择题,不定项选择,分值不一样。全选中满分,以下全部为回忆写的。我只写出我自己的答案,有错请指出。

2011年微软笔试真题

1. 给定一个整形数组,数组的大小为N,数组内的数的范围为-N到N,问最好的排序时间复杂度是多少?

A O(logN)

B O(N)

C O(NlogN)

D O(N2) /*(代表平方)*/

E 以上都不对

应该是B,采用位图排序,google位图排序

2. MVC模式是现在开发的一种常用设计模式,请问如下可以充当MVC模式中控制器的`是?

A CSS

B HTML 模板

C Javascript

D Web Service

E 以上都不是

我真的不懂,我勉强觉得Web Service可以当作是控制器吧

3. 在编译进程中,会产生Parse Tree的是?

A 语法分析过程

B 语意分析过程

C 汇编代码过程

D 目标代码过程

百度了一下,貌似是在语法分析上,没学过编译原理不懂,后面百度链接

4. 寻找最短路径,给定一个还算不是很复杂的图。图不记得了,选项也不记得了。

google 普鲁姆算法 克鲁斯卡尔算法

5. 一个节点可以生成生成一种二叉树,两个相同的节点可以生成两种二叉树,三个相同的节点可以生成5种二叉树?那5种呢?

备选答案忘记了。刚查了一下,42。公式是C(2n, n)/(n+1)

6. 对于一个32位的操作系统来说,那些是正确的?

A. 操作系统可以访问到的物理内存为4G

B. 用户空间可访问的内存为4G

C. 碎片会极大的减缓程序的运行速度

D. 虚拟内存对应的实际内存不一定要连续

我觉得是ACD

7. 给定一个二进制串,001110101如何编程001110010。

选项忘记了,反正就是一个符号运算符,应该是考补码的表示的。还有就是或与运算符。

8. 代码,运行结果是什么。比较简单,就不写了,应该就是找第几大的数。

9. 这个也是一个代码,F(1024)运行结果。没i有做出来,不懂他要考什么,大概代码:

int F(int i)

{

if (i == 0)

{

return 4;

}

if (i == 1)

{

return 0;

}

int p1 = 0;

int p2 = 4;

int count = 2;

for (count < i)

{

int p3 = (p1+p2)%5;

p1 = p2;

p2 = p3;

count++;

}

return (p1 + p2)%5;

}

10. 找出一个数组中,第M大的数,时间复杂度是?

A O(logN)

B O(N)

C O(NlogN)

D O(N2) /*(代表平方)*/

E 以上都不对

编程珠玑上看到了的,就是O(N)

11. 强制转换问题,int i, float f, double d, 下面哪个正确?

A i = (int)(double)i;

B i = (int)(float)i;

C f = -(-f);

D f = (float)(double)f;

E d = (double)(float)d;

12. 下面哪一个数可以判读是否一个数是2的n次方(n可以是等于或大于0的数)。位运算,还是于运算、或运算。

13. 一个排序二叉树,有5个元素,里面是1,2,3,4,5。问以下哪个序列不能遍历出来?

比如中序遍历出来是1,2,3,4,5,给定了四个序列,每个按照序列采用后序或者前序或者遍历构造一个排序二叉树,看能不能构造出来。

14. 99!里面有多少个0?

A 9

B 21

C 22

D 31

E 32

15. 一个virtual class 能不能生成一个abstract table?

16. 考前缀表达式,我不懂。