軟體/韌體工程師面試重點與考題- 程式語言(C/C++/C#/JAVA),資料結構,演算法,以及OS作業系統..等題目(筆試考題)

目錄:
面試須知與應答技巧
資料結構 / 變數儲存與記憶體
關於多處理序(Process)與多執行緒(multi-thread) 在Linux / Windows
基本演算法
轉自ptt: [重要] 發文前務必閱讀:C/C++常見問題十三誡
擬真試題1/擬真試題2/擬真試題3/擬真試題4
直接列出考古題1(精華完整48題含解答)
直接列出考古題2(精華完整34題含解答)
深度討論考古題1(DEMO完整10題含解答) 選擇使用C,C++,C#或JAVA
深度討論考古題2(DEMO完整10題含解答) 選擇使用C,C++,C#或JAVA

擬真試題1 :

1.名詞解釋

  • volatile variable
  • static variable
  • char const *p;
  • char* const p;
  • void (*fp)();

2.名詞解釋

  • interrupt
  • MBR(master boot record)

3.用C實作

  • 交換兩個數字
  • 刪除linklist中間的node
  • 把string轉成double

4.計結 MUL BIC(Bit Clear)

5.sort 1000個數字最快的方法 用C把code寫下來

6.解釋semaphore和mutex 及其C++的實作

7.C++ constructor + 繼承

擬真試題2

1). variable 是否可以同時宣告成const 和 volatile

2). 詳述有關interrupt定義或行為

3). 題目說明: ARM(?) 會自動對齊每個entries 「註」還有幾題在考ARM記憶體相關
_Packet struct
{
char a;
int b;
char c;
short d;
}

  • 3a. 在記憶體配置情形(下面有個圖應該是要畫圖)
  • 3b. 不用_Packet指令要怎麼宣告struct才能節省記憶體配置

4). 對於某自然數N 當它是奇數時 N*3+1 當它是偶數是N/2 最後一定會算成 1

  • 4a. 請問N=15需要幾次計算才會算到1
  • 4b. 附了一個程式,要把bug找出來(15的時候會出錯,其他情況都對)

5).某個3D-shooting Game被QA驗出,一到某個Scene會broken還是Violation XXXXX

  • 5a. 你推測是啥原因
  • 5b. 你會用怎樣的架構去驗證錯誤

6). 給了一個A List Of Windows Interrupts 共32種

  • 6a. APC和DPC差異 (英文簡寫忘了是啥 上面有附???)
  • 6b. Interrupt 在某階層以上時是發生什麼事(not sure)

7). 計算Big-Endian Little-Endian的不知道什麼的計算(我根本不知道啥米Endian)

8). 寫個程式,判斷linked list 是否發生了circular

9). 寫一個程式 輸入整數回傳這是幾bits-set  e.g. 0x000003 = 2-bits Set 0xFFFF000 = 16-bits Set

擬真試題3

1.what is calling convention?

2.什麼情況下會造成calling convention? how to resolve?

3.what is inline?

4.what is deadlock ? please demonstrate it.

5.what is macro?

6.請你把一段程式用macro的方式修改

7.what is virtual function

8.what is polymorphism ? what’s the difference between virtual function and polymorphism?

擬真試題4 :

系統方面:
1. Process 與 Thread 有何不同?

2. const 與 violate 有什麼用途? 系統是如何實做達成該用途?

3. 有兩個變數 X與Y, 如何不以乘法與加法而有效率的得到 X*Y 的數值?

4. Kernel 與 Application 如何溝通? (這題真的是問到爛了 筆試與口試之常見問題)

網路方面:
5. 如何寫出程式以UDP方式傳送資料由HOST A 到 HOST B ?

6. 如何寫出程式以TCP方式傳送資料由HOST A 到 HOST B ?

7. 請詳述 ioctl 與 proc 的差異? 傳送資料的結構為何

8. DMA 相關經驗有嗎?

34 thoughts on “軟體/韌體工程師面試重點與考題- 程式語言(C/C++/C#/JAVA),資料結構,演算法,以及OS作業系統..等題目(筆試考題)

  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

  5. 易春木 Post author

    感謝Cha****支持, 已發送邀請函!
    感謝Ron****支持, 已發送邀請函!
    感謝Eri****支持, 已發送邀請函!
    感謝Sym****支持, 已發送邀請函!
    感謝But****支持, 已發送邀請函!
    感謝1qa****支持, 已發送邀請函!
    感謝Chl*** 支持, 已發送邀請函!
    感謝P51****支持, 已發送邀請函!
    感謝Vin****支持, 已發送邀請函!
    感謝Chu** 支持, 已發送邀請函!
    感謝Dcp*** 支持, 已發送邀請函!
    感謝Pet** 支持, 已發送邀請函!
    感謝Lbj****支持, 已發送邀請函!
    感謝Fre** 支持, 已發送邀請函!
    感謝Pai.** 支持, 已發送邀請函!
    感謝Can** 支持, 已發送邀請函!
    感謝Car****支持, 已發送邀請函!
    感謝Lin****支持, 已發送邀請函!
    感謝Cy6****支持, 已發送邀請函!
    感謝Mrd****支持, 已發送邀請函!
    感謝Jim****支持, 已發送邀請函!
    感謝11*****支持, 已發送邀請函!
    感謝lin****支持, 已發送邀請函!
    感謝leb****支持, 已發送邀請函!
    感謝siu****支持, 已發送邀請函!
    感謝kek****支持, 已發送邀請函!
    感謝all****支持, 已發送邀請函!
    感謝j_a****支持, 已發送邀請函!
    感謝tiz****支持, 已發送邀請函!
    感謝w7****支持, 已發送邀請函!
    感謝rs****支持, 已發送邀請函!

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

發表迴響

Copy Protected by Chetan's WP-Copyprotect.