首页 > 代码库 > 最近笔试小结

最近笔试小结

最近刷了一小波的笔试,阿里巴巴,大疆创新,魅族,百度,腾讯,美团。

统统都跪了,为什么?阿里巴巴那场我是写得很郁闷啦,时间太紧。大疆创新,做得还可以,但是可能是周边的人都抄我的,导致同归于尽吧。

魅族,报得是python,考的是配置程师,都是一些智商题,概率题,逻辑题,没有计算机相关的,写得很惨。

腾讯,都是选择题,不知道为什么报的是后台,但是考试分配的是移动端,有不少题都不会,乱选呗。

美团,我觉得做得最好的就是这场,因为题目挺简单,虽然很多,我做了7题,总共是8题吧?不记得了。

但是还是跪(都一天了,还没有消息,肯定是跪shi了),为什么?我也不知道啊。我猜,改卷的人肉眼看代码,是不是太痛了。

下面是我在几次笔试中比较有印象的问题:

1. static 与 const ,还有inline的定义和使用方法

static用于修饰变量,函数。

一、当修饰局部变量时候,保存于静态区,但是随着调用的函数生命周期结束后,该局部变量并没有结束周期(存放于静态区),但是我们不能访问,即所谓的“生命周期与可见性不一致”。总的说来就是,与普通局部变量相比,作用域一样,生命周期不一样,存储区不一样。

二、当修饰全局变量时候,保存于静态区,只能被该文件使用。与普通全局变量相比,作用域变小(只用于本文件),存储区一样,生命周期一样

三、当修饰函数时,只能被该文件使用。与普通函数相比,作用域变小,存储区一样。

另外,谈一下extern,其作用与static相反,extern是为了整个工程都能用


const

一、可以修饰变量,函数,保证其修饰对象值不变。

inline

一、修饰内联函数,避免频繁调用某个函数而大量的进栈推栈。同时注意得是,inline函数不能有递归,而且主要用于简单的语句。

再谈一下上述三者与define的一些关系。

define只是简单得文本替换,不具有任何检测功能,再预编译时候发挥作用。

static与define,关系不大。

const与define,定义常量时候,我们用#define N 100,这样读起来就比较难了(缺乏数据类型),而const可以解决这个问题,比如const int N=100;

inline与define,主要是定义类似与  #define multi(a,b) a*b等短小函数,用inline可以避免奇异,比如我输入multi(1+3,4+5),define解释为 1+3*4+5=1+12+5,很容易犯下小错误。另外,inline具有函数正常检测功能,与define没有。


2.进程与线程的区别

http://blog.csdn.net/dengyaolongacmblog/article/details/39434083


3.贝叶斯概率

分别有 A,B 两个容器,在容器 A 里分别有 7 个红球和 3 个白球,在容器 B 里有 1 个红球和 9 个白球,现已知从这两个容器里任意抽出了一个球,且是红球,问这个红球是来自容器 A 的概率是多少?
假设已经抽出红球为事件 B,从容器 A 里抽出球为事件 A,则有:P(B) = 8 / 20,P(A) = 1 / 2,P(B | A) = 7 / 10,按照公式,则有:P(A|B)=(7 / 10)*(1 / 2)/(8/20)=0.875



最近笔试小结