今天參加了人民銀行計算機類的筆試,之前在論壇了看了一些相關的筆經,并做了一些準備(主要是看數據結構和算法、以及從圖書館借了一本軟考的書),雖然看了后邊忘了前邊,還是很有一些用處的,所以趁現在寫下來,以為后來人鑒。
人行計算機類的題型分為判斷(0.5'X20)、單選(1'X40)、問答(10'X2)和綜合(6'X5)。題目不難,但內容非常廣泛,幾乎涉及計算機專業的所有專業課:離散數學、數據結構和算法、C語言程序設計、面向對象程序設計、計算機組成原理、匯編語言、編譯原理、操作系統、計算機網絡、數據庫、軟件工程、多媒體、信息與網絡安全等等。尤以C語言程序設計、操作系統、計算機網絡、數據庫、數據結構考得最多,這次匯編和編譯原理基本沒有涉及。可見人行筆試很重基礎,并側重操作系統、數據庫、網絡,我猜想這與人行的具體工作有關,應該主要是做維護和類似DBA之類的事情,開發的成分不會太多。
曬一下問答和綜合的題目和答案。
問答題第一題為死鎖的必要條件及如何檢測和解除死鎖,不幸的是剛看的我都忘了,只湊了一點字數,希望閱卷老師能酌情給分:)。
問答第二題為畫出星形、樹形、總線形、環形的拓撲圖及說明星形、總線形的特點。
綜合第一題是寫一個SQL語句:有一個學生表S(學號,姓名)和成績表C(學號,課程號,課程名字),選出所有沒有選擇課程號為'c101'的學生的學號和姓名,我的答案是; select 學號,姓名 from S where S.學號 not in (select 學號 from C where C.課程號='c101') 不知正確與否,主要是忘了是不是有not in這個用法:)
綜合第二題為寫出一個C程序的輸出,很簡單,學過C的人都會:
void main()
{
static char arr[5]={'*','*','*','*','*'};
int i,j,k;
for(i = 0;i *pb) {*p=*pa;*pa=*pb;*pb=*p;}
if(*pa > *pc) {*p=*pa;*pa=*pc;*pc=*p;}
if(*pb > *pc) {*p=*pb;*pb=*pc;*pc=*p}
printf("%d,%d,%d",*pa,*pb,*pc);
}
功能就是從鍵盤讀入三個數,按由小到大的順序輸出(嚴格來說,是以非遞減的方式輸出,汗,現在才發現)。
第四題是由中綴表達式寫后綴表達式。
第五題是哈夫曼編碼,求平均碼長和畫哈夫曼樹。
我建議后來人如果時間充足,就好好看看所有的專業書,如果時間不充足,就看一本軟考的書,也基本能應付了。