- 相關推薦
英偉達筆試題
1.給出下面常用的C變量的定義方式:
An array of 10 pointers to integers:int* p[10]
A pointer to an array of 10 integers int (*p)[10]
An array of ten pointers to functions that take an integer argument and return an integer: int (*p[10])(int)
2.Difference between semaphore and mutex;
互斥體:互斥體用于線程間的互斥,一次只允許一個線程進入臨界區(qū),它不能保證訪問的順序,因此其是無序訪問,
英偉達筆試題
;コ怏w只能有同一線程釋放,互斥體是睡眠鎖,一旦資源被占用,資源的申請者只能進入睡眠狀態(tài),所以互斥體只能用于進程上下文,而不能用于中斷上下文。信號量:也稱信號燈,進程/線程間同步用,保證對資源的順序訪問,一個進程(線程)完成了某一個動作就通過信號量告訴別的進程(線程),別的進程(線程)再進行某些動作,例如讀者寫者問題。信號量的釋放可以由其他進程/線程釋放.信號量為控制一個具有有限數量用戶資源而設計,例如允許多個讀者同時訪問資源。同樣信號量是睡眠鎖不能用于中斷上下文
自旋鎖:類似于互斥體,但其可以用在中斷上下文,因為對于沒有獲得鎖的線程會循環(huán)檢測,不會睡眠,但其占用cpu資源大。
信號量與互斥體的區(qū)別可以歸結如下
1. 互斥體用于線程的互斥,信號量用于進程/線程的同步。
2. 互斥體必須由同一線程獲得和釋放對應使用,而信號量可以由一個線程釋放,另一個線程得到
3. 互斥體的數值為0或1,信號量可以是任何非負整數
3. 100樓,2個eggs,
資料共享平臺
《英偉達筆試題》(http://www.stanzs.com)。egg在第k樓及以上掉下會摔碎,k樓以下掉下不會碎。問如何確定k(K在1-100之間)
1個egg時肯定是從第1樓開始一層一層試;
那么2個eggs如何確定k?
3個eggs呢?
一般化:m個eggs,n個樓層,如何確定k?
Answer:因為必須要保留最后一個蛋來確定哪一層樓
所以其余m-1個蛋用于折半查找范圍
不知道是不是這樣,忘各位留言指教
4.100個門排成一排,開始時全部為closed。
第1次, 操作門1,2,3,4……100
第2次, 操作門2,4,6,8……100
第3次, 操作門3,6,9,12……99
第4次, 操作門4,8,12,16……100
……
第100次,操作門100
上面“操作”的意思時:如果原來門是open的,就關掉它;如果原來是closed的,就打開它。
第100次之后,哪些門是open的,哪些門是closed的。
Answer: 看一個數有幾個因子,因子數為奇數則為開,因子數為偶數極為關,每個數都可以表示為2個數的乘積,因此只要不是某個數的平方,即兩兩配對,為偶數個因子,若為某個數的平方必定為奇數個因子,所以1,4,9,16,25,36,49,64,81,100為open,其余為closed
5. 華為機試題:找出100以內的非素數
100=10*10;非素數必有一個因子小于10
因此只要能整除2,3,5,7即為非素數
【英偉達筆試題】相關文章:
英偉達(NVIDIA)筆試題目分享09-04
360筆試題目06-27
筆美國國家儀器試題目09-23
中航飛亞達筆試題目09-15
搜狐產品筆歸分享筆試題目07-05
北京恒遠至達ASP.NET筆試題10-06
英智興達軟件測試筆試題目10-21
達尼亞歌詞10-24
溢達筆試經驗06-02
夏達經典語錄09-21