今天去南大参加了下微软暑期实习生的笔试,根据回忆记录下题目吧,根据自己翻译,有的也许翻译不准确
试卷为英文, 题目形式为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、semaphore
C、pipe
D、local call
3、一个有序数列,1,2,....n,栈大小为m,如n=2,m=2,则可能的输出序列为1,2和2,1;则n=7,m=5时,以下哪些为可能输出序列?
选项太长
4、2个二进制数想乘再求和,具体数字肯定记不得了
5、以下程序输出:
int x=11;
int const *p = &x;
p++;
printf("%d\n", *p);
A、12
B、gabage num
C、compile error
D、none of above
6、以下代码正确的是
int fun()
{
int *a = new int(3);
return *a;
}
int* fun()
{
int a[] = {1,2,3};
return a ;
}
int *fun()
{
int a[] = {1,2,3};
int *p = a;
return p;
}
int fun()
{
vector<int> a;
a.push_back(3);
return a[0];
}
大概记得是这个样子, 就是堆栈内存能不能返回的问题,vector那个貌似记错了
7、一张5位数保存的image,180度旋转后得到,不同数字为78933,则原数字为以下哪个?
选项肯定记不清,4个5位数
8、考虑以下递归函数power(int b, int e),考虑其时间复杂度
int power(int b, int e)
{
if (e == 0)
return 1;
else if (e%2 == 0)
return b*power(b, e/2);
else
return power(b*b, e/2);
}
A、log
B、sqare
C、linear
D、none of above
9、以下说法正确的是
A、根据中序和前序可以确定一个二叉树
B、根据前序和后续可以确定一个二叉树
C、D忘了
10、
class CTest
{
private:
___ int a;
___ int b;
public:
CTest(int input):b(input)
{
}
};
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、以下程序的输出是什么
char* fun(char* str, char c)
{
char* s1 = str;
char* s2 = str;
while (*s2 != '\0')
{
if (*s2 == c)
s2++;
*s1++ = *s2++;
}
return str;
}
int _tmain()
{
char *str = "abcdcccd";
cout << fun(str, 'c') << endl;
return 0;
}
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、链表逆序,代码太长,不写了
只能记得这么多,其他忘了,仅供参考,第一题就搞蒙了,楞是不敢选32