微軟校園招聘筆試題

時間:2018-12-31 12:00:00 資料大全 我要投稿

微軟校園招聘筆試題

  1、Suppose that a selection sort of 80 items has completed 32 iterations of the main loop. How many items are now guaranteed to be in their final spot (never to be moved again)?

微軟校園招聘筆試題

  A、16 B、31 C、32 D、39 E、40

  2、Which synchronization mechanism(s) is/are used to avoid race conditions among processes/threads in operating system?

  A、Mutex B、Mailbox C、Semaphore D、Local procedure call

  3、There is a sequence of n numbers 1,2,3,...,n and a stack which can keep m numbers at most. Push the n numbers into the stack following the sequence and pop out randomly . Suppose n is 2 and m is 3,the output sequence may be 1,2 or 2,1,so we get 2 different sequences . Suppose n is 7,and m is 5,please choose the output sequence of the stack.

  A、1,2,3,4,5,6,7

  B、7,6,5,4,3,2,1

  C、5,6,4,3,7,2,1

  D、1,7,6,5,4,3,2

  E、3,2,1,7,5,6,4

  4、Which is the result of binary number 01011001 after multiplying by 0111001 and adding 1101110?

  A、0001010000111111

  B、0101011101110011

  C、0011010000110101

  轉(zhuǎn)化為10進制操作以后,再轉(zhuǎn)化為二進制就可以了,

微軟校園招聘筆試題

。

  5、What is output if you compile and execute the following c code?

  [cpp] view plaincopyprint?void main()

  {

  int i = 11;

  int const *p = &i;

  p++;

  printf("%d",*p);

  }

  void main()

  {

  int i = 11;

  int const *p = &i;

  p++;

  printf("%d",*p);

  }A、11

  B、12

  C、Garbage value

  D、Compile error

  E、None of above

  6、Which of following C++ code is correct ? C

  A、

  [cpp] view plaincopyprint?int f()

  {

  int *a = new int(3);

  return *a;

  }

  int f()

  {

  int *a = new int(3);

  return *a;

  }B、[cpp] view plaincopyprint?int *f()

  {

  int a[3] = {1,2,3};

  return a;

  }

  int *f()

  {

  int a[3] = {1,2,3};

  return a;

  }C、[cpp] view plaincopyprint?vector f()

  {

  vector v(3);

  return v;

  }

  vector f()

  {

  vector v(3);

  return v;

  }D、[cpp] view plaincopyprint?void f(int *ret)

  {

  int a[3] = {1,2,3};

  ret = a;

  return ;

  }

  void f(int *ret)

  {

  int a[3] = {1,2,3};

  ret = a;

  return ;

  }E、None of above

  7、Given that the 180-degree rotated image of a 5-digit number is another 5-digit number and the difference between the numbers is 78633, what is the original 5-digit number?

  A、60918 B、91086 C、18609 D、10968 E、86901

  8、Which of the following statements are true

  A、We can create a binary tree from given inorder and preorder traversal sequences.

  B、We can create a binary tree from given preorder and postorder traversal sequences.

  C、For an almost sorted array,Insertion sort can be more effective than Quciksort.

  D、Suppose T(n) is the runtime of resolving a problem with n elements, T(n)=O(1) if n=1;

  T(n)=2*T(n/2)+O(n) if n>1; so T(n) is O(nlgn)

  E、None of above

  9、Which of the following statements are true?

  A、Insertion sort and bubble sort are not efficient for large data sets.

  B、Qucik sort makes O(n^2) comparisons in the worst case.

  C、There is an array :7,6,5,4,3,2,1. If using selection sort (ascending),the number of swap operations is 6

  D、Heap sort uses two heap operations:insertion and root deletion (插入、堆調(diào)整)

  E、None of above

  10、Assume both x and y are integers,which one of the followings returns the minimum of the two integers?

  A、y^((x^y) & -(x

  B、y^(x^y)

  C、x^(x^y)

  D、(x^y)^(y^x)

  E、None of above

  x

  11、The Orchid Pavilion(蘭亭集序) is well known as the top of “行書”in history of Chinese literature. The most fascinating sentence is "Well I know it is a lie to say that life and death is the same thing, and that longevity and early death make no difference Alas!"(固知一死生為虛誕,齊彭殤為妄作).By counting the characters of the whole content (in Chinese version),the result should be 391(including punctuation). For these characters written to a text file,please select the possible file size without any data corrupt.

  A、782 bytes in UTF-16 encoding

  B、784 bytes in UTF-16 encoding

  C、1173 bytes in UTF-8 encoding

  D、1176 bytes in UTF-8 encoding

  E、None of above

  12、Fill the blanks inside class definition

  [cpp] view plaincopyprint?class Test

  {

  public:

  ____ int a;

  ____ int b;

  public:

  Test::Test(int _a , int _b) : a( _a )

  {

  b = _b;

  }

  };

  int Test::b;

  int main(void)

  {

  Test t1(0 , 0) , t2(1 , 1);

  t1.b = 10;

  t2.b = 20;

  printf("%u %u %u %u",t1.a , t1.b , t2.a , t2.b);

  return 0;

  }

  class Test

  {

  public:

  ____ int a;

  ____ int b;

  public:

  Test::Test(int _a , int _b) : a( _a )

  {

  b = _b;

  }

  };

  int Test::b;

  int main(void)

  {

  Test t1(0 , 0) , t2(1 , 1);

  t1.b = 10;

  t2.b = 20;

  printf("%u %u %u %u",t1.a , t1.b , t2.a , t2.b);

  return 0;

  } Running result : 0 20 1 20

  A、static/const

  B、const/static

  C、--/static

  D、conststatic/static

  E、None of above

  13、A 3-order B-tree has 2047 key words,what is the maximum height of the tree?

  A、11 B、12 C、13 D、14

  解析:m階B-樹的根節(jié)點至少有兩棵子樹,其他除根之外的所有非終端節(jié)點至少含有m/2(向上取整)棵子樹,即至少含有m/2-1個關(guān)鍵字。根據(jù)題意,3階的B-樹若想要達到最大的高度,那么每個節(jié)點含有一個關(guān)鍵字,即每個節(jié)點含有2棵子樹,也就是所謂的完全二叉樹了,這樣達到的高度是最大的。即含有2047個關(guān)鍵字的完全二叉樹的高度是多少,這也是為什么這種題只出3階的原因吧,就是為了轉(zhuǎn)化成求完全二叉樹的深度。很明顯求得高度是11,但是由于B-樹還有一層所謂的`葉子節(jié)點,可以看作是外部結(jié)點或查找失敗的結(jié)點,實際上這些結(jié)點不存在的,指向這些結(jié)點的指針為空。所以不考慮葉子節(jié)點信息的時候,最大高度是11,考慮葉子節(jié)點信息的時候,最大高度就是12了。

  14、In C++,which of the following keyword(s)can be used on both a variable and a function?

  A、static B、virtual C、extern D、inline E、const

  15、What is the result of the following program?

  [cpp] view plaincopyprint?char *f(char *str , char ch)

  {

  char *it1 = str;

  char *it2 = str;

  while(*it2 != '\0')

  {

  while(*it2 == ch)

  {

  it2++;

  }

  *it1++ = *it2++;

  }

  return str;

  }

  int main(void)

  {

  char *a = new char[10];

  strcpy(a , "abcdcccd");

  cout<

  return 0;

  }

  char *f(char *str , char ch)

  {

  char *it1 = str;

  char *it2 = str;

  while(*it2 != '\0')

  {

  while(*it2 == ch)

  {

  it2++;

  }

  *it1++ = *it2++;

  }

  return str;

  }

  int main(void)

  {

  char *a = new char[10];

  strcpy(a , "abcdcccd");

  cout<

  return 0;

  }A、abdcccd

  B、abdd

  C、abcc

  D、abddcccd

  E、Access violation

  16、Consider the following definition of a recursive function,power,that will perform exponentiation.

  [cpp] view plaincopyprint?int power(int b , int e)

  {

  if(e == 0)

  return 1;

  if(e % 2 == 0)

  return power(b*b , e/2);

  else

  return b * power(b*b , e/2);

  }

  int power(int b , int e)

  {

  if(e == 0)

  return 1;

  if(e % 2 == 0)

  return power(b*b , e/2);

  else

  return b * power(b*b , e/2);

  }Asymptotically(漸進地) in terms of the exponent e,the number of calls to power that occur as a result of the call power(b,e) is

  A、logarithmic

  B、linear

  C、quadratic

  D、exponential

  17、Assume a full deck of cards has 52 cards,2 blacks suits (spade and club) and 2 red suits(diamond and heart). If you are given a full deck,and a half deck(with 1 red suit and 1 black suit),what is the possibility for each one getting 2 red cards if taking 2 cards?

  A、1/2 1/2

  B、25/102 12/50

  C、50/51 24/25

  D、25/51 12/25

  E、25/51 1/2

  18、There is a stack and a sequence of n numbers(i.e. 1,2,3,...,n), Push the n numbers into the stack following the sequence and pop out randomly . How many different sequences of the n numbers we may get? Suppose n is 2 , the output sequence may 1,2 or 2,1, so wo get 2 different sequences .

  A、C_2n^n

  B、C_2n^n - C_2n^(n+1)

  C、((2n)!)/(n+1)n!n!

  D、n!

  E、None of above

  19、Longest Increasing Subsequence(LIS) means a sequence containing some elements in another sequence by the same order, and the values of elements keeps increasing.

  For example, LIS of {2,1,4,2,3,7,4,6} is {1,2,3,4,6}, and its LIS length is 5.

  Considering an array with N elements , what is the lowest time and space complexity to get the length of LIS?

  A、Time : N^2 , Space : N^2

  B、Time : N^2 , Space : N

  C、Time : NlogN , Space : N

  D、Time : N , Space : N

  E、Time : N , Space : C

  20、What is the output of the following piece of C++ code ?

  [cpp] view plaincopyprint?#include

  using namespace std;

  struct Item

  {

  char c;

  Item *next;

  };

  Item *Routine1(Item *x)

  {

  Item *prev = NULL,

  *curr = x;

  while(curr)

  {

  Item *next = curr->next;

  curr->next = prev;

  prev = curr;

  curr = next;

  }

  return prev;

  }

  void Routine2(Item *x)

  {

  Item *curr = x;

  while(curr)

  {

  cout<

  curr = curr->next;

  }

  }

  int main(void)

  {

  Item *x,

  d = {'d' , NULL},

  c = {'c' , &d},

  b = {'b' , &c},

  a = {'a' , &b};

  x = Routine1( &a );

  Routine2( x );

  return 0;

  }

  #include

  using namespace std;

  struct Item

  {

  char c;

  Item *next;

  };

  Item *Routine1(Item *x)

  {

  Item *prev = NULL,

  *curr = x;

  while(curr)

  {

  Item *next = curr->next;

  curr->next = prev;

  prev = curr;

  curr = next;

  }

  return prev;

  }

  void Routine2(Item *x)

  {

  Item *curr = x;

  while(curr)

  {

  cout<

  curr = curr->next;

  }

  }

  int main(void)

  {

  Item *x,

  d = {'d' , NULL},

  c = {'c' , &d},

  b = {'b' , &c},

  a = {'a' , &b};

  x = Routine1( &a );

  Routine2( x );

  return 0;

  }

  A、 c b a d

  B、 b a d c

  C、 d b c a

  D、 a b c d

  E、 d c b a

  微軟2012年9月22日校園招聘筆試

  1、數(shù)據(jù)庫

  基于某個條件選出一個訂單列表,考的是最基本的數(shù)據(jù)庫語言select * from * where *

  2、不能用于進程間通信的是

  A、Named event

  B、Named pipe

  C、Critical section

  D、Shared memory

  3、shallow copying (淺拷貝)的特征

  英文太爛不知道shallow copying怎么翻譯不敢選

  4、 Functional programming(函數(shù)式編程)的特點

  完全不了解functional programing

  考了”沒有副作用”,“不修改狀態(tài)”,“引用透明”引用透明的概念類似于可重入

  5、以下算法用到貪婪算法的是

  A、Dijkstra

  B、Prim

  C、Kruskal

  D、Floyd- Warshall

  E、KMP string match

  6、1,2,3,…1000 一共出現(xiàn)了多少個0

  A、189

  B、191

  C、193

  D、195

  算出來是192個可是沒有這個答案估計題目出錯了,

資料共享平臺

微軟校園招聘筆試題》(http://clearvueentertainment.com)。

  7、T(x)=1 (x<=1), T(n)=25*T(n/5)+n^2 求T(n)的時間復(fù)雜度

  A、O(n*log(n))

  B、O(log(n))

  C、O(n^2*log(n))

  D、O(n^3*log(n))

  T(n)=25*(25*T(n/25)+(n/5)^2)+n^2=25^2*T(n/(5^2))+2*n^2=25^(log(n)/log5)+(log(n)/log5)*n^2=n^2+n^2*log(n) =O(n^2*log(n))

  8、下列屬于設(shè)計模式中 ”creational pattern” (創(chuàng)建型)的是?

  A、Facade

  B、Singleton

  C、Bridge

  D、Composite

  Facade composite bridge 都屬于Structural(結(jié)構(gòu)型)

  9、建立一個TCP連接的過程?

  三次握手http://baike.baidu.com/view/1003841.htm

  答案中好像沒有SYN,SYN+ACK,ACK,于是我就選了 E、None of above

  10、二叉樹的pre-order traversal為abcdefg,則它的in-order traversal可能是?

  A、abcdefg

  B、gfedcba

  C、efgdcba

  D、bceadfg

  E、bcdaefg

  以前序遍歷abc為例,只有三個節(jié)點,中序遍歷可能是cba, bca, bac, abc, acb

  11、15個球放在4個袋子中,每個袋子至少有一個球且每個袋子中球的數(shù)目不同,總共有多少種放法?

  A、4

  B、5

  C、6

  D、7

  E、None of above

  不知道除了枚舉有沒有別的更好的辦法

  12、給了4個函數(shù),可以看出其中第一個為選擇排序,第二個為冒泡排序第三個感覺代碼本身就有些問題第四個為快速排序。問哪一個排序能將數(shù)組a={(3,4),(6,5),(2,7),(3,1),(1,2) }變?yōu)閧(1,2), ,(2,7), (3,1),( 3,4),(6,5)}

  只比較第一個元素。

  Stuct A{

  Int key1;

  Int key2;

  };

  比較函數(shù)為 int cmp(A x, A y) {return x.key1-y.key1;)

  選擇排序, 此題代碼是選擇的最小出列。選出最小的與前面的交換,其條件是cmp<0, 顯然第一趟(3,4)與(1,2)交換后到了(3,1)的后面然后是(6,5)與(2,7)交換,其條件是cmp<0,所以(6,5)與(3,1 )交換,最后的輸出結(jié)果滿足題目要求

  冒泡排序 其條件是cmp<0,顯然(3,4)不可能會與(3,1)交換,因此不符合題目要求

  快速排序是不穩(wěn)定的排序,不能保證誰在誰前面,快排的條件是cmp<=0且其哨兵都是選擇序列中的第一個作為哨兵,結(jié)合本題所給的數(shù)組a,結(jié)果是與題目相符。

  13、繼承、虛函數(shù)

  下面程序輸出結(jié)果

  [cpp] view plaincopyprint?#include

  using namespace std;

  class Base

  {

  public:

  char Value() { return 'A';}

  virtual char VirtualValue() { return 'X';}

  };

  class Derived:public Base

  {

  public:

  char Value(){return'U';}

  };

  class VirtualDerived:virtualpublic Base

  {

  public:

  char Value() { return 'Z';}

  char VirtualValue() { return 'V';}

  };

  void main()

  {

  Base *p1=new Derived();

  Base *p2=new VirtualDerived();

  cout<

  p1->VirtualValue()<<" "<<

  p2->Value()<<" "<<

  p2->VirtualValue()<

  }

  #include

  using namespace std;

  class Base

  {

  public:

  char Value() { return 'A';}

  virtual char VirtualValue() { return 'X';}

  };

  class Derived:public Base

  {

  public:

  char Value(){return'U';}

  };

  class VirtualDerived:virtualpublic Base

  {

  public:

  char Value() { return 'Z';}

  char VirtualValue() { return 'V';}

  };

  void main()

  {

  Base *p1=new Derived();

  Base *p2=new VirtualDerived();

  cout<

  p1->VirtualValue()<<" "<<

  p2->Value()<<" "<<

  p2->VirtualValue()<

  }輸出:AXAV

  14、兩個線程thread1: x=1;r1=y; thread2:y=1;r2=x; x和y初始值為0,兩者皆為全局變量,程序運行過后r1和r2的值可能是

  A、r1=1,r2=1

  B、r1=1,r2=0

  C、r1=0,r2=1

  D、r1=0,r2=0

  15、A,B,C,D都為32位整型,基于以下給定的C,D能否得出A,B

  A、C=A+B,D=A-B

  B、C=A+2*B,D=A+B

  C、C=A+B,D=B

  D、C=A-B,D=(A+B)>>1

  E、C=A*B,D=A/B

  該題主要是考慮越界問題

  對于A選項假設(shè)A>0,B>0;C可能越界使得C=A+B-2^32舉個反例:A=B=2^31-1 C=-2,D=0;

  A=B=-1,C=-2,D=0

  對于C選項不管C是否越界總能得到A=C-D, B=D

  對于B選項我們可以考慮Q=A+B, C=Q+B ,D=Q跟C的那個一樣,就能求出Q與B Q=A+B,B又已知A可求

  D選項:A=B=-1 A=B=2^31-1

  E選項:A=B=2^15, A=B=2^31

  16、BNF

  很簡單的一個題目

  17、http協(xié)議

  18、不屬于棧的基本操作

  A、pop

  B、push

  C、if empty

  D、sort

  19.一顆完全二叉樹有n個節(jié)點,求深度

  A、lg(n)/lg2

  B、1+lg(n)/lg2

【微軟校園招聘筆試題】相關(guān)文章:

1.微軟校園招聘筆試試題

2.建行校園招聘筆經(jīng)

3.工行校園招聘筆經(jīng)

4.微軟暑期實習(xí)招聘筆試題目

5.微軟筆經(jīng)

6.維達國際校園招聘筆經(jīng)

7.微軟招聘心理智力測試題

8.著名企業(yè)招聘典型試題精選-微軟