微软笔试题和面试题答案解析与答案

更新时间:2018-11-22 15:51作者:三水老师

      微软部分笔试题解析与答案,也许对你会有所启发

      1、求函数返回值,输入x=9999;

      int func(x)

      {

      int countx = 0;

      while(x)

      {

      countx ++;

      x = x&(x-1);

      }

      return countx;

      }

      【试题解析】

      解这道题的时候,如果拿出一个二进制数来分析就会容易的多了,x=x&(x-1)实际上就是把x的二进制形式的最后一个1变成0,x的二进制形式有多少个1循环就执行多少次。

      9999/256 = 39 余 15,把这两个数分别转化一下就很快了

      39 = 32 + 4 + 2 +1 = 00100111

      15 = 0F = 00001111

      所以 9999=0010011100001111,共有8个1,答案就是 8 了

      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)返回搜索道元素的索引

      【试题解析】

      略。数据结构书上都有的。

      3、堆栈R,从顶到底:{2,4,6,8,10},逐个取出放入队列Q中 ,再从Q中逐个取出放入R中,问现在堆栈R中从顶到底的顺序。

      【试题解析】

      这个也不用了吧,{10,8,6,4,2}

      4、写出程序的结果:___________

      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)++;

      funa(p);

      for(int i = 0; i<3; i++)

      printf("%d,",a);

      p = &b[1];

      funb(p);

      for(i = 0; i<3; i++)

      printf("%d,",b);

      }

      【题目解析】

      结果是:

      4,3,4,2,3,9

      (*p)++; 也就是a[0]++;

      funa(p);中的 a[0]++ 是将 main 中的数组 a[0]++,

      数组 a 中只有第一个元素加了两次 1 ,

      p = &b[1];把p指向了数组 b 的第二个元素

      funb(p);中的 b[1]+=5 是将 main 中的数组 b[2]+=5

      数组 b 中的第三个元素加了 5

      5、找出下面程序的 BUG

      int CopyStringAndCount(char * Str) ①

      {

      int nCount = 0;

      char * pBuffer; ②

      pBuffer = new char[MAX_PATH_LENGTH];

      ③

      ④

      strcpy(pBuffer, Str);

      for ( ; pBuffer⑤; pBuffer++ )

      if ( pBuffer⑥=='\' ) nCount ++;

      ⑦

      return nCount;

      }

      【题目解析】

      ① (const char * Str)

      如果在函数体内不需要改变字符串的内容,最好加上 const 以免误修改字符串内容

      ② char * pBuffer = NULL;

      指针声明的时候最好赋初值 NULL

      ③ if ( !pBuffer ) return -1;

      开辟空间之后没有检查是否成功,没有错误检查

      ④ if ( strlen(Str)>(MAX_PATH_LENGTH-1) ) return -2;

      没有检查新开辟的空间能否容纳传进来的字符串,否则有可能越界

      ⑤ *pBuffer

      题中的原意是当到字符串末尾的时候跳出循环,所以应该是取字符串的内容

      ⑥ 同⑤

      ⑦ delete pBuffer; pBuffer=NULL;

      没有释放新开辟的空间,会造成内存泄漏

      6、你觉得下一代浏览器应该添加什么功能?

      【题目解析】

      当时随便写的,比如安全性,搜索功能等。

    为您推荐

    2019年两会《政府工作报告》养老金新政策,要提高养老保障水平

    《关于2018年中央和地方预算执行情况与2019年中央和地方预算草案的报告》要求,提高养老保障水平。从2019年1月1日起,按平均约5%的幅度提高企业和机关事业单位退休人员基本养老金标准。

    2019-06-13 04:57

    如何在另类面试问题中胜出

    在面试中,有些考官会先提一个不甚友好的问题,或者劈头浇你一盆冷水,让你在委屈和激愤中露出本色。在他看来,击溃你的心理防线,才能筛选出有心理承受能力的智者,找到能面对压力的新鲜血液。要想在压力面试中胜出,只能学会绕开陷阱,奋战到底。

    2019-06-08 03:00

    面试紧张时应该怎么办

    面试是进入公职机关的最后一道主要的门槛,因此可以说每一位进入面试的人,心里就像绷住一根弦一样,也就是说每位考生,都会以高度的精神状态去抓住这次进入角色的机会。出现紧张、焦虑的心情也是不可避免的,只有认识了解,才能完全的克服。

    2019-06-08 02:58

    面对变故 学会自我解嘲

    面对降级、减薪、甚至解雇、离婚、丧子等变故,许多人反应过度,很长时间缓不过劲儿来。而有的人却能很快度过,重返正常的生活轨道。其决定因素是一种特殊的心理素质:心理复原力。有了它,人们不怕挫折;而缺少它,会特别害怕受伤害,不敢付出行动。

    2019-06-06 03:12

    办公室里该与不该谈论的话题

    办公室是一个充满原则、纪律,讲求策略的场合,更是一个充满利益冲突的是非之所。既如此,办公室里谈个人私事是否妥当呢?网上调查显示,尽管九成以上的人认为“办公室里隐私不宜说”,但是她/他们又同时承认有在办公室里谈论涉及私人感情、家庭关系、同事喜恶和上下级关系等隐私性内容的行为。

    2019-06-06 03:10

    面试自我介绍的几大原则

    应聘到外企或其他用人单位时,求职者往往最先被问及的问题就是“请先介绍介绍你自己”。这个问题看似简单,但求职者一定要慎重对待,它是你突出优势和特长,展现综合素质的好机会。回答得好,会给人留下良好的第一印象。

    2019-06-01 03:19

    外企面试必须要注意的五“必要”

    到外企面试前,仅仅准备好一份简历是不够的,还要提前做好面试前的“功课”,这样面试通过的几率就会大大增加。

    2019-06-01 03:16

    加载中...