最近筆試小結

最近刷了一小波的筆試,阿里巴巴,大疆創新,魅族,百度,騰訊,美團。

統統都跪了,爲什麼?阿里巴巴那場我是寫得很鬱悶啦,時間太緊。大疆創新,做得還可以,但是可能是周邊的人都抄我的,導致同歸於盡吧。

魅族,報得是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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章