微软 2021 技术面试题

小编:管理员 1306阅读 2021.10.09

第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 的好处或不好。



第12题:

一个线性车库,5 排5 辆车,一车最多坐两人.

6 个人.Tom,Jack, Gawen, Laurie, Mark, Paul.

.Mark 独享车且紧跟空车后

.Tom 不跟Gawen 或Paul 坐一辆车.

.Laurie 跟别人共享车.

.Gawen 在第三排或第四排.

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

问车序.



第13题:

程序设计部分.

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)

要求返回删除的元素值

出错处理




第14题:

测试部分.

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

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

3.给你一个字符比较函数strCmp(const char* string1, const char* string2)以及其返回值表明的

意义,(>0, ==0, <0),设计测试case

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

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

问的是你在过去一年里做出过什么样的重要决定,你为什么做出这样的决定,这个决定对你的影响,

你达到你作决定时期望的目标了没.有什么收获.



关联标签: