百度2014校园招聘笔试题(成都站,软件研发岗)——2014.09.21
一、簡答題(本題共30分)
1. 當前計算機系統(tǒng)一般會采用層次結構來存儲數(shù)據(jù),請介紹下典型的計算機存儲系統(tǒng)一般分為哪幾個層次,為什么采用分層存儲數(shù)據(jù)能有效提高程序的執(zhí)行效率?(10分)
?
2. Unix/Linux系統(tǒng)中僵尸進程是如何產(chǎn)生的?有什么危害?如何避免?(10分)
?
3. 簡述Unix/Linux系統(tǒng)中使用socket庫編寫服務器端程序的流程,請分別用對應的socket通信函數(shù)表示(10分)
?
?
二、算法與程序設計題(本題共45分)
1. 使用C/C++編寫函數(shù),實現(xiàn)字符串反轉(zhuǎn),要求不使用任何系統(tǒng)函數(shù),且時間復雜度最小,函數(shù)原型:char* reverse_str(char* str)。(15分)
?
2. 給定一個如下格式的字符串,(1,(2,3),(4,(5,6),7))括號內(nèi)的元素可以是數(shù)字,也可以是另一個括號,請實現(xiàn)一個算法消除嵌套的括號,比如把上面的表達式變成:(1,2,3,4,5,6,7),如果表達式有誤請報錯。(15分)
?
3. (見下圖)
?
?
三、系統(tǒng)設計題(本題共25分)
在企業(yè)中,對生產(chǎn)數(shù)據(jù)進行分析具有很重要的意義,但是生產(chǎn)數(shù)據(jù)通常不能直接用于數(shù)據(jù)分析,通常需要進行抽取、轉(zhuǎn)換和加載,也就是通常說的ETL。
為了便于開發(fā)和維護,并提高數(shù)據(jù)實時性,通常將一個完整的ETL過程分為多個任務,組成流水線,如下圖所示:
假設任務定義和任務之間的依賴關系都保存在文件中,文件格式分別如下:
?
問題:
1.? 下面是ETL調(diào)度系統(tǒng)的模塊圖,請描述各個模塊呃主要職責,以及各個線條的 含義。(10分)
?
2.? 添加依賴關系時要避免出現(xiàn)環(huán),假設系統(tǒng)同一個時刻只允許一個人添加任務依賴,請實現(xiàn)一個函數(shù)來檢查新的依賴是否導致環(huán),依賴的上游存在環(huán)會導致非正常的調(diào)度,因此也希望能避免。(10分)
a) ?函數(shù)名:checkCycle
b) ?輸入:pairs,已存在的依賴關系((pre,post)……), newPair新的依賴關系(pre,post)
c)??輸出:True: 不存在環(huán),False: 存在環(huán)
?
3. 如果調(diào)度時,某個任務在其依賴的任務之前執(zhí)行,必然導致錯誤,請實現(xiàn)調(diào)度算法,確保任務按照依賴順序執(zhí)行?(10分)
a) ?函數(shù)名:schedule
b) ?輸入1:tasks,整數(shù)數(shù)組;
c)??輸入2:task-relation,二元組數(shù)組,每個二元組表示一組關系;
d)? 輸出:task id序列,并行執(zhí)行的用","分隔,其他的用";"分隔;
?
4. 給定一個任務,如何計算出他的最晚完成時間?(10分)
a) ?函數(shù)名:calMaxEndTime
b) ?輸入1:tasks,3元組數(shù)組,(task_id, start_time, max_run_time);
c)??輸入2:task-relations,二元組數(shù)組,每個二元組表示一組關系;
d)? 輸入3:task-id
e)? 輸出:最晚完成時間;
轉(zhuǎn)載于:https://www.cnblogs.com/dwf07223/p/3336458.html
總結
以上是生活随笔為你收集整理的百度2014校园招聘笔试题(成都站,软件研发岗)——2014.09.21的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 各种水平居中方法
- 下一篇: Ruby中,:(ampersand co