微软亚洲工程院全国第一轮笔试

来源:互联网 发布:linux开启snmp 编辑:程序博客网 时间:2024/04/29 08:51
前天微软亚洲工程院全国第一轮笔试,西安考区的,安排在西电,人挺多,不过应
该不到一千吧。

15页考卷,分为AB卷,要求是三个小时考完,全部用铅笔答题。中途不允许去WC,
PS:全英文考题。总体来说还是很基础的,算法与数据结构的比较多,还有一些推
理题目,不过这次的不难(条件环节不够多)。当然少不了编程的题目不过这些题
目主要是考你对程序的理解与习惯。


都过了一夜睡了一觉,题目不记得多少了,就记得几个自己印象深刻点儿,遗憾才深
刻....

I Basic
这个部分有近二十道多项选择题和若干填空题,内容繁多零散,大部分是关于数据结
构和c/c++语言,还有关于软件工程,测试方法,无状态网络的一些题目;填空题是读
程序填结果,当然最后还有一道比较复杂的逻辑题目.

1。regular expression不能描述的是?
a)两个连续偶数
b)两个连续奇数
。。。。

2


int s(int v)
{
     int count=0;
     int x=v;
     while (x)
     {
          count++;
          x=x&(x-1)
     }
     return count;
}

s(9999)=?


3,关于堆排序的东西,插入新的元素以后的结果

4,关于C语言中,.h文件和.c文件之间的关系

5,如果数据扩大两倍,是向左,还是向右移动几位的问题

6,对二叉排序数,以什么输出(前序,中序,还是后续)输出,是排列

7,一个顺序为 1,2,3,4,5,6 的栈,依次进入一个队列,然后再进栈, 顺序
是什么?

8 关于数组指针的的题目

9 regular language 和context language之间的关系是什么.
a)regular language more powerful than context free language
(后面两个个选项记不清楚了,反正大意就是比较两个谁好.最后一个选项是两者不
能进行这样的比较)

10 在编写代码是查找错误好还是用testing找好?

11 好像是说编译器可以修改type error的好处或不好。 


逻辑推理部分

一个线性车库,5排5辆车,一车最多坐两人.
6个人.Tom,Jack, Gawen, Laurie, Mark, Paul.

.Mark独享车且紧跟空车后
.Tom不跟Gawen或Paul坐一辆车.
.Laurie跟别人共享车.
.Gawen在第三排或第四排.

一共5道题目,显然通过4个条件不能确定车序.有的题目是问存在的可能,有的题目
是附加条件后问车序.


程序设计部分.



1 Translate MIPS assembly code into a function in C/C++
* your code should be concise
* no any GOTOs/pointers

MIPS code:


func:
     li $v0,0
     li $t0,0
l1:
     add $t1,$a0,$a0
     lb $t2,0($t1)
     beq $t2,$zero,l3
     bne $t2,$a1,l2
     add $v0,$v0,1
l2:
     add $t0,$t0,1
     j     l1
l3:
     jr $ra


(caller register: $t0~$t9,$a0~$a3,$v0~$v1; callee $s0~$s7,$ra)
然后列出了指令表,li是赋值,lb是将字段后第一个寄存器内容个字节的内容复制到
第二个寄存器,beq是等值转移ben是不等值转移,j是无条件转移,jr转移至寄存器标
示的内容.

实现数组的插入,查找,删除操作.

arr为指向数组的指针
len为数组长度.
count表示数组元素数目.
出错返回-1

int insert(int* arr,
  size_t len,
  size_t count,
  int val)
返回插入的数组索引.
插入后要求对数组排序.
出错处理

int search(int* arr,
  size_t len,
  size_t count,

  int val)
要求返回所找到的元素
出错处理

int remove(int* arr,
  size_t len,
  size_t count,
  int val)
要求返回删除的元素值
出错处理



测试部分.

1.你被分配到Internet Explorer研发部,(从核心到界面什么都可以).你如何设
计,开发和测试它?

2.给你个DVD,你应当如何测试它,如果你的时间极其有限,你会测试什么?为什么?

3.给你一个字符比较函数strCmp(const char* string1, const char* string2)以
及其返回值表明的意义,(>0, ==0, <0),设计测试case

4.一段字符串复制程序,指出其存在的错误和潜在缺陷.


最后是个论述题目,只有这个题目是要用英文作答的,上面的都可以用Chinese

问的是你在过去一年里做出过什么样的重要决定,你为什么做出这样的决定,这个决
定对你的影响,你达到你作决定时期望的目标了没.有什么收获.



问的是你在过去一年里遇到什么样的问题,你如何解决的,是和别人解决的还是自
己解决的?你达到你作决定时期望的目标了没,有什么收获。
原创粉丝点击