2011-5-28微软笔试小记

来源:互联网 发布:车牌识别软件 编辑:程序博客网 时间:2024/04/30 01:47

今天下午在复旦参加了微软实习的笔试,凭记忆大概写一下题目,供大家参考。

BTW:这应该不算是违法乱记行为吧?

感觉基本上就是排序、时间复杂度以及字符串。

笔试分为两大部分,全部是英语题,我按照自己的理解写成汉语了,并且没有答案【】是我自己的想法。

第一部分10道选择题 每道题答对4分,不答0分,写一个错误选项则会扣除一分。(共40分)

第二部分是一道编程题(C、C++、C#、Java均可),写完之后要编写 测试用例。(35+15)

选择题部分

1. 以下哪些不是栈的基本操作

  A. push

  B. pop

  C. 判断栈是否为空

  D. 栈排序                 【】

2.两个有序数组 大小都是n,现在要对它们进行合并排序。  问最坏情况下,需要比较多少次?

A. 2n+1

B. 2n

C.2n-1                      【】

D....记不清了

3.    (an表示第n个常数, x^5表示x的5次方)

f(x)= a0*x^0 + a1*x^1+a2*x^2+..................an*x^n

对于固定的n,f(x)的时间复杂度以及空间复杂度分别是多少?

A. o(n^2),o(n)

B.o(n),o(1)               【】

C..

D..  都记不住了

4.是个概率题,大概意思是这样的

  现在有800个人,但是只有400份奖品,有一对夫妇都参加抽奖,但是他们最多抽到一份奖,现在问他们俩能抽到一份奖的概率是多少?

 A.0.5

 B.0.75

 C. (0.5,0.75)

 D. (0.75,1)

5.(该题为数据结构课本上经典的链表插入问题,还好初建玮大姐当时讲过一百遍。。。)

   现有一链表当前指示节点为currentNode, 生成了一个新节点newNode,问要把newNode插入到  currentNode之后 ,该怎么做?

 A....

 B....

 C.   newNode->next = currentNode->next, currentNode->next = newNode. [其它三个答案都很萌。。。]   

 D....

 6. 问以下哪些特征不是 interpreted language(解释型语言)所独有的:

(我们知道一般分为两种:解释型语言 VB,Shell,批处理等;编译型语言,C,java等。各有优点 )

 A. 平台无关性。(明显不对,因为java才是平台无关的)

 B. 执行速度较快(这个问题,以前做作业时就没争论清楚,自己感觉解释型语言不需要编译,速度能快一些,但是重复执行时,编译型语言只需要编译一次,效率高。。。)

 C. 可以定义动态变量(应该两种都可以)

 D.以上都不对

7.给了一个二叉树,让求后序遍历的结果。

  这个题如果知道后序遍历,肯定就可以做出来了。

  尽管不难 还是要搞清楚三者的区别(哈哈)

  先序  左根右

  中序  根左右

  后序  左右根

8.问以下几种排序方法,在最坏情况下时间复杂度小于o(n^2)的是哪一种(这个题目记得不是很清楚了)

 A.快排

 B.插入排序

 C.合并排序

 D.栈排序

9.  现有n+1这么大的存储空间(可以理解有这么一个大小为n+1的数组),中间存了[1,n+1]范围内的n个数,说明丢失了一个数,现在要找出这个丢失的数,问最好情况下时间复杂度是多少

A.o(1)

B.o(n)

C.o(n^2)

D.o(nlogn)

10.是一道程序题,由于太长,无从记忆。。。

 

编程题部分

   用C,C++,C#,或Java中的一种来编写以下程序。

  现在给你一个 字符串,其中特殊的字符只有两种 space(空格)("  "),newline(换行)(/n). 现在让你来去除其中多余的空格。

  具体要求

    1.连续的空格只能当保留其中一个

    2. 该字符串的开头不能有空格

    3. 该字符串的结尾不能有空格

    4.  任何/n的前面或才后面都不能存在多余的空格

 为了得到很高的分数,还需要满足以下条件

    1.不能申请新的字符串空间

    2.对给出的字符串只能遍历一遍

 

 不能使用任何库函数。

我们给了两个供你调用的函数

    int intIsSpace(char  str)()

      当字符不为空格时,将返回0

      当字符为空格时,将返回其它任意非0值

 

    int intIsNewLine(char str)()

      当字符不为换行时,将返回0

      当字符为换行时,将返回其它任意非0值

程序编写完成后,请编写测试用例,并说明它完成的作用。

 

先写这么多,欢迎大家给出自己的正确答案。

原创粉丝点击