看板 C_and_CPP 關於我們 聯絡資訊
這是一家公司給我的題目 30 int * someIDs, theFirst, *r; 110 someIDs =GetSomeIDs(); /* defined below */ 111 theFirst = someIDs [0]; 112 r= ReorderIDs(someIDs); 113-150 /* we want to use 'theFirst' and 'r' here*/ 499 /*-------- GetSomeIDs-----*/ 500 int * GetSomeIDs() 501 { 502 int ids[8]; 503-550 /* The ids are defined here */ 551 return ids; 552 } Q1: Is there a different way to write line 500 which preserves the same effective prototype? If so, what is it? 我回答: Yes, we can replace int * by void GetSomeIDs(int *ids). In that case, we don't need to re-declare int ids in line 502 and no need line 551. 結果公司給我個 hint 如下: they are looking for an equivalent way to write line #500, maintaining the same prototype 可是我看完他的hint 我還是不懂他是要我用啥寫法取代 int * GetSomeIDs()...囧 Q2: What will 'theFirst' contain after line 111 is executed? Is this deterministic? Why? 這個問題我回答 'theFirst' 是不是 deterministic 要看GetSomeIDs() 裡面的寫法才能決定 結果公司說the answer is ‘deterministic’要我解釋why.... 這邊我該如何解釋 'theFirst' 一定是 deterministic? (其實我還是覺得不一定是 deterministic....=.=a...) ------------------------------------------------------ 這測試 是那公司的HR寄了 差不多15題的題目給我回答 大概給3天時間 可以上網或翻書 查任何需要的資料(但要付上來源) 不過不能把題目直接po到網路~XD 他們查到就取消面試資格 我還真的有看到 有人把整分題目都po到網路問人...結果公司的人看到 在下面回他 他違反他簽的同意書 所以要把他的資格取消.... 所以基本上我google過了 類似的問題,但還是沒辦法回答他們要的答案..>_<.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 128.206.251.162
tinlans:是每個人的題目都不一樣嗎?不然怎麼確認是誰 po 的? 04/04 04:53
LinRungChuan:我也不確定 但是對方po的題目 問題幾乎都一樣 只是 04/04 07:47
LinRungChuan:範例稍微不同,有可能HR一次通知的人少 所以知道是誰 04/04 07:48
ZanFu5566:感覺上他是要說 function prototype不能改=.=? 04/04 10:20
Ebergies:為啥我覺得他 return ids 會 segmemtation fault 04/04 10:31
leiyan:看註解 假設程式沒錯有問替提的地方都補齊了 04/04 10:42
Ebergies:問題就在於補齊了以後還是會炸... 04/04 10:44
Ebergies:公司都要他解釋 "WHY", 而不是 "what" 了 04/04 10:46
LinRungChuan:E大 我當初回答就是想到會炸或是傳垃圾值的可能性 04/04 12:27
hpps:回傳區域變數的位址,為什麼會是deterministic呢 04/04 12:28
LinRungChuan:才回說不一定deterministic,不過照他答案是肯定的 04/04 12:28
LinRungChuan:determinist,那 why該怎麼回,不是的話好像比較好回 04/04 12:29
azureblaze:中間stack沒動到所以資料應該不會變 04/04 13:42
hpps:剛剛想了一下,他只問111行執行後theFirst的結果,應該不會變 04/04 14:14
hpps:但如果111行後又有呼叫其他函式,指標裡的值可能就不一樣了 04/04 14:14
hpps:GetSomeIDs()回傳後到指定給theFirst之前,stack沒被動到 04/04 14:20
hpps:應該是這樣,不過還是覺得題目有點怪... 04/04 14:20
LinRungChuan:疑~反覆看了問題跟h大的講法,這樣好像沒錯 他也只問 04/04 14:32
LinRungChuan:theFirst,而不是someIDs [0] 04/04 14:33
jacky010:即是說theFirst的值是ids[0] 就好了? 04/05 01:41
yoco315:= ="""" auto GetSomeIDs -> int*() { ... } 04/05 03:14
littleshan:這件事不叫deterministic,而叫undefined behavior 04/05 03:55
littleshan:題目這麼莫名奇妙你還確定要去這家公司嗎 XD 04/05 03:56
LinRungChuan:我已經把修改版寄回去了~裡面還有其他題目更莫名其妙 04/05 13:24
LinRungChuan:害我寫到不想寫 不過這職缺年薪至少 $70K鎂 04/05 13:25
LinRungChuan:title是 programmer 做的領域又是bioinformatics 04/05 13:26
LinRungChuan:能去混個經驗也好XD 04/05 13:27
yoco315:薪水這樣的話那我可以為五斗米折腰,再爛的題目我都寫 Q_Q 04/05 13:56
littleshan:哪家公司介紹一下 (馬上改變態度XDDDDDD 04/05 17:01
LinRungChuan:真的有興趣申請,可以站內信跟我要資訊,不是大公司 04/05 17:55
LinRungChuan:所以他們會幫忙辦工作簽證,不過官網騙騙人寫只收公民 04/05 17:57
hilorrk:會不會其實是做 compiler 或 embedded ,有什麼先提條件XD 04/05 23:41
xxxx9659:原PO取代成 void GetSomeIDs(int *ids) 感覺還是不對阿 04/06 05:30
xxxx9659:取代成 void GetSomeIDs(int **ids) 才能真正改到 ids 吧 04/06 05:31
LinRungChuan:@@! 我若在外面的呼函數new好ids要的size就可以把 04/06 07:36
LinRungChuan:GetSomeIDs()裡的ids[]傳出去了,要用雙指標是為了?? 04/06 07:38
FRAXIS:prototype可以寫int * GetSomeIDs(void)嗎? 04/07 02:34
ericwang1017:我記得array如果沒有初始化的話,compile會給個值 04/09 23:06
ericwang1017:如vc中的array都是0xCC 04/09 23:07