給一個(gè)整數(shù)數(shù)組,其中包含重復(fù)的數(shù)字,例如1,2,4,2,5,重復(fù)的就是2。設(shè)計(jì)算法找出重復(fù)的數(shù)。
建議:Hashtable
給出一個(gè)inode,寫一段代碼遍歷這個(gè)inode包含的所有文件及目錄
建議:遞歸
給出隨機(jī)字符組成的兩個(gè)字符串,判斷是否由相同的字符組成。例如abbffgg==fgbagfb
建議:Hashtable
寫一迷宮探路的程序,使用多線程加快探路速度
寫一個(gè)判斷找出字符串中最長(zhǎng)的對(duì)稱字串。例如:ababba中最長(zhǎng)的對(duì)稱子串為abba
寫一個(gè)字符串匹配的程,包括?(一個(gè)字符)和*(任意個(gè)字符)。例如:a?*bba和afbba匹配
寫一個(gè)查找子串的函數(shù)。例如:實(shí)現(xiàn)C函數(shù)中的strstr函數(shù)
建造一座橋,如何設(shè)計(jì),怎樣測(cè)試
在地球和火星上各有一個(gè)設(shè)備,地球上發(fā)送1+1,火星上計(jì)算結(jié)果并傳回地球。但是地球接到的是3,問(wèn)哪些情況可能導(dǎo)致這個(gè)問(wèn)題
Linux2.4和2.6有啥區(qū)別
spinlock和semaphore有啥區(qū)別
deadlock是咋回事
page和segment有啥區(qū)別
spinlock在linux里面如何實(shí)現(xiàn),x86架構(gòu)里面spinlock如何實(shí)現(xiàn)
在控制臺(tái)打ls命令,從輸入命令到屏幕上顯示結(jié)果,Linux中如何是處理的,具體流程是什么
給一個(gè)沒(méi)排序的整數(shù)數(shù)組和一個(gè)值,找出數(shù)組中那兩個(gè)數(shù)之和等于這個(gè)值,算法復(fù)雜度
用C如何模擬C++中的class。父類和繼承子類的析構(gòu)函數(shù)如何實(shí)現(xiàn)?
給四個(gè)硬幣放在四個(gè)位置1234,初始狀態(tài)是正反反正,給三個(gè)操作:1.翻轉(zhuǎn)第一個(gè)硬幣2.把每個(gè)硬幣向右移動(dòng)一位。例如:
1234》4123。3.把第二,第三個(gè)銀幣同時(shí)翻轉(zhuǎn)。問(wèn)如何使用最少的操作將銀幣翻成反反正正。如何處理100個(gè)硬幣,初始狀態(tài)隨機(jī)?
建議:最短路徑算法,每個(gè)節(jié)點(diǎn)往外發(fā)三條邊
排序有哪幾種算法,時(shí)間,空間復(fù)雜度,穩(wěn)定性,O(n)的算法
給幾篇掃描的手寫文章,用這些文章里的各個(gè)單詞的圖片拼成另一篇文章,這篇文章的內(nèi)容已給出,每個(gè)圖只能用一次。如果使用哈希表,如何處理哈希函
數(shù)的不平衡?有的詞用的很多,那么這個(gè)詞在哈希表的對(duì)應(yīng)位置會(huì)鏈上很多圖片,而有的詞用得少,那么在哈希表的對(duì)應(yīng)位置只有很少圖片。
給一個(gè)數(shù),如何count這個(gè)數(shù)的二進(jìn)制表示里面有多少個(gè)1.例如5=101,有2個(gè)1。各種算法的時(shí)間空間復(fù)雜度,在不同的CPU架構(gòu)下性能比較。
如何在stack上分配內(nèi)存。相對(duì)malloc在heap上分配。
建議:函數(shù)alloca
線程和進(jìn)程的區(qū)別,相同進(jìn)程的2個(gè)線程AB,線程A如何訪問(wèn)直接線程B的數(shù)據(jù)?
volatile關(guān)鍵字有啥意義?哪些情況使用?
SCSI設(shè)備在處理DMA時(shí)有什么要注意的地方
建議:31或32位mask
Linux系統(tǒng)調(diào)用如何開始
建議:中斷門
網(wǎng)絡(luò)設(shè)備處理收到的package有什么處理方式
建議:中斷+poll
給8個(gè)0/1信號(hào),和四個(gè)加法器。加法器的輸入是三位信號(hào),兩位數(shù)據(jù),一位進(jìn)位。輸出兩位,一位數(shù)據(jù),一位進(jìn)位。例如輸入數(shù)據(jù)位1,1,進(jìn)位0,輸出數(shù)據(jù)位0,進(jìn)位1。輸入數(shù)據(jù)1,0,進(jìn)位1,輸出數(shù)據(jù)1,進(jìn)位0。
要求輸出1的個(gè)數(shù)。例如輸入11110000,輸出0100(4)
C語(yǔ)言里面^號(hào)什么意思
給一個(gè)函數(shù),里面只有一個(gè)int數(shù)組包含10個(gè)數(shù)a[0...9],并給這個(gè)數(shù)組的每個(gè)數(shù)減4,但是減的時(shí)候給第11個(gè)數(shù)a[10](下標(biāo)溢出)也減了4,在某些架構(gòu)中可能會(huì)發(fā)生什么?
建議:死循環(huán)。修改返回地址,程序在調(diào)用(call)完這個(gè)函數(shù)以后返回到call指令的地址,而不是call指令接下去的指令的地址
一個(gè)函數(shù)中有兩段代碼,第一段匯編使用powerpc的"add."指令,接下去一段C使用if判斷某個(gè)條件是否成立,但是盡管if的條件肯定為true,有時(shí)if卻判斷條件不成立,為什么?
建議:add.修改condition寄存器CR0狀態(tài),if判斷條件時(shí)使用同一個(gè)寄存器,編譯器重排指令導(dǎo)致if執(zhí)行時(shí)CR0的值并不是if條件計(jì)算出的值。
posted on 2009-02-24 09:31
chatler 閱讀(1313)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
interview