2016q3 Homework1(面試題目) === > [name=忠群] ## 格式 * 公司名稱: * 職務說明: * 面試題目: * 流程: * 出處: ## 面試題 ### 連發科技 * 公司名稱:連發科技 * 職務說明:4G 工具軟體工程師 * 幫助RD debug的tool,類似wireshark那種軟體 把手機內部的資訊傳回到PC端用GUI呈現 用PC端下指令或訊息給各module觀察期status和output來確認各module是否正常運作 須要了解LTE的spec * 面試題目: ``` [C test] 1. Explain "#error" 2. Explain "struct" and "union" 3. Explain "volatile". Can we use "const" and "volatile" in the same variable? Can we use "volatile" in a pointer? 4. unsigned long v1 = 0x 00001111; unsigned long v2 = 0x 00001202; unsigned long v; v = v1&(~v2); v = v | v2; ask: the value of v? 5. int a[5] ={1,2,3,4,5}; int *p = (int *)(&a+1); ask: the value of *(a+1), (*p-1)? 6. write a code a) set the specific bit b) clear the specific bit c) inverse the specific bit (0->1; 1->0) 7. Re-write void(*(*papf)[3])(char *); typedef__________; pf(*papf)[3]; 8. write a code that check the input is a multiple of 3 or not without using division or mod 9. Explain lvalue and rvalue. ``` * 流程: * 上機考試(電腦隨機選取C考題) * 華德士性格測驗(前一天自己要在家裡做完) * 出處: [link](http://wubui.pixnet.net/blog/post/41242054-%5B%E9%9D%A2%E8%A9%A6%5D-%E8%81%AF%E7%99%BC%E7%A7%91%E6%8A%80-mtk-(%E5%85%A7%E5%90%AB%E8%80%83%E9%A1%8C)) * 其它條件: 1. 有開發工具軟體或windows programming經驗 2. 熟悉 C/C++ 3. 熟悉 Windows Programming OR RTOS platform development 4. 有 Software Architect的技能尤佳 5. 有良好的簡報技巧尤佳 6. 有良好的英文溝通能力尤佳 --- ### 連發科技 * 公司名稱:連發科技 * 職務說明:研替 軟韌體部門 * 面試題目: ``` * 考程式 -直接用英文打在螢幕上,不能編譯。 判斷程式回傳值(指標),判斷int溢位(不能用long幫忙) 直接寫出改大小寫跟判斷大小寫的函數 交換兩數的值(不能使用變數幫忙) 用一行程式判斷是否為2的冪次方等等 * 第一場 1. pipeline的機制,假設有一個1MHZ的處理器經過pipeline速度會變幾倍。 2.有pipeline一定會變快嗎(假設沒有latency)? 3.cache假設可以做到無限大,我們為什麼不做得和memory一樣大。 (其實我不太懂他在問什麼,問題就是太貴不是嗎?不然就做很大了啊!) 4.解釋一下mutex, semaphore的差異以及用途。 5.當場寫出一個反轉字串的程式,輸入是一個char*。 (這題我一開始直接硬寫stack,第二次還在那邊交換記憶體位址,主管應該覺得我是智障…) 6.如何判斷一個子串陣列的大小,且不能使用strlen。 7.邏輯問題:一百顆球在袋子裡面,分別是1到100公斤,任意拿掉一顆,只秤剩下的球,要秤幾次才知道拿掉哪顆。 (這題我也莫名其妙,也沒有說一次只能秤幾顆球,害我問題目問半天, 最後我就說把袋子拿去秤就知道少哪一顆了,主管也不打算解釋清楚一點就這樣讓他過去了。) * 第二場 1.為什麼音訊要用dsp板處理不用CPU,同樣的操作在CPU上也可以做。 2.process和thread的不同點。 3.為什麼multi-thread可以加速,僅僅切換CPU就可以加速。 4.什麼是race-condition,如何解決。 5.優化裡面的remove branching為什麼可以加快程式。 6.專題裡面porting到DSP版上有沒有用到組語優化,和8051有沒有不同。 7.OpenMP和CUDA的平行化機制(因為我專題有)。 8.8051和DSP都是嵌入式系統,知不知道差異,8051可不可以拿來處理音訊。 9.Nyquist rate是什麼,為什麼要大於這個rate(超基本結果我也沒講完整…)。 10.物件導向的好處是什麼,C++的class的好處(我回答了動物繼承的例子還被發現是書上的…)。 11.vim的好處在哪。 12.Volatile變數的使用時機,如果不用它,平常程式會把資料存在哪。 13.談一下通原學到的東西,隨便舉幾個知道的modulation(這我直接說不會…)。 ``` * 流程:手寫->兩場面試 * 出處:[link](https://lifeandnote.wordpress.com/2014/08/27/%E7%A0%94%E6%9B%BF-%E8%81%AF%E7%99%BC%E7%A7%91%E7%A0%94%E6%9B%BF%E9%9D%A2%E8%A9%A6-%E8%BB%9F%E9%9F%8C%E9%AB%94%E9%83%A8%E9%96%80/) --- ### Skymizer * 公司名稱:Skymizer * 職務說明:軟體工程實習生 * 面試題目: ``` 你用過perf和gprof,那他們有何不同的地方嗎? 你覺得perf的結果準確嗎? 還有perf之所以能偵測程式熱點的機制是? 你如何用perf知道程式的cache misses rate有降低,指令是如何下的? 你說你用過gnu toolchain,那除了make和gcc,還有哪些utility是你有用過得? 你有撰寫過ld script的經驗嗎? 請問git rebase是什麼? * 專題相關問題 簡述畢業專題負責的部份 五子棋AI的部份是到怎樣的程度 有用C++做過什麼專案嗎?Python呢? ``` * 流程:面試題->白板題(不詳) * 出處:[link](http://good5dog5.github.io/2016/04/28/interview-skymizer-nvidia/) ---