歡迎您對這篇文章的其餘建議。我能夠留言在如下平臺。
我的博客網站:www.anycodex.com/blog/
Csdn博客網站:http://my.csdn.net/?ref=toolbar
微博:http://weibo.com/1958069172/profile?topnav=1&wvr=5&user=1
一、int main(){ fork()||fork(); }共建立幾個進程?
答:3個。
【知識點】
• 一個現有進程可以調用fork函數建立一個新進程。由fork建立的新進程被稱爲子進程(child process)。fork函數被調用一次但返回兩次。html
兩次返回的惟一差異是子進程中返回0值而父進程中返回子進程ID。
• 子進程是父進程的副本,它將得到父進程數據空間、堆、棧等資源的副本。注意,子進程持有的是上述存儲空間的「副本」。這意味着父子進程間不共享這些存儲空間。
• UNIX將複製父進程的地址空間內容給子進程。所以,子進程有了獨立的地址空間。在不一樣的UNIX (Like)系統下。咱們沒法肯定fork以後是子進程先執行仍是父進程先執行,這依賴於系統的實現。算法
因此在移植代碼的時候咱們不該該對此做出不論什麼的若是。
shell
如圖所看到的:一樣顏色的爲同一進程,共同擁有三種進程。不少其它信息可以參考http://coolshell.cn/articles/7965.html數據庫
2.下列正則表達式不可以匹配 「www.alibaba-inc.com」的是______。
• ^\w+\.\w+\-\w+\.\w+$
• [w]{0,3}.[a-z\-]*.[a-z]+
• [c-w.]{3,10}[.][c-w.][.][a]
• [w][w][w][alibaba-inc]+[com]+
• ^\w.*com$
• [w]{3}.[a-z\-]{11}.[a-z]{3}
數組
【知識點】正則表達式請參考:http://msdn.microsoft.com/zh-cn/library/ae5bf541(v=vs.90).aspx緩存
3.下列描寫敘述中惟一錯誤的是______。
A. 本題有五個選項是正確的
B. B正確
C. D正確
D. DEF 都正確
E. ABC 中有一個錯誤
F. 假設 ABCDE 都正確。那麼 F 也正確
【知識點】推理推斷
依據題意。選項中僅僅有惟一一個錯誤,因此A選項正確。再看C選項,假設C選項錯誤,那麼D錯誤和惟一錯誤矛盾,因此C正確。網絡
進而D正確。那麼DEF都正確,僅僅有B錯誤。咱們再看,假設B正確,依據前面的分析咱們確定CDE都是正確的,在E選項中。A正確,B正確,進而推導出C錯誤。這和前面咱們推導C正確矛盾,所以B錯誤。多線程
四、個數約爲50K的 數列需要進行從小到大排序,數列特徵是基本逆序(多數數字從大到小。個別亂序)。下面哪一種排序算法在事先不瞭解數列特徵 的狀況下性能大機率最優(不考慮空間限制)______。
• 冒泡排序
• 改進 冒泡排序
• 選擇排序
• 高速排序
• 堆排序
• 插入排序
【知識點】各大排序的適用場合以及特色
個數約爲50K,基本可以秒殺通常的冒泡。改進冒泡,選擇,插入等主要的排序。架構
加上數列的特徵是基本逆序,而高速排序的worst case就是基本逆序或者基本有序的狀況。綜上所述。堆排序應該是大機率最優的。app
五、下列方法中,______不可以用來程序調優 ?
• 改善數據訪問方式以提高緩存命中率
• 使用多線程的方式提升I/O密集型操做的效率
• 利用數據庫鏈接池替代直接的數據庫訪問
• 使用迭取代代遞歸
• 合併多個遠程調用批量發送
• 共享冗餘數據提升訪問效率
【知識點】程序調優常見的途徑。可參考http://coolshell.cn/articles/7490.html
• I/O密集型問題一般是硬件層面的問題,比方硬盤。它的I/O就擺在那裏,無論你在怎麼多線程。瓶頸就在硬盤那。因此B的說法是不可行的。
• 對於「I/O密集型」的應用程序可以採用I/O效率較高的SCSI硬盤,或者採用集羣的方式。
六、設 m 和 n 都是 int 類型。那麼下面 for 循環語句,__
for(m=0,n=-1;n=0;m++,n++)
n++;
A.循環體一次也不運行
B.循環體運行一次
C.是無限循環
D.有限次循環
E.循環結束推斷條件不合法
F.執行出錯
【知識點】循環。=和==差異
n=0,條件永遠爲假,因此循環體一次也不會運行
【擴展】
若改成for(m=0,n=-1;n>0;m++,n++)n++;循環體應該會運行有限次,存在溢出的問題。
七、計算三個稠密矩陣A、B、C的乘積ABC。假定三個矩陣的尺寸分別爲m*n, n*p, p*q。且m<n<p<q,下面計算順序效率最高的是:______?
• (AB)C
• A(BC)
• (AC)B
• (BC)A
• (CA)B
• 以上效率一樣
【知識點】矩陣及簡單的算法複雜度
• 依據簡單的矩陣知識。可以排除後面四項。因爲A*B,A的列數必須和B的行數相等。
• 再看選項1和選項2,例如如下圖所看到的,一個m*n的矩陣A乘以n*q的矩陣B。咱們會用矩陣A的第一行,乘以矩陣B的第一列並相加。這一運算需要耗費n次乘法以及n-1次加法。矩陣B有q列,矩陣A有m行。因此A*B的複雜度爲m*(2n-1)*q。
• 依據上面的分析,咱們可以知道選項1的複雜度爲m*(2n-1)*p + m*(2p-1)*q。而選項2的複雜度爲m*(2n-1)*q+ n*(2p-1)*q,很是顯然選項1的效率高於選項2。
八、若干個等待訪問磁盤者依次要訪問的磁道爲19,43,40,4,79,11,76,當前磁頭位於40號柱面,若用最短尋道時間優先磁盤調度算法,則訪問序列爲?
A. 19,43,40,4,79,11,76
B. 40,43,19,11,4,76,79
C. 40,43,76,79,19,11,4
D. 40,43,76,79,4,11,19
E. 40,43,76,79,11,4,19
F. 40,19,11,4,79,76,43
【知識點】磁盤尋道算法。請參考http://blog.csdn.net/kennyrose/article/details/7532651
九、程序出錯在什麼階段__?
Int main(void)
{
http://www.taobao.com
cout<<」welcome to taobao」<<endl
}
A. 預處理階段出錯
B. 編譯階段出錯
C. 彙編階段出錯
D. 連接階段出錯
E. 執行階段出錯
F. 程序執行正常
【知識點】編譯程序的基本知識
• Gcc編譯器對程序的編譯可分爲4個階段:預編譯、編譯和優化、彙編、連接,以後就是執行了。
• 預編譯:將程序引用的頭文件包括進源碼中,並對一些宏進行替換。
• 編譯:將用戶據可識別的語言翻譯成一組處理器可識別的操做碼,生成目標文件。一般翻譯成彙編語言,而彙編一眼和機器操做碼之間是一對一的關係;
• 所有的目標文件必須用某種方式組合起來才幹執行,這就是連接的做用。目標文件裏一般僅解析了文件內部的變量和函數,對於引用的函數和變量尚未解析,這需要將其它已經編寫好的目標文件引用進來,將沒有解析的變量和函數進行解析,一般引用的目標是庫。連接完畢後會生成可執行文件。
十、下面操做中,數組比線性錶速度更快的是____
A. 原地逆序
B. 頭部插入
C. 返回中間節點
D. 返回頭部節點
E. 選擇隨機節點
【知識點】線性表和數組
線性表的定義請參見百度百科:http://baike.baidu.com/view/178622.htm
十一、在一個請求頁式存儲管理中。一個程序的頁面走向爲 三、四、二、 一、四、五、三、四、五、一、2,並採用 LRU 算法。設分配給改程序的存儲 快熟 S 分別爲 3 和 4,在該訪問中發生的缺頁次數 F 是
A. S=3,F=6;S=4,F=5
B. S=3,F=7;S=4,F=6
C. S=3,F=8;S=4,F=5
D. S=3,F=8;S=4,F=7
E. S=3,F=10;S=4,F=8
F. S=3,F=11;S=4,F=9
【知識點】缺頁次數的計算LRU和FIFO
十二、每臺物理計算機可以虛擬出 20 臺虛擬機,若是一臺虛擬機發生問題當且僅當它所宿主的物理機發生問題。經過 5 臺物理機虛擬出100 臺虛擬機,那麼關於這 100 臺虛擬機的故障的說法正確的是:____?
A. 單臺虛擬機的故障率高於單臺物理機的故障率
B. 這 100 臺虛擬機發生問題是彼此獨立的
C. 這100臺虛擬機單位時間內出現問題的個數高於100臺物理機單位時 間內出現問題的個數
D. 沒法推斷這 100 臺虛擬機和 100 臺物理機哪一個更可靠
E. 假設隨機選出 5 臺虛擬機組成集羣, 那麼這個集羣的可靠性和 5 臺物 理機的可靠性一樣
F. 可能有一段時間僅僅有 1 臺虛擬機發生問題
【知識點】理解題意吧
13村長帶着 4 對父子參加爸爸去哪兒第三季第二站某村莊的拍攝。 村裏爲了保護小孩不被拐走有個前年的規矩, 那就是吃飯的時候小孩 左右僅僅能是其它小孩或者本身的父母。那麼 4 對父子在圓桌上共同擁有 ___種坐法。 (旋轉一下。 每個人面對的方向變動後算是一種新的坐法)
A. 144
B. 240
C. 288
D. 480
E. 576
F. 960
【知識點】排列組合
依據題意,可以知道位置排列僅僅有下面兩種可能。例如如下圖所看到的:
對於第一種方式:孩子和孩子是面對面的,父親和父親是面對面的。因此8個位置可以等效爲4個位置,孩子的位置定了。父親的位置也就定了。
而孩子的排列數爲4*3*2,旋轉僅僅有4中可能(因爲等效下來僅僅有4個位置)。因此總可能輸爲4*4*3*2 = 96
對於另一種方式:孩子的排列有4*3*2*1,孩子的位置定了。當中兩位父親的位置就定了,剩下兩位父親就可以任意排了,此外可以旋轉8次。總可能輸爲8 * 4 * 3 * 2 * 2 = 384
綜上所述。總有384 + 96 = 450中可能。
1四、假設一個博物館參觀者到達的速率是每分鐘 20 人,平均每個人在館內停留 20 分鐘。那麼該博物館至少需要容納多少人?
A. 100
B. 200
C. 300
D. 400
E. 500
F. 600
【知識點】20 * 20 = 400
1六、對立的兩方爭奪一個價值爲1的物品。兩方可以採取的策略可以分爲鴿子策略和鷹策略,假設兩方都是鴿子策略。那麼兩方各有1/2的概率得到該物品。假設兩方均爲鷹策略。那麼兩方各有1/2的機率取勝。勝方得到價值爲1的物品,付出價值爲1的代價。負方付出價值爲1的代價;假設一方爲鴿子策略,一方爲鷹策略,那麼鷹策略得到價值爲1的物品。在爭奪的結果出來以前,沒人知道對方是鴿子策略仍是鷹策略,當選擇鴿子策略的人的比例是某一個值時。選擇鴿子策略和選擇鷹策略的預期收益是一樣的,那麼該值是:
A. 0.2
B. 0.4
C. 0.5
D. 0.7
E. 0.8
F. 以上都不正確
【知識點】
不會,求指點。
1七、已知一個二叉樹的前序遍歷結果是(ACDEFHGB) 。中序遍歷結果是(DECAHFBG),請問興許遍歷結果是_____
A. HGFEDCBA
B. EDCHBGFA
C. BGFHEDCA
D. EDCBGHFA
E. BEGHDFCA
F. BGHFEDCA
【知識點】前序遍歷、中序遍歷、後序遍歷
1八、在一個單鏈表中,q 的前一個節點爲 p。刪除 q 所指向節點,則運行
A. Delete q
B. q->next=p->nerx;delete p;
C. p-next=q->next;delete p;
D. p->next=q->next;delete q;
E. delete p;
F. q->next=p->next;delete q
【知識點】單鏈表
簡單,無需多言
1九、下列 C 代碼中,不屬於沒有定義行爲的有___
A. Int i=0;i=(i++);
B. Char *p=」hello」;p[1]=’E’;
C. Char *p=」hello」;char ch=*p++;
D. Int i=0;printf(「%d%d\n」,i++,i--);
E. 都是沒有定義行爲
F. 都不是沒有定義行爲
【知識點】啥叫沒有定義行爲啊?
我僅僅認爲反正編譯都不會出錯,但是B確定會執行出錯。因爲p指向一個const char,p指向的東西不能被改變。而相對而言,選項C中沒有改變P所指向的東西。僅僅是改動了p指針。說回來,沒有定義行爲,好吧。好像都不是沒有定義行爲。\(^o^)/~
20、int func(unsigned int i)
{
Unsigned int temp=i
Temp=(temp & 0x55555555)+((temp & 0xaaaaaaaa)>>1);
Temp=(temp & 0x33333333)+((temp & 0xccccccccc)>>2);
Temp=(temp & 0x0f0f0f0f)+((temp & 0xf0f0f0f0>>4);
Temp=(temp & 0xff00ff)+((temp & 0xff00fff00)>>8);
Temp=(temp & 0xffff)+((temp & 0xffff0000)>>16);
Return temp;
}
請問 func(0x11530828)的返回值是:(9)
【知識點】位運算
乍一眼看去,確定不可能死算。這道題確定有訣竅。
總之就是求二進制比特中1的個數。詳細怎麼回事,本身慢慢摸索吧。
2一、把校園中同一區域的兩張不一樣比例尺的地圖疊放在一塊兒。並且使 當中較小尺寸的地圖全然在較大尺寸的地圖的覆蓋之下。 每張地圖上 都有經緯度座標,顯然,這兩個座標系並不一樣樣。咱們把剛好重疊在 一塊兒的兩個一樣的座標稱之爲重合點。 如下關於重合點的說法中正確 的是?
A. 可能不存在重合點
B. 一定有且僅僅有一個重合點
C. 可能有無窮多個重合點
D. 重合點構成了一條直線
E. 重合點可能在小地圖以外
F. 重合點是一小片連續的區域
【知識點】極限思想
例如如下圖所看到的:若是藍色的爲大地圖,黃色的爲小地圖,他們是成比例放大的。大地圖中的黃色區域,一定也存在在小地圖其中,咱們若是爲黃色區域。那麼大地圖的黃色區域。一定也存在於小地圖中。咱們若是爲灰色區域。
依照此思想。兩地圖重合的區域愈來愈小,最後會趨近於一個點。因此選B。
2二、畢業典禮後,某宿舍三位同窗把本身的畢業帽扔了,隨後每個人隨機地拾起帽子,三我的中沒有人選到本身原來帶的帽子的機率是
A. 1/2
B. 1/3
C. 1/4
D. 1/6
E. 1/8
F. 1/9
【知識點】簡單的機率論
不考慮不論什麼狀況,撿到帽子的狀況有3*2*1=6種
每個人都不能撿到本身的帽子,狀況有兩種,A-c, B-a, C-b或者A-b, B-c, C-b,當中A,B,C表明三位同窗,a,b,c分別表明A,B,C的帽子。
2三、一個合法的表達式由()包圍,()可以嵌套和鏈接,如(())()也是合法 表達式;現在有 6 對()。它們可以組成的合法表達式的個數爲____
A. 15
B. 30
C. 64
D. 132
E. 256
F. 360
【知識點】卡特蘭數。看完此文,即可秒殺此題http://ilovers.sinaapp.com/article/catalan%E6%95%B0#problem_1
感謝這世界上有那麼多大神存在。
2四、某路由器接受的 IP 豹紋的目的地址不是路由器的接口 IP 地址, 並且未匹配的路由項,則採取的策略是
A. 丟掉該分組
B. 將該分組分片
C. 轉發該分組
D. 將分組轉發或分片
E. 將分組保留存儲
F. 以上都有可能
【知識點】應該和網絡有關,噁心沒學過。當時不知道出了丟掉還能幹什麼。
2五、有字符序列 {Q,H,C,Y,P,A,M,S,R,D,F,X} ,新序列{F,H,C,D,P.A.M,Q,R,S,Y,X},是下列____排序算法一趟掃描的結果。
A. 二路歸併排序
B. 高速排序
C. 步長爲 4 的希爾排序
D. 步長爲 2 的希爾排序
E. 冒泡排序
F. 堆排序
【知識點】排序
很是顯然是拿Q做爲pivot的一趟掃描的結果。
咱們看看其餘選項,比方C。假設是步長爲4的希爾排序。那麼Q將和P相比,P要排在Q前面,和新序列不符。其餘依次類推,考試的時候。選B就可以啦。
確定是對的。
2六、MySQL 主從結構的主數據庫中不可能出現下面哪一種日誌?
A. 錯誤日誌
B. 事務日誌
C. 中繼日誌
D. Redo log
【知識點】數據庫日誌,看完此文,即可秒殺此題。參考連接:http://aceruser.blog.51cto.com/2772529/658842
爲了增強本身的記憶,嗯。我也copy下面,中繼日誌是主從架構中從從server上取得的。
還有兩個附加題。也比較有意思。先容我喝口水,歇會兒,興許補充。
歡迎對本文提出補充建議。可以在下面平臺上我留言。
我的博客網站:www.anycodex.com/blog/
Csdn博客網站:http://my.csdn.net/?ref=toolbar
微博:http://weibo.com/1958069172/profile?topnav=1&wvr=5&user=1
博客pdf文件下載:http://download.csdn.net/detail/xiaxia__/8065739