一、簡答題(30分)
1、用簡單的語言進(jìn)行數(shù)據(jù)庫操作的步驟。(10分)
2、TCP/IP的四層結(jié)構(gòu)。(10分)
3、什么是MVC結(jié)構(gòu)并簡要介紹各層次的結(jié)構(gòu)。(10分)
二、編程題(40分)
1、公司技術(shù)部接到一個任務(wù),需要使用a-z、0-9組成3位的字符密碼,現(xiàn)請你設(shè)計一個算法,將可能的密碼組合全部打印出來。(10分)
2、請實現(xiàn)字符串反轉(zhuǎn)函數(shù)。(10分)
3、給定三種字符串的操作:
i)插入操作,你可以在任意位置插入一個char字符。
ii)刪除操作,你可以在任意位置刪除一個char字符。
Iii)替換操作,你可以把任意一個char,替換成一個新的char。
通過上述三種操作可以將一個給定的字符串A變換成另一個給定的字符串B,例如A=acegf,B=adef,那么將A變換到B的最小操作次數(shù)是2。第一次操作是把c換成d,第二次操作是刪除g。
1)給定A=gumbo,B=gambol,最小次數(shù)為多少?并給出具體的操作過程。(2分)
2)A、B為任意字符串?如何計算出最小操作次數(shù)?簡述出你的計算思路,并給出遞歸公式。(3分)
3)實現(xiàn)代碼(注意代碼風(fēng)格與效率)。(15分)
三、系統(tǒng)設(shè)題(30分)
【題目】RSA SecurID安全系統(tǒng)
RSA SecurID是在企業(yè)、銀行等領(lǐng)域應(yīng)用較多的一種用戶登錄驗證手段。用戶持有一個小設(shè)備,其上的6位數(shù)每60秒(也可以是其他時間間隔)變化一次,用戶登錄時需要輸入這6位數(shù)字,服務(wù)器進(jìn)行認(rèn)證,通過則允許登錄。如果由你來設(shè)計這個系統(tǒng),會怎么做。
從系統(tǒng)設(shè)計的角度,回答如下問題
1)基礎(chǔ)設(shè)計思路是什么?要求說明清楚服務(wù)器端為何能有效認(rèn)證動態(tài)密碼的正確性。
2)如果用戶數(shù)量達(dá)到千萬量級,給出系統(tǒng)設(shè)計圖示或說明。要求子功能模劃分清晰,給出關(guān)鍵的數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫表結(jié)構(gòu),請考慮用戶量級帶來的影響和擴展性,考慮用戶之間密碼的隨機性等因素,設(shè)計如何支持這幾個因素,給出說明。
3)如果系統(tǒng)的算法升級,可能服務(wù)器和設(shè)備端都要有所修改。系統(tǒng)如何設(shè)計,能夠使得升級過程(包括可能的設(shè)備替換或重設(shè))盡量平滑?