微软实习生笔试题目

Choose部分是我自己做的答案,非标准答案.有些题目选项记不起来了,非常抱歉.

微软实习生笔试题目

1. Selection sort 80 items, after 32 iterations, how many positions of items are determined?

Choose:32。

2. Which is used in sync process//thread in operation system?

A. Mutex box phore l procedure call

Choose: AC

3. Size of a stack is 5, input is a sequence 1, 2, …, 7, which is possible output?

A. 1234567 B. 7654321 C.5643721 D. 1765432 E. 3217564

Choose: AC

4. 010111001 * 011001 + 1101110 = ?

A. 0001010000111111 B. 0101011101110011 C. 0011010000110101

Choose: A

5. What is the output of the follow code?

void main(int argc, char* argv[]) {

int i = 11;

int const *p = &i;

p++;

cout<<*p<

A. 11 B. 12 C. Garbage value D. Comipler error E. None of above

Choose: C

6. Which code is correct?

C. vector f() {

vector v(3);

return v;

}

E. None of above

Choose: C

7. Which number has difference 78633 after 180-degree rotation?

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

Choose: D

8 Which statement is true?

A. Inorder and preorder can determine a Binary tree

B. Postorder and preorder can determine a Binary tree

C. For almost sorted array, Insertion sort is more efficient than Quicksort

D. If T(n)=2T(n/2)+⊖(n), Then T(n)=⊖(nLogn)

E. none of above

Choose: ACD

9. Which statement is true?

A. Insertion and buble sort are not effient for large data sets

B. The complexity of Quick Sort is O(n2) in worst case

C. It is needed 6 swap operations to sort sequence 7,6,5,4,3,2,1(ascending) by Selection sort

D. Heap sort has two operations: Insertion and root deletion

E. None of above

No choose

12. The output of the following code is 0 20 1 20, what are the type of a and b?

class Test{

____ int a;

____ int b;

Test(int _a, int _b) {a = _a; b=_b;}

}

void main() {

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

t1.b = 10;

t2.b = 20;

cout<

}

A. static/const B. const/static C. __/static D. const static/static E. None of

above

Choose: C

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

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

no choose

14. Which can be used both to variable and function?

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

Choose: ACE

15. What is the output of the follow code?

char * f(char *str, char ch) {

char *it1 = str;

char *it2 = str;

while(*it2 != '') {

while(*it2 == ch)

{

it2++;

}

*it1++ = *it2++;

}

return str;

}

int main(int argc, char* argv[]) {

char *a = new char[10];

strcpy(a, "abcdcccd");

cout<

return 0;

}

A. abdcccd B. abdd C. abcc D. abddcccd E. Access violation

Choose: D

16. What is the complexity of the result call of power(b, e) in the follow code?

int power(int b, int e) {

if(e==0) return 1;

if(e%2 == 0) return power(b*b, e/2);

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

}

A. logarithmic B. linear C. quadratic D. exponentical

Choose: A

17. Take 2 cards from one full poker(52 cards, 26 red and 26 black) and half poker each, what is the probability of the event that two cards are both red?

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

Choose: B

18. How many kinds of output of stack with the input 1,2,…,n?

B. C_2n^n-C_2n^(n+1) C. ((2n)!)/(n+1)n!n! D. n! E. none

Choose: C

19. What is the minimum time and space complexity to compute the Largest Increased Subsequence(LIS) of array?

A. N^2,N^2 B. N^2,N C. NlogN,N D. N, N E. N,C

Choose: C

20. What is the output of the follow code?

struct Item{

char c;

Item *next;

};

Item* f1(Item* x){

Item *prev = NULL;

Item *curr = x;

while(curr) { Item *next = curr->next;

curr->next = prev;

prev = curr;

curr = next;

}

return prev;

}

void f2(Item *x){

while(x){

cout<c;

x = x->next;

}

}

int main(int argc, char* argv[]){

Item *x, d = {'d', NULL}, c = {'c', &d}, b = {'b', &c}, a = {'a', &b};

x = f1(&a);

f2(x);

return 0;

}

Choose: dcba