您的位置:首页 > 其它

微软2012年实习生录取笔试题(及答…

2013-06-09 19:07 309 查看
(C)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

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

哪个同步机制(s)是/是用来避免操作系统中的进程/线程的竞态条件?

竞态条件即是同步问题

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

A、互斥信号量 B邮箱
, C信号
,D,本地过程调用

(AC)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

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

可先将二进制数字转换为十进制进行运算,算的结果为:5183,将结果装换为十六进制,则5183的十六制最低位为15
,故结果为A

A、0001010000111111

B、0101011101110011

C、0011010000110101

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

void
main()

{

int i
= 11;

int
const *p = &i;

p++;

printf("%d", *p);

}

产生的应该是i的地址,所以为一个垃圾值

用codeblock运行后显示结果为:

2686748

Process returned 0
(0x0) execution time : 0.204
s

Press any key to continue.

(A)
11 (B) 12 (C) Garbage value (D) Compile error (E) None of
above

(ABC?)6. Which of following C++ code is correct?

(A)
int f()

{

int
*a = new int(3);

return *a;

}

(B)
int *f()

{

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

return a;

}

(C)
vector f()

{

vector v(3);

return v;

}

(D)
void f(int *ret)

{

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

ret =
a;

return;

}

(D)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?

将数字旋转180度,和回文数稍有不同,应该是一简单题。

(A)
60918 (B) 91086 (C) 18609 (D) 10968 (E) 86901

(ACD)8. Which of the following statements are true?

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

由前、后序遍历序列数可知根节点,故中序和前序可以确定一棵二叉树

同理,B错

(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 Quicksort.

时间复杂度比较:

选择排序(蛮力法):O(n2)

冒泡排序(蛮力法):O(n2)

(改进的冒泡法其最坏情况是O(n2),最好情况是O(n))

归并排序:O(n log2n)

快速排序:O(n log2n)

插入排序:O(n2)

堆排序:O(n log2n)

若对于一个几乎排好序的序列,插入排序的最好情况为O(n),而快速排序为O(n log2n),故C对;

(D)
Suppose T(n) is the runtime of resolving a problem with n elements,
T(n) = Θ(1) if n = 1; T(n) = 2T(n/2) + Θ(n) if > 1;
so T(n) is Θ(n log n).

(E)
None of the above.

(BD(AC?))9. Which of the following statements are true?

(A)
Insertion sort and bubble sort are not effcient for large data
sets.

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





快速排序最差为:O(n2)

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

(D)
Heap sort uses two heap
operations: insertion androot
deletion.

堆排序用到两种堆操作:插入和根移除(√?)

(E)
None of above.

(A?)10. Assume both x and y are integers, which one of the
followings returns the minimum of the two integers?

^
按位异或
~
按位取反

如果x
< y:A为0;如果x > y : A为(x ^ y)

B、C、D为(x ^ y)

(A)
y ^ ((x ^ y) & ~(x < y))

(B)
y ^(x ^ y)

(C)
x ^ (x ^ y)

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

(E)
None of the above

(BCD)11. The Orchid Pavilion
(兰亭集序) is well known as the top of "行书" in history of Chinese literature. The most fascinating
sentence "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.

兰亭集序有361个中文字符(含标点),请问存储在文本文件中的时候,文件大小可能是多大?

(A)
722字节
UTF-16
(这个不对,因为UTF-16有Big Endian和Little Endian两种,必须要加BOM)

(B)
724字节
UTF-16
(这个是对的,UTF-16两字节表示一个汉字,外加一个BOM两字节)

(C)
1083字节
UTF-8
(这个是对的,UTF-8通常三字节一个汉字,选用不加BOM的方式)

(D)
1086字节
UTF-8
(这个是对的,UTF-8通常三字节一个汉字,选用加BOM的方式)

(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 the above

(BC)12. Fill the blanks inside class definition

class Test

{

public:

____
int a;

____
int b;

public:

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

};

int
Test::b;

int
_tmain(int argc, __TCHAR *argv[])

{

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

}

Running result: 0 20 1 20

b
肯定是静态的

(A)
static/const

(B) const/static

(C) --/static

(D)
const static/static

(E)
None of the above

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

M阶B树只能在叶子结点存储数据,其他结点的孩子个数必须在[ceiling(M/2), M]之间,根节点要么是叶子结点,要么至少有两个孩子。

根据该定义,如果3阶B树有2048个元素,那高度最大时每个结点都取孩子个数下限(2),高度为12(即log(2048)+1)。

然后去掉一个叶子结点,则从叶子向根一路发生结点合并,一个2孩子结点和一个1孩子结点合并成为一个3孩子结点。

这不是高潮,高潮是,根节点的两个孩子也发生了结点合并,变成了一个结点,根不再满足B树的要求,被删除,其唯一的孩子成为了新的根。

于是,树的高度变为了11

(A)
11 (B) 12 (C) 13 (D) 14

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

在c++中,下列哪个关键字(s)既可用于表示变量,又可表示一个函数?

(A)
static (B) virtual (C) extern (D) inline (E) const

(D)15. What is the result of the following program?

char* f(char *str, char ch)

{

char
*it1 = str;

char
*it2 = str;

while (*it2 != '\0') {

while (*it2 == ch) {

it2++;

}

*it1++ = *it2++;

}

return str;

}

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

{

char
*a = new char[10];

strcpy(a, "abcdcccd");

cout
<< f(a, 'c');

}

(A)
abdcccd (B) abdd (C) abcc (D) abddcccd (E) Access
Violation

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

考虑以下定义的递归函数,
power,将执行求幂;

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

}

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

A、对数的 B线性的
C二次的 D指数的

(B)17. Assume a full deck of cards has 52 cards, 2 black 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's 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

(D)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
number we may get? Suppose n is 2, the output sequence may be 1, 2
or 2, 1, so we 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 the above

(C)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

(E)20. What is the output of the following piece of C++
code?

#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->c
<< " ";

curr
= curr->next;

}

}

void
_tmain(void)

{

Item
*x,

d =
{'d', NULL},

c =
{'c', &d},

b =
{'b', &c},

a =
{'a', &b};

x =
Routine1(&a);

Routine2(x);

}

(A)
cbad (B) badc (C) dbca (D) abcd (E) dcba
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: