嵌入式軟件面試總結&題

首先一些經驗與教訓,也算是給將要開始找工作的娃娃一點多餘的提醒吧。

一定要重基礎哦!這裏的“基礎”對比大學裏面的“皮毛”知識,多的是一點深度和延伸。所以看似企業在招懂基礎的人,其實是招一個對於專業知識理解有一定深度的人,而這樣的人往往不只是基礎好。趁校招還沒開始的時候個自己充電,主要補充的知識是:

C語言(包括底層實現,如堆棧如何分配,數據的大小端方式,分析問題的時候也要考慮計算機位數的影響......)重點有 幾個必考關鍵字(volatile,const,static,extern),位操作,結構體,指針,動態地址分配、預處理,宏定義......(ps:另外要注意嵌入式C語言的特性哦)

這裏是一個前輩總結的經典題,可以參考:https://blog.csdn.net/mao_hui_fei/article/details/82710536

Linux操作系統(遠不是課程上的通用操作系統的內容,具體可以去看專門教材)重點有 文件,Linux網絡編程,多線程,Linux常用指令......(ps:關於這個部分,網上的面試題比較零碎,也有一些相對有點偏,注意自己總結,也可能是因爲我沒仔細找)

計算機網絡(和前面Linux網絡編程會有綜合)重點爲 TCP/IP協議(這裏不會問很細緻)TCP的三次握手、四次揮手......

單片機 關於單片機的知識主要就是基礎的C語言,在第一點中提到,另外就是自己項目涉及到的知識,公司的研究方向涉及的單片機知識(不是重點)。

ps:除了直白的知識點提問,題目往往會繞彎彎,知識點雜糅(C語言的題目中比較常出現),千萬注意審題!(包括筆試)。

 

嵌入式的知識涉及比較廣,一般畢業生很難做到廣泛而深入(比如我),這時候“積累”就顯得尤爲重要了,要知道必會的知識點就那麼些。積累的方式①蒐集經典題目,徹底理解②蒐集公司筆試、面試題,拓寬知識面,查漏補缺③一定要多去參加筆試面試,實踐是檢驗真理的唯一標準。

重點說一說實戰經驗的重要性。相同類型的公司,相同的崗位,需求一般差別不大,所以問的題目也會有相似。如果第一次面試什麼都答不上來,非常受挫,正常。總結好本次面試的題目,還可以進行一定的知識延伸。第二次面試不出意外就會有你總結的題,這時候你會回答的比上一次好一些......其實不用我來說,在開始了你的求職面試之後自然就會發現。

 

寫的有點粗糙,0.51 有點困了zzz      好吧,其實還是因爲我在試水,也沒有認真準備,嗚嗚。

 

兩次技術面試的提問,回憶整理了一部分。

1.結構體對齊原則

例題:

struct node{
    char c1;
    short int s;
    char c2;
    int n;
    char *p;
    char c3;
}

問:sizeof(struct node) = ?

(ps:結構體的對齊原則是怎樣的?)

 

2.指針變量佔多少字節?在32和64位機中不同的原因是什麼?

 

3.指針存放在堆區還是棧區

 

4.宏定義的作用

 

5.動態內存分配

例題1:

char * func(char *p)
{
    free(p);
    p = NULL;

    return p;
}

char *p1 = malloc(s1);
char *p2 = func(p1);

    ①這段代碼執行後p1,p2的值分別是什麼?”

    ②在後面添加“p1[0] = 10;”是否合法?

 

例題2:

char *p1 = malloc(s1);

char *p2 = realloc(p1,s2);

 ①這兩個語句有什麼區別?

 

6.指針&數據存儲

int n = 0x1234;
short int *p = &n;
 

    ①  *p = ?

 

7.文件描述符

 ①有效的文件描述符最小取值是多少?

 

8.Linux網絡編程

 ①Linux網絡編程select的返回時機?

 

9.關鍵字

 ①介紹static,extern,volatile

 

10.(簡歷中有提到C語言和Java)題目:C語言和Java有什麼不同?

 

不給答案,哈。注意舉一反三喲! 加油哇!一切順利!

 

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