本来觉得太挫了不想写了。。。
但是看到学姐每次都写面经回报社会,我也攒一下RP好了。。
以下罗列问题:
1、 不用临时变量怎样交换两个变量
我说了两种方法,一种相加一种异或
2、 写一个C语言函数,传入一个字符串返回它的翻转字符串
先耍小聪明说了个在原地交换。
然后说还可以开个新的用两个指针遍历一遍,
结果面试官就说开新的怎么开?
我就说先strlen出长度再+1然后乘以char的空间去malloc,再把返回的指针转化成字符型。。
结果他就说,分配有没有可能失败呢?
我说可能失败,失败返回NULL,要判断。
3、 介绍一下红黑树
我说我虽然做ACM但是数据结构了解的不多。。。不多。。。多
4、 那就介绍一下你做ACM主要是做了些什么吧
5、计算机网络学了么?没学。操作系统学了么?正在学。那还是问道智力题吧。。
有n瓶粉末,一瓶有毒。有毒的粉末放在水里一小时后水会变蓝。
至少需要多少个碗可以在一小时后分辨出哪瓶有毒。
我是用二进制做的
6、 一个文件里写了一亿条记录,记录的形式是“IP地址+登录时间”,要求输出按登录次数排序的IP,内存限制一百兆。
我都没做过这种实际问题,就按照ACM的想法瞎搞了。。
我说可以按照取模或者hash把IP投射到若干个小文件里,
然后在小文件中直接排序,再把小文件归并排序。。。
感觉面试官迟疑了一下才说,行。。。。
我一开始在拿笔算,然后突然想到全部平的话不就得分一样了?
面试官说得分一样按净胜球
然后我就很开心的说,那就全部平就是3分啦。。
但是看到学姐每次都写面经回报社会,我也攒一下RP好了。。
首先自我介绍,然后问了问项目。。
问了问项目的内容,开发环境啊,是一个人做的还是小团队做的。。
大二党项目经验太挫,没什么好说的。。。以下罗列问题:
1、 不用临时变量怎样交换两个变量
我说了两种方法,一种相加一种异或
2、 写一个C语言函数,传入一个字符串返回它的翻转字符串
先耍小聪明说了个在原地交换。
然后说还可以开个新的用两个指针遍历一遍,
结果面试官就说开新的怎么开?
我就说先strlen出长度再+1然后乘以char的空间去malloc,再把返回的指针转化成字符型。。
结果他就说,分配有没有可能失败呢?
我说可能失败,失败返回NULL,要判断。
3、 介绍一下红黑树
我说我虽然做ACM但是数据结构了解的不多。。。不多。。。多
4、 那就介绍一下你做ACM主要是做了些什么吧
5、计算机网络学了么?没学。操作系统学了么?正在学。那还是问道智力题吧。。
有n瓶粉末,一瓶有毒。有毒的粉末放在水里一小时后水会变蓝。
至少需要多少个碗可以在一小时后分辨出哪瓶有毒。
我是用二进制做的
6、 一个文件里写了一亿条记录,记录的形式是“IP地址+登录时间”,要求输出按登录次数排序的IP,内存限制一百兆。
我都没做过这种实际问题,就按照ACM的想法瞎搞了。。
我说可以按照取模或者hash把IP投射到若干个小文件里,
然后在小文件中直接排序,再把小文件归并排序。。。
感觉面试官迟疑了一下才说,行。。。。
//后来经人提醒我可能是记错题了,一百兆可能不行。。
7、插入排序和冒泡排序的区别?
我了个深深的去。。怎么会有这种问题的存在?
我说冒泡排序得到一个元素的位置的先后是由它在新序列中的位置决定的,插入排序是由它在旧序列中的位置决定的。
然后面试官问效率区别?
我说冒泡有个小优化,就是某次循环没有发生交换就说明已经是有序的了。
但是复杂度两个都是o(n^2)的,区别不大。
我一开始在拿笔算,然后突然想到全部平的话不就得分一样了?
面试官说得分一样按净胜球
然后我就很开心的说,那就全部平就是3分啦。。
然后面试官说是这样么?答案是3分么?有没有别的情况呢?
//挂了电话之后就想起来可以是一个队全赢其它队都是平。。这样就是2分了,sigh
9、一个程序在运行过程中它的内存是怎么分配的,分哪几个区,分别是什么功能
额。。不好意思。。这个我们还没学。。。
//操作系统真的还没学这个啊。。哭 T^T
10、一个有p的概率产生1,有1-p的概率产生0的随机数发生器。怎样构造出一个有50%的概率产生0,有50%的概率产生1的发生器。
不会哇。。。
后来问了度娘才知道,发生两次,01的算0,10的算1,其它的放弃。。
//哎哎哎。。其实我觉得这种不叫50%的概率吧把吧吧吧吧?
一股跪了的气息迎面而来啊。。。
所以还是努力做好眼前的事情吧,
好好学ACM,好好做项目,好好学专业课。