[問題] 公司考題 (觀念題??)

看板C_and_CPP作者 (吉他手)時間12年前 (2013/04/04 04:02), 編輯推噓7(7032)
留言39則, 14人參與, 最新討論串1/2 (看更多)
這是一家公司給我的題目 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

04/04 04:53, , 1F
是每個人的題目都不一樣嗎?不然怎麼確認是誰 po 的?
04/04 04:53, 1F

04/04 07:47, , 2F
我也不確定 但是對方po的題目 問題幾乎都一樣 只是
04/04 07:47, 2F

04/04 07:48, , 3F
範例稍微不同,有可能HR一次通知的人少 所以知道是誰
04/04 07:48, 3F

04/04 10:20, , 4F
感覺上他是要說 function prototype不能改=.=?
04/04 10:20, 4F

04/04 10:31, , 5F
為啥我覺得他 return ids 會 segmemtation fault
04/04 10:31, 5F

04/04 10:42, , 6F
看註解 假設程式沒錯有問替提的地方都補齊了
04/04 10:42, 6F

04/04 10:44, , 7F
問題就在於補齊了以後還是會炸...
04/04 10:44, 7F

04/04 10:46, , 8F
公司都要他解釋 "WHY", 而不是 "what" 了
04/04 10:46, 8F

04/04 12:27, , 9F
E大 我當初回答就是想到會炸或是傳垃圾值的可能性
04/04 12:27, 9F

04/04 12:28, , 10F
回傳區域變數的位址,為什麼會是deterministic呢
04/04 12:28, 10F

04/04 12:28, , 11F
才回說不一定deterministic,不過照他答案是肯定的
04/04 12:28, 11F

04/04 12:29, , 12F
determinist,那 why該怎麼回,不是的話好像比較好回
04/04 12:29, 12F

04/04 13:42, , 13F
中間stack沒動到所以資料應該不會變
04/04 13:42, 13F

04/04 14:14, , 14F
剛剛想了一下,他只問111行執行後theFirst的結果,應該不會變
04/04 14:14, 14F

04/04 14:14, , 15F
但如果111行後又有呼叫其他函式,指標裡的值可能就不一樣了
04/04 14:14, 15F

04/04 14:20, , 16F
GetSomeIDs()回傳後到指定給theFirst之前,stack沒被動到
04/04 14:20, 16F

04/04 14:20, , 17F
應該是這樣,不過還是覺得題目有點怪...
04/04 14:20, 17F

04/04 14:32, , 18F
疑~反覆看了問題跟h大的講法,這樣好像沒錯 他也只問
04/04 14:32, 18F

04/04 14:33, , 19F
theFirst,而不是someIDs [0]
04/04 14:33, 19F

04/05 01:41, , 20F
即是說theFirst的值是ids[0] 就好了?
04/05 01:41, 20F

04/05 03:14, , 21F
= ="""" auto GetSomeIDs -> int*() { ... }
04/05 03:14, 21F

04/05 03:55, , 22F
這件事不叫deterministic,而叫undefined behavior
04/05 03:55, 22F

04/05 03:56, , 23F
題目這麼莫名奇妙你還確定要去這家公司嗎 XD
04/05 03:56, 23F

04/05 13:24, , 24F
我已經把修改版寄回去了~裡面還有其他題目更莫名其妙
04/05 13:24, 24F

04/05 13:25, , 25F
害我寫到不想寫 不過這職缺年薪至少 $70K鎂
04/05 13:25, 25F

04/05 13:26, , 26F
title是 programmer 做的領域又是bioinformatics
04/05 13:26, 26F

04/05 13:27, , 27F
能去混個經驗也好XD
04/05 13:27, 27F

04/05 13:56, , 28F
薪水這樣的話那我可以為五斗米折腰,再爛的題目我都寫 Q_Q
04/05 13:56, 28F

04/05 17:01, , 29F
哪家公司介紹一下 (馬上改變態度XDDDDDD
04/05 17:01, 29F

04/05 17:55, , 30F
真的有興趣申請,可以站內信跟我要資訊,不是大公司
04/05 17:55, 30F

04/05 17:57, , 31F
所以他們會幫忙辦工作簽證,不過官網騙騙人寫只收公民
04/05 17:57, 31F

04/05 23:41, , 32F
會不會其實是做 compiler 或 embedded ,有什麼先提條件XD
04/05 23:41, 32F

04/06 05:30, , 33F
原PO取代成 void GetSomeIDs(int *ids) 感覺還是不對阿
04/06 05:30, 33F

04/06 05:31, , 34F
取代成 void GetSomeIDs(int **ids) 才能真正改到 ids 吧
04/06 05:31, 34F

04/06 07:36, , 35F
@@! 我若在外面的呼函數new好ids要的size就可以把
04/06 07:36, 35F

04/06 07:38, , 36F
GetSomeIDs()裡的ids[]傳出去了,要用雙指標是為了??
04/06 07:38, 36F

04/07 02:34, , 37F
prototype可以寫int * GetSomeIDs(void)嗎?
04/07 02:34, 37F

04/09 23:06, , 38F
我記得array如果沒有初始化的話,compile會給個值
04/09 23:06, 38F

04/09 23:07, , 39F
如vc中的array都是0xCC
04/09 23:07, 39F
文章代碼(AID): #1HN8h6yU (C_and_CPP)
文章代碼(AID): #1HN8h6yU (C_and_CPP)