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