46家中外知名企业面试题目-微软(3)

Category : 资源共享 / Tags : , / Date : 2005.09.19 / /

  {
   cBuffer buffer1;
   buffer1.SaveString(“Microsoft”);
   printf(buffer1.GetBuffer());
   }
  }
  找出Allocate, SaveString, main的错误。
  2.打印“Welcome MSR Asia”
  #include
  #include
  char * GetName (void)
  {
   //To return “MSR Asia” String
   char name[]=“MSR Asia”;
   return name;
  }
  void main(int argc, char* argv[])
  {
   char name[32];
   //Fill in zeros into name
   for(int i=0;i<=32;i++)
   {
   name[1]=‘‘;
   }
   //copy “Welcome” to name
   name=“Welcome”;
   //Append a blank char
   name[8]=”;
   //Append string to name
   strcat(name,GetName());
   //print out
   printf(name);
  }
  找出程序中的错误。
  3.#include
  class A
  {
  public:
   void FuncA()
   {
   printf(“FuncA calledn”);
   }
   virtual void FuncB()
   {
   printf(“FuncB calledn”);
   }
  };
  class B: public A
  {
  public:
   void FuncA()
   {
   A::FuncA();
   printf(“FuncAB calledn”);
   }
   virtual void FuncB()
   {
   printf(“FuncBB calledn”);
   }
  };
  void main(void)
  {
   B b;
   A *pa;
   pa=&b;
   A *pa2=new A;
   b.FuncA();
   b.FuncB();
   pa->FuncA();
   pa->FuncB();
   pa2->FuncA();
   pa2->FuncB();
   delete pa2;
  }
  What is the output of the above program?
  4.#include
  #include
  int FindSubString(char* pch)
  {
   int count=0;
   char* p1=pch;
   while(*p1!=‘’)
   {
   if(*p1==p1[1]-1)
   {
   p1++;
   count++;
   }
   else
   {
   break;
   }
   }
   int count2=count;
   while(*p1!=‘’)
   {
   if(*p1!==p1[1]+1)
   {
   p1++;
   count2–;
   }
   else
   {
   break;
   }
   if(count2==0)
   return count;
   return 0;
  }
  void ModifyString(char* pText)
  {
   char* p1=pText;
   char* p2=p1;
   while(*p1!=‘’)
   {
   int count=FindSubString(p1);
   if(count>0)
   {
   *p2++=*p1;
   sprintf(p2, “%I”, count);
   while(*p2!= ‘’)
   {
   p2++;
   }
   p1+=count+count+1;
   }
   else
   {
   *p2++=*p1++;
   }
   }
  }
  void main(void)
  {
   char text[32]=“XYBCDCBABABA”;
   ModifyString(text);
   printf(text);
  }
  In the main() function, after ModifyString(text) is called, what’s the value of ‘text’?
  微创笔试题目(微创,微软在中国的合资公司)
  1.上海的苏州河由于遭受多年的工业污染,一直是条臭水沟。上海市政府下了很大决心清理苏州河,你觉得需要几年能让河水变清?你的依据是什么?
  2.找出字符串A中包含的字符可以进行的所有不同组合。例如:abccd中,ab,ac,bc,cc,abd等都是可能的组合。(请用C/C++编程,不允许上机操作)
  3.请估算月球的体积。
  4.经常去的技术网站,请举例。
  5.对软件开发过程的理解。
  6.上海有多少外籍和港澳台人士?你的依据是什么?(不得引用政府和调研机构数据)
  7.字符串A是由n个小写英文字母(a ~ z)构成的,定义为char A[n]。你能用更少的空间表示这个字符串吗?请写出从char A[n]到你的新的储存格式的转换函数。(请用C/C++编程,不允许上机操作)
  8.哈希表和数组的定义,区别,优缺点。
  9.用递归实现菲波列数列。
  10.用dhtml写页面。
  11.一楼到十楼的每层电梯门口都放着一颗钻石,钻石大小不一。你乘坐电梯从一楼到十楼,每层楼电梯门都会打开一次,只能拿一次钻石,问怎样才能拿到最大的一颗?   (去年应聘到微创的S小姐面试遇到的就是这道智力题。她的回答是:选择前五层楼都不拿,观察各层钻石的大小,做到心中有数。后五层楼再选择,选择大小接近前五层楼出现过最大钻石大小的钻石。她至今也不知道这道题的准确答案,“也许就没有准确答案,就是考一下你的思路,”她如是说。)
  12.U2合唱团在17分钟内得赶到演唱会场,途中必需跨过一座桥,四个人从桥的同一端出发,你得帮助他们到达另一端,天色很暗,而他们只有一只手电筒。一次同时最多可以有两人一起过桥,而过桥的时候必须持有手电筒,所以就得有人把手电筒带来带去,来回桥两端。手电筒是不能用丢的方式来传递的。四个人的步行速度各不同,若两人同行则以较慢者的速度为准。Bono需花1分钟过桥,Edge需花2分钟过桥,Adam需花5分钟过桥,Larry需花10分钟过桥。他们要如何在17分钟内过桥呢?(有个同济的学生写文章说他当时在微软面试时就是碰到了这道题,最短只能做出在19分钟内过桥,微软的人对他讲这样的结果已经是不错的了!)
  13.烧一根不均匀的绳要用一个小时,如何用它来判断半个小时?(参考答案:两边一起烧)
  14.为什么下水道的盖子是圆的?(从复旦大学一位计算机系教授那里听来的答案:因为如果是方的、长方的或椭圆的,那无聊之徒拎起来它就可以直接扔进地下道啦!但圆形的盖子嘛,就可以避免这种情况了)
  15.有7克、2克砝码各一个,天平一只,如何只用这些物品三次将140克的盐分成50、90克各一份?



无觅相关文章插件,快速提升流量

Comments

There are no comments.

Leave a Reply

You must be logged in to post a comment.

传奇 似水流年 绽放 风筝 八月照相馆