2012微软实习笔试题及参考答案

试题转自deit_aaron,答案是自己做的,欢迎指正~

In the following,at least one correct answer to each question 

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

Answer:C

2. Which synchronization mechanism(s) is/are used to avoid race conditions among processed/threads in operating systems?

A. Mutex

B. Mailbox

C.Semaphore

D. Local procedure call

Answer:AC

四种进程同步的方法(Mailbox只能通信,不能同步?):

1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。

2、互斥量:为协调共同对一个共享资源的单独访问而设计的。

3、信号量:为控制一个具有有限数量用户资源而设计。

4、事 件:用来通知线程有一些事件已发生,从而启动后继任务的开始。


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 sequences 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

Answer:AC

4. What is the result of binary number 01011001 after multiplying by0111001 and adding1101110?

A. 0001010000111111

B. 0101011101110011

C. 0011010000110101

Answer:A

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

}

A. 11

B. 12

C. Garbage value

D. Compiler error

E.  None of above

Answer:C

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<int> f()

                {

                          vector<int> v(3);

                          return v;

                }

D.            void f(int *ret)

                 {

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

                           ret = a;

                          return;

                 }

 Answer:C

其它会有野指针,导致内存泄露

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

A. 60918

B. 91086

C.18609

D.10968

E. 86901

Answer:D

8. Which of the following statements are ture?

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

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(n*logn).

E. None of above.

Answer:ACD

9. Which of the following statements are true?

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

B. Quick 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 operation is 6.

D. Heap sort uses two heap operations: insertion and root deletion.

E. None of above.

Answer:ABD

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

A. y^((x^y)&-(x<y)).

B. y^(x^y).

C. x^(x^y)

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

E. None of above

Answer:A

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 charaters written to a text file ,please select the possible 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

Answer:BCD

UTF-16两字节表示一个汉字,有Big Endian和Little Endian两种,必须要加BOM两字节。UTF-8通常三字节一个汉字,有加BOM和不加BOM两种方式。

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

           return 0;

}

Running result:  0   20   1   20

A. static/const

B. const/static

C. --/static

D.const static/static

E. None of the above

Answer:BC

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

Answer:A

定理9.1 若n≥1,m≥3,则对任意一棵具有n个关键字的m阶B-树,其树高h至多为:
        logt((n+1)/2)+1。
这里t是每个(除根外)内部结点的最小度数,即

        

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

Answer:ACE

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

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

}

A. abdcccd

B. abdd

C. abcc

D. abddcccd

E. Access violation

Answer:D

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

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

Answer:A

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 half deck(with 1 red suit and a black suit), what's the possiblility 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

Answer:B

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 number we may get? Suppose n is 2,the output sequence may 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

Answer:C 

卡特兰数

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

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

Considering an array with N element ,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

Answer:C

20.What is the output of the follow piece of C++ code?

#include <iostream>

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. c b a d         B. b a d c         C. d b c a         D. a b c d      E. d c b a

Answer:E


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是几道前端面试笔试题参考答案: 1. 请简述盒模型,并说明 box-sizing 属性的作用。 盒模型分为标准盒模型和怪异盒模型,标准盒模型的宽度(width)和高度(height)只包括内容(content),而怪异盒模型的宽度(width)和高度(height)包括了内容(content)、内边距(padding)和边框(border)。 box-sizing 属性可以控制盒模型的类型,有两个值:content-box 和 border-box。默认值为 content-box,表示使用标准盒模型;而 border-box 表示使用怪异盒模型,即宽度(width)和高度(height)包括了内容、内边距和边框。 2. 请简述 CSS 中的 BEM 命名规范。 BEM 是一种 CSS 命名规范,全称为 Block Element Modifier。它的原理是将页面中的元素划分为块(Block)、元素(Element)和修饰符(Modifier)三个部分,并使用连字符(-)来连接它们的名称,从而形成类名。例如: ``` .block {} .block__element {} .block--modifier {} ``` 其中,block 表示块,element 表示元素,modifier 表示修饰符。块是页面上的独立部分,元素是块的组成部分,修饰符是用来改变块和元素的外观和行为的。 BEM 命名规范的优点是可读性好、易于维护和扩展、语义化明确,能够有效地减少样式冲突。 3. 请简述 JavaScript 中的闭包,并说明闭包的作用。 闭包是指函数与其相关的引用环境组合而成的实体。在 JavaScript 中,每次调用函数都会创建一个新的执行环境,当函数执行完毕后,该执行环境会被销毁。但是,如果函数返回了一个内部函数,并且该内部函数引用了外部函数的变量,则该内部函数就会形成一个闭包,保留了外部函数的执行环境,不会被销毁。 闭包的作用是可以访问外部函数中的变量和函数,并且可以将其保存下来,供以后使用。闭包通常用来实现模块化、封装变量、缓存数据等功能。但是,过多地使用闭包也会导致内存泄漏等问题,需要谨慎使用。 以上是几道前端面试笔试题参考答案,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值