Oops! It appears that you have disabled your Javascript. In order for you to see this page as it is meant to appear, we ask that you please re-enable your Javascript!

《軟韌體工程師面試重點與考題》使用C,C++,C#,JAVA, 並透過筆試題目複習觀念: 資料結構, 演算法, 作業系統, 程式語言, 計組硬體, 網路

目錄:
面試須知與應答技巧
資料結構 / 變數儲存與記憶體
作業系統:多程序與多執行緒的觀念與實作控制,在Linux與Windows
程式語言之說明與分類 & 基本演算法
轉自ptt: [重要] 發文前務必閱讀:C/C++常見問題十三誡
擬真試題1/擬真試題2/擬真試題3/擬真試題4
直接列出考古題1(精華完整53題含解答)
直接列出考古題2(精華完整35題含解答)
深度討論考古題1(DEMO完整10題含解答) 選擇使用C,C++,C#或JAVA
深度討論考古題2(DEMO完整10題含解答) 選擇使用C,C++,C#或JAVA
撲克牌(大老二)洗牌與牌型判斷(JAVA)

轉自ptt: [重要] 發文前務必閱讀:C/C++常見問題十三誡

1. 不可以提取不知指向何方的指標(指標變數必需先指向某個可以合法操作的空間,才能進行操作):
2. 不能存取超過陣列既定範圍的空間
3. 不可以提取不知指向何方的指標

4. 不要試圖用 char* 去更改一個”字串常數”:

5. 不能在函式中回傳一個指向區域性自動變數的指標
(區域變數在離開該區域時被消滅,因此呼叫端得到的指標所指的字串內容失效了,但如果指標內容是用動態的方式配置,這塊空間是在heap而非stack上,heap空間不會自動回收,因此這塊空間在離開函式後依然有效,但要記得free掉記憶體):

6. 不可以只做 malloc(), 而不做相應的 free()

7. 在數值運算、賦值或比較中不可以隨意混用不同型別的數值

8. 在一個運算式中,不能對一個基本型態的變數修改其值超過一次以上
(C/C++並沒有強制規定參數會由哪個方向開始處理(不像Java是由左到右),因此可能會造成與預期不符的情況):

9. 在 Macro 定義中, 務必為它的參數個別加上括號():

10. 不可以在 stack 設置過大的變數
(編譯器會自行決定 stack 的上限,可能是數KB 或數十 KB,當變數所需的空間過大時,很容易造成 stack overflow,程式亦隨之當掉,若真正需要如此大的空間,那麼建議配置在 heap 上,或是採用static / globla variabl):

11. 使用浮點數精確度造成的誤差問題
根據 IEEE 754 的規範,又電腦中是用有限的二進位儲存數字,因此常有可能因為精確度而造成誤差,例如加減乘除,等號大小判斷,分配律等數學上常用到的操作,很有可能因此而出錯(不成立)

12. 不要猜想二維陣列可以用 pointer to pointer 來傳遞:

13. 函式內 new 出來的空間記得要讓主程式的指標接住:

79 thoughts on “《軟韌體工程師面試重點與考題》使用C,C++,C#,JAVA, 並透過筆試題目複習觀念: 資料結構, 演算法, 作業系統, 程式語言, 計組硬體, 網路

  1. 昭哥

    發現一個小bug
    7.write a function that can calculate 1*2+2*3+…..+(n-1)*n
    int nc(int n)
    {
    int sum = 0;
    for(int i = 2; i <= n; i++){
    sum = sum + n*(n-1); <= 這裡錯了 是 sum = sum + i*(i-1); 才對
    }
    return sum;
    }

  2. R.C.

    板主您好,對於這題的解答請問是否應修正為以下這樣,如有錯誤,請不吝賜教:

    1.2 32-bit machine用C語言對位址 0x00005000 的第三個bit設成0,第五個bit設成1。
    #define BIT3 (0x0004)
    #define BIT5 (0x0010)

    unsigned int a=0x00005000;
    void clear_bit3(void) { a &= ~BIT3;}
    void set_bit5(void) { a |= BIT5;}

  3. 1

    在第三題時做strcmp函式那題中,如果兩個參數char a[] 和 b[] 是使用如下宣告: char a[4] = “1234”,這樣的話就不一定會有’\0’在array的最後面,請問這樣的話該如何處理?

    1. 易春木 Post author

      本題是要比較字串, 所以基本上字串結尾必須要有一個「\0」字元作為結尾
      如果不是字串的話, 則不適用strcmp

      若要比較array不是比較字串的話, 也就是說沒有「\0」字元作為結尾
      改寫為

      但其實已經偏離題目的基本設定, 共勉之

  4. Pingback: 工作面試心得(QNAP、緯穎、正文、 工研院、啟碁、全景、智易、CHTTL) – Cinnating

    1. 易春木 Post author

      謝謝提醒, 這部分中英的確造成困擾, 近期會修正, 非常感謝告知喔!若有其他問題歡迎留言告知. It is my pleasure to get your feedback.

      2017/12/27: 已更正囉!

    1. 易春木 Post author

      應該會先處理 Linux process的部分喔, 若擬真試題遇到卡關的問題, 歡迎來信提問或留言喔!

  5. 易春木 Post author

    引用心得推廣 by:

    HC 分享:
    整理面試題目:易春木題庫類 軟韌體工程師面試重點與考題

    mropengate 分享:
    易春木 – 軟體/韌體工程師面試重點與考題- C語言,資料結構,演算法,以及OS作業系統..等題目(筆試考題)

    zmcx16 分享:
    專業知識複習:軟韌體工程師面試- C語言與OS作業系統 常見題目(筆試考題)
    內容很豐富,因為資工的東西真的很多,裡面的內容可以幫你快速複習OS以及C語言相
    關。

    RTZU 分享:
    這個網頁整理了很多面試時會遇到的不管是筆試/面談常常會被問到的問題
    基本上很多考古題和計結資結OS演算法基本概念
    這邊都整理得十分清楚了
    推薦要去面試之前可以靠這邊的筆記惡補一下

    1. 易春木 Post author

      隱藏答題內容與關閉複製功能, 是為了避免流出以保障付費讀者的權利, 將再研究如何兼顧兩者需求與平衡, 謝謝建議喔。

  6. 易春木 Post author

    * 修正volatile部分程式碼
    * 新增了程式語言的定義與分類
    * 另外最近研究了一下Python, 發現也是面試新趨勢的程式語言, 之後陸續更新!

  7. 易春木 Post author

    2018/10月:
    新增5題面試考題於直接列出考古題1

    感謝各位支持, 已發送邀請函! (不再列出三個月前資料喔)
    2018/11 ~
    感謝dan***支持, 已發送邀請函!
    感謝Pro***支持, 已發送邀請函!

    謝謝熱烈支持, 小編會持續加入更多程式設計的面試重點!
    任何問題或考題都歡迎討論研究, 祝大家求職順利!!

發表迴響