igt system pa 實習面試

來源:互聯網
上載者:User

被igt血虐,這些東西我真不知道答案,求知道的告訴告訴我:

今天去面試,進去了先做筆試題,題目不難,一些基本的,tcpudp協議區別,分層模型,strcpy實現,特大資料群組,取第十大的

筆試完了進去面試,英文自我介紹,說一個最熟悉的項目。

之後,悲劇開始了:


1:問題,你寫的strcpy有什麼問題?寫一個測試案例,怎麼設計測試案例?

我寫的strcpy:

char * strcpy(char* des,const char* src){if(des==null||src=null) throw "invalid argument";char* strdes = des;while((des++=src++)!='\0');return strcpy;

測試案例,輸入,簡單些一下,兩個字串分別是:

a:null b:null

a:null b:'abc'

a 'ab' b 'abc'

a'abc' b'ab'

總之就是這幾類的,面試官說,不行,有問題,再想

後來提示說參數萬一特別大怎麼辦?為什麼要返回char*?

我不知道什麼叫參數特別大,,,特別大複製啊會溢出嘛?


2:怎麼確定某程式讀寫,瓶頸在硬碟上還是cpu或者記憶體上。

控制變數我想的是,讓他們除了這個一樣。這個上過學的都知道。。。具體的沒做過所以不太會

提示,通過作業系統的過程去想,問作業系統怎麼和硬體接觸?

答:通過系統調用以及驅動程式的介面

問:對,再想.

答:不知道

答案,有一個system counter 之類的東西一直在記錄這個。

這個真的不知道。。。


3:一個特大的數組,找出其中第十大的數

答:裝入記憶體,不能裝入那就分區,之後建堆,扔掉前9個堆頂。

問:如何扔掉?

答:可以把隊頂隨便找一個分葉節點賦值之後調整堆。

問:如何分區?

答:按記憶體能的量

問:怎麼知道第十大的在哪一個片裡?

答:肯定不能直接判斷出來,分區之後分別建堆,之後因為堆頂是該片最大,可以先取兩層,片間比較,可以一定程度上減少次數。

問:堆是什麼資料結構本質上?

答:(我懵了,堆本質不就是二叉樹,父節點大於子節點的)說了之後它不滿意

問:堆是排序二叉樹

我囧。。。。

之後反正這個答案不滿意。。。


4:簡單的,兩數相加,考慮所有情況,寫測試案例

答,首先是重載不同方法,因為確定了是數字,所以無非幾種類型,檢測非法輸入,數字太大什麼的

問:(很明顯這時候他不滿意)

如何重載?數字太大了怎麼辦?

我:重載long double int 之類的,太大了截取,非法輸入報錯返回

問:(他的意思不讓我返回錯誤,一定要加出來個東西,之後說如果比double還大怎麼辦,我也不知道,因為他要返回而不是輸出,其實沒有變數可以承接我覺得,又不能返回兩個值,輸出的話我想用字串去分段加)

它說我沒考慮到的有,在32位64位機器上的問題,這個之前的strcpy也有。(我不知道c語言怎麼判斷機器,只知道彙編的有這麼個東西,具體忘記了)

後來他說輸入兩個字串加怎麼加,我說檢測非法字元先,進位轉換等等,字串拆分之後加,拆成int 大小的,高位想加再加進位。

它不滿意。。。笑著說你回去實現下試試吧。。。

然後我知道掛了。。。也沒啥別的問題,說了一堆廢話就走了。。。真心不懂啊。。。學的太爛了。。。

太晚了,明天再寫,,,

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.