2012微软暑期实习笔试

   试卷为英文, 题目形式为20个选择题,1-7难度为easy,打对3分,少选2分,空白0分,打错-2分;8-18,答对5分,少答3分,打错扣3分,空白0分,最后两题貌似答对8分,少答5分

1、对80个题目进行选择排序,在主循环32次迭代之后,能保证多少个元素是排好序的(never moved again)

A、31

B、32

C、39

D、40

E、以上都不是


2、以下哪些是同步机制是为了解决race condition(竞态条件)的机制在操作系统的进程中

A、mutex

B、mailbox

C、semaphore  信号量

D、local procedure call 本地过程调用


3、一个有序数列,1,2,....n,栈大小为m,如n=2,m=2,则可能的输出序列为1,2和2,1;则n=7,m=5时,以下哪些为可能输出序列?

选项太长


4、2个二进制数想乘再求和,具体数字肯定记不得了


5、以下程序输出:

[html]  view plain copy
  1. int x=11;  
  2. int const *p = &x;  
  3. p++;  
  4. printf("%d\n", *p);  

A、11

B、12

C、garbage num

D、compile error

E、none of above

6、以下代码正确的是

[html]  view plain copy
  1. int fun()  
  2. {  
  3.     int *a = new int(3);  
  4.     return *a;  
  5. }  
  6.   
  7. int* fun()  
  8. {  
  9.     int a[] = {1,2,3};  
  10.     return a ;  
  11. }  
  12.   
  13. int *fun()  
  14. {  
  15.     int a[] = {1,2,3};  
  16.     int *p = a;  
  17.     return p;  
  18. }  
  19.   
  20. int fun()  
  21. {  
  22.     vector<int> a;  
  23.     a.push_back(3);  
  24.     return a[0];  
  25. }  

大概记得是这个样子, 就是堆栈内存能不能返回的问题,vector那个貌似记错了


7、一张5位数保存的image,180度旋转后得到,不同数字为78933,则原数字为以下哪个?

选项肯定记不清,4个5位数


8、考虑以下递归函数power(int b, int e),考虑其时间复杂度

[html]  view plain copy
  1. int power(int b, int e)  
  2. {  
  3.     if (e == 0)  
  4.         return 1;  
  5.     else if (e%2 == 0)  
  6.         return b*power(b, e/2);  
  7.     else  
  8.         return power(b*b, e/2);  
  9. }  
A、log

B、sqare

C、linear

D、none of above


9、以下说法正确的是

A、根据中序和前序可以确定一个二叉树

B、根据前序和后续可以确定一个二叉树

C、D忘了


10、

[html]  view plain copy
  1. class CTest  
  2. {  
  3.   
  4. private:      
  5.     ___ int a;  
  6.     ___ int b;  
  7.   
  8. public:  
  9.     CTest(int input):b(input)  
  10.     {  
  11.     }  
  12.   
  13. };  
  14.   
  15. int CTest::a = 0;  

空格处填:

A、const/static

B、static/const

C、D忘了

主要是const和static的初始化方式


11、既可以修饰变量又可以修饰函数的关键词有

A、const 

B、virtual

C、extern

D、inline

E、static


12、以下程序的输出是什么

[html]  view plain copy
  1. char* fun(char* str, char c)  
  2. {  
  3.     char* s1 = str;  
  4.     char* s2 = str;  
  5.     while (*s2 != '\0')  
  6.     {  
  7.         if (*s2 == c)  
  8.             s2++;  
  9.         *s1++ = *s2++;  
  10.     }  
  11.     return str;  
  12. }  
  13.   
  14. int _tmain()  
  15. {   
  16.     char *str = "abcdcccd";  
  17.     cout << fun(str, 'c') << endl;  
  18.     return 0;  
  19. }  
A、abdd

B、abcdcccd

C、abddcccd

D、忘了

实际这段代码貌似记错了,因为编译不过,*s1和*s2都没申请空间,直接改*s1会提示access violation


13、以下说法正确的是

A、在大数据量情况下,插入和冒泡不高效

B、在数据接近排好的情况下,插入排序比快速排序快

C、一个复杂度

D、忘了


14、一个有2047个节点的3叉B树,高度最大为多少?

A、11

B、12

C、13

D、14


15、对于长n的序列有序输入栈,可能的输出有多少种?



16、


17、扑克牌52张,红色(方块和红桃),黑色(花和黑桃),两副牌,从中间拿2张,为红色的概率为:

A、1/2 , 1/2

B、1/52,1/103

C。。

D、。。。


18、兰亭集序,全文共391字,如果保存到text,那么可能的大小为:

A、782 字节,编码为UTF-16

B、784字节,UTF-16

C、1173字节,UTF-8

D、1179字节,UTF-8


19、LIS(longest increasing substring),比如对于序列2,0,5,1,3,4,的最长递增子串为0,1,3,4,,求最长递增子串的时间和空间复杂度为:

A、N^2, N

B、nlogn、N

C、N,N

D,N,C


20、链表逆序,代码太长,不写了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值