2021.4.13 聯發科面試心得
投了聯發科實習,面試軟韌的經驗
交通
4.13
我是搭 uber 去,花了 191 (- 40 優惠碼) 元,從那裡回來則是騎 ubike,地圖秀快 20 分鐘能到,但我沒走過,邊找邊迷路也花了 40 分鐘吧,好累。
由於大概早了 30 分鐘到,進入大樓換證後我先在大廳的沙發等待,複習一下之後可能會考的內容,在約定時間大概 10 分鐘前有人帶我進去。
筆試
筆試部分覺得沒有考得很好 (雖然說是筆試,但都是用電腦啦 XD)
有印象的考了
-
基本的 bit operation (誰 & 誰等於多少,但沒有這麼直接,搭配了一些 if-else)
-
fclose(fd1, fd2, fd3) 會怎樣 (( 我都一個一個 file descriptor 關欸
更新:這樣是編不過的,錯誤訊息是 error: too many arguments to function call, expected 1, have 2
#include <stdio.h>
int main(void)
{
FILE* fp1 = fopen("test.txt", "r");
FILE* fp2 = fopen("test.txt", "r");
fclose(fp1, fp2);
}
-
簡單的遞迴 (印象中 sum(n) = n + sum(n/2) - 1,問 sum(10) 多少)
-
union 的概念 (union {int a[2]; char c[8];}; 他 a[0] 放 3406,問你 c[0] 會 cout 出什麼)
更新:自己跑了一下,結果是印出 N
#include <iostream>
union data{
int a[2];
char c[8];
};
int main(int argc, char const *argv[])
{
union data d;
d.a[0] = 3406;
std::cout << d.c[0] << std::endl;
return 0;
}
3406 = 0xD4E
- var += bar(++var); … 如果是加號兩邊的話,我知道是沒有規定先後順序的,(i++) + (i++) 之類的是 undefined behaviour, += 我就不確定了
更新:這樣的程式會噴 Warning
#include <stdio.h>
int i = 0;
int a(int x) {
printf("in a(): %d\n", i);
return i;
}
int main(int argc, char const *argv[])
{
i += a(i++);
printf("in main: %d\n", i);
return 0;
}
test.c:13:13: warning: unsequenced modification and access to 'i' [-Wunsequenced]
i += a(i++);
-
include guard: ifdef, idndef, if, elif, if, undef,在電腦上 trace 這種沒有縮排的看起來超累,不能直接標注在 code 上,題目又落落長
-
還有指標 dereference 和 ++, +1 混合著寫。這個部分要很熟悉才行
等等
上機
我大概花 23 分鐘在筆試,留 27 分鐘寫上機,有點趕,因為還有他那難用的環境要熟悉,不像筆試會按上/下一題、會點選擇題、會填入答案就好。
那個 termMsg 鍵詞限制不知道是啥,奇怪的環境。
筆試 + 上機總共 50 分鐘,如何分配是自己決定,他們建議事先寫筆試,螢幕上也有建議的分配 (忘了)。如果再讓我寫一次,我應該會再分配多一點點在上機,畢竟還有環境要熟悉。
上機他們的介面好難用,編譯也不快,平常習慣邊編譯邊改 code 的習慣在這不太適用,也沒有自動補齊變數、函數的功能,好像只有打左括號會生出右括號。
上機的第一題是輸入 n 個數字,印出當前的中位數,例如
1 2 3 4 5
1 1.5 2 2.5 3
和 LeetCode 不同的是要處理輸入、輸出的部分 (LeetCode 通常只要寫最核心的部分)。
這題我時間不夠沒寫出來 嗚嗚嗚… 明明就不算難的。
第二題則是不用 sizeof 但印出某個 struct 的大小,我的想法是用 pointer 的 arithmetic,解法如下。這題應該有答對 (吧)。
#include <stdio.h>
struct Some_struct
{
int a;
char c[10];
};
int main(int argc, char const *argv[])
{
struct Some_struct ss[2];
printf("%d\n", (int)(ss+1)-(int)(ss));
return 0;
}
面試
原本 HR 幫我準備的會議室只有 HDMI,但他信件中要我帶 VGA 的,還好後來他們幫我換了一間。我下次應該會儘量去弄一顆 HDMI 的轉接頭吧,不然好麻煩。
面試部分基本上很多時間都是圍繞在我準備的投影片,稍微延伸出相關 OS、計算機組織的概念。
專題方面有問一些基本問題
- 你在這份專題中負責哪個部分,如何分工
- 你覺得這個專題中最困難的部分是什麼
感覺他們覺得我的作品太淺了,怎麼需要這麼多人,娃
專題部分很多地方感覺要再熟悉一些,講得仔細一點。
由於我有放修過的相關課程,所以他也有問這些課程中最有心得的是哪一門。
白板題和直接問作業系統、計組的題目沒出什麼,因為感覺他們主要是想問通訊的東西,但我沒修過,所以也沒辦法問。這個部門要找有通訊相關背景的人,估計我是沒什麼機會了。
第一次正式的面試,還很多東西要學RRRRR,加油!!
^^^^^^^^^^^^^^^^ 預留結果的區域 XDD