微软面试试题

Part I.选择题:(70分钟)
1.求函数返回值,输入x=9999;
int func(x)
{
    int countx = 0;
    while(x)
    {
          countx ++;
          x = x&(x-1);
     }
    return countx;
}

2.为什么返回局部变量的引用不好?
a,b,c,d不记得了,大概和内存,返回值等等有关。

3.Stack R,from the top to bottom:{2,3,4,5,6},逐个取出放入Queue Q ,再从Q中逐个取出放入R中,问现在

从上到下R中元素的排列?

4.在你自己定义的类中有什么是CLASSVIEW不会为你做的:
(a) 析构器。      (b)拷贝构造函数      (c)构造函数 (不记得有没有这一项了) (d)(不记得了)

5.写出程序的结果:___________  __________________
int funa(int *a)
{
   a[0] ++;
}

int funb(int b[])
{
   b[1] += 5;
}

main()
{
   int a[5] = {2,3,4,5,6};
   int b[5] = {2,3,4,5,6};
   int *p;
   p = &a[0];
   (*p)++;
   funb(p);
   for(int i = 0; i <5; i++)
   printf("%d,",a[i]);
   p = &b[1];
   funa(p);//(啊,现在写的时候才发现做错了,传的是b[1]的地址;只记得传地址给指针了,考的时候以为  

         //传的是b.主要是被第一次调用funb弄晕了~~呵呵)
   funb(p);
   for(i = 0; i < 5; i++)
   printf("%d,",b[i]);
}

18.一道智力题或者说逻辑题,好多英文单词不认识,都没弄懂意思,所以也没做。有记得的写出来吧,最好翻译过来,我还打算做一下呢。虽然很有可能做不出。

有一道好像是说编译器可以修改type error,的好处或不好。
有一道是什么regular language和 text free language比较?(有没有人给我解释一下这两个是什么东东?)
有一道是在编写代码是查找错误好还是用testing找好?

其他的都不记得了。

Part II 编程(40分钟)
1. 把一段汇编语言的程序写成一个C语言函数,不能有go to 和指针。因为那段汇编我没看懂,所以也记不得了。那个汇编是我们微原学的汇编,是另一个,不过它有解释关于它的语句命令。

2.实现以下程序,以方便binary search.
.要有处理错误语句
.队列的分配的大小是固定的MAX_LEN,由第二个参数输入
.不能复制队列
insert (int *arr,           //队列
        size_l len,          // 队列大小
        size_l count,        //队列元素的数目
        int varl             //要处理的数据
)返回插入数据的索引
remove(int *arr,size_l len,size_l count,int varl)返回删除元素的索引
search(int *arr,size_l len,size_l count,int varl)返回搜索道元素的索引

Part III Design(20分钟)
1.如果给你分配一个任务,做一个新版本的IE浏览器的一个功能,可能是搜索功能、用户界面,你将如何design,development,test
2.不记得

Part IV Testing(30分钟)
1。给你一个函数,你如何测试它,函数是strcmp(char* str1,char* str2)
2.给你一个DVD Play,你如何测试它?如果测有只有一定的时间,你首先测试哪一步?为什么?

Part V. Writing(20分钟)
在过去的这些年,你遇到了哪一个最大的困难,你是如何解决它的?你是单独做的还是和别人一起做的决定?为什么做这个决定?现在the output如何?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值