一、選擇題:15分 共10題 1. 在排序方法中,關(guān)鍵碼比較次數(shù)與記錄地初始排列無(wú)關(guān)的是 . A. Shell排序 B. 歸并排序 C. 直接插入排序 D. 選擇排序
2. 以下多線程對(duì)int型變量x的操作,哪幾個(gè)需要進(jìn)行同步: A. x=y; B. x++; C. ++x; D. x=1;
3. 代碼 void func() { static int val; … } 中,變量val的內(nèi)存地址位于: A. 已初始化數(shù)據(jù)段 B.未初始化數(shù)據(jù)段 C.堆 D.棧
4. 同一進(jìn)程下的線程可以共享以下: A. stack B. data section C. register set D. thread ID
5. TCP和IP分別對(duì)應(yīng)了OSI中的哪幾層? A. Application layer B. Data link layer C. Presentation layer D. Physical layer E. Transport layer F. Session layer G. Network layer
6. short a[100],sizeof(a)返回? A 2 B 4 C 100 D 200 E 400
7. 以下哪種不是基于組件的開發(fā)技術(shù)_____。 A XPCOM B XP C COM D CORBA
8. 以下代碼打印的結(jié)果是(假設(shè)運(yùn)行在i386系列計(jì)算機(jī)上): struct st_t { int status; short* pdata; char errstr[32]; };
st_t st[16]; char* p = (char*)(st[2].errstr + 32); printf("%d", (p - (char*)(st)));
A 32 B 114 C 120 D 1112
9. STL中的哪種結(jié)構(gòu)是連續(xù)形式的存儲(chǔ): A map B set C list D vector
10. 一個(gè)棧的入棧序列是A,B,C,D,E,則棧的不可能的輸出序列是( ) A、EDCBA; B、DECBA; C、DCEAB; D、ABCDE
二、簡(jiǎn)答題:20分,共2題
1. (5分)重復(fù)多次fclose一個(gè)打開過一次的FILE *fp指針會(huì)有什么結(jié)果,并請(qǐng)解釋。 考察點(diǎn):導(dǎo)致文件描述符結(jié)構(gòu)中指針指向的內(nèi)存被重復(fù)釋放,進(jìn)而導(dǎo)致一些不可預(yù)期的異常。
2. (15分)下面一段代碼,想在調(diào)用f2(1)時(shí)打印err1,調(diào)用f2(2)時(shí)打印err4,但是代碼中有一些問題,請(qǐng)做盡可能少的修改使之正確。
1 static int f1(const char *errstr, unsigned int flag) { 2 int copy, index, len; 3 const static char **__err = {“err1”, “err2”, “err3”, “err4”}; 4 5 if(flag & 0x10000) 6 copy = 1; 7 index = (flag & 0x300000) >> 20; 8 9 if(copy) { 10 len = flag & 0xF; 11 errstr = malloc(len); 12 if(errstr = NULL) 13 return -1; 14 strncpy(errstr, __err[index], sizeof(errstr)); 15 } else 16 errstr = __err + index; 17 } 18 19 void f2(int c) { 20 char *err; 21 22 swtch(c) { 23 case 1: 24 if(f1(err, 0x110004) != -1) 25 printf(err); 26 case 2: 27 if(f2(err, 0x30000D) != -1) 28 printf(err); 29 } 30 }
三、編程題:30分 共1題 注意:要求提供完整代碼,如果可以編譯運(yùn)行酌情加分。
1. 求符合指定規(guī)則的數(shù)。 給定函數(shù)d(n) = n + n的各位之和,n為正整數(shù),如 d(78) = 78+7+8=93。 這樣這個(gè)函數(shù)可以看成一個(gè)生成器,如93可以看成由78生成。 定義數(shù)A:數(shù)A找不到一個(gè)數(shù)B可以由d(B)=A,即A不能由其他數(shù)生成。現(xiàn)在要寫程序,找出1至10000里的所有符合數(shù)A定義的數(shù)。 輸出: 1 3 …
四、設(shè)計(jì)題:35分 共1題 注意:請(qǐng)盡可能詳細(xì)描述你的數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)架構(gòu)、設(shè)計(jì)思路等。建議多寫一些偽代碼或者流程說明。
1. 假設(shè)一個(gè)mp3搜索引擎收錄了2^24首歌曲,并記錄了可收聽這些歌曲的2^30條URL,但每首歌的URL不超過2^10個(gè)。系統(tǒng)會(huì)定期檢查這些URL,如果一個(gè)URL不可用則不出現(xiàn)在搜索結(jié)果中。現(xiàn)在歌曲名和URL分別通過整型的SONG_ID和URL_ID唯一確定。對(duì)該系統(tǒng)有如下需求: 1) 通過SONG_ID搜索一首歌的URL_ID,給出URL_ID計(jì)數(shù)和列表 2) 給定一個(gè)SONG_ID,為其添加一個(gè)新的URL_ID 3) 添加一個(gè)新的SONG_ID 4) 給定一個(gè)URL_ID,將其置為不可用
限制條件:內(nèi)存占用不超過1G,單個(gè)文件大小不超過2G,一個(gè)目錄下的文件數(shù)不超過128個(gè)。
為獲得最佳性能,請(qǐng)說明設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)、搜索算法,以及資源消耗。如果系統(tǒng)數(shù)據(jù)量擴(kuò)大,該如何多機(jī)分布處理?
|
|
|
| | 日 | 一 | 二 | 三 | 四 | 五 | 六 |
|---|
| 27 | 28 | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 10 | 11 | 12 | | 13 | 14 | 15 | 16 | 17 | 18 | 19 | | 20 | 21 | 22 | 23 | 24 | 25 | 26 | | 27 | 28 | 29 | 30 | 31 | 1 | 2 | | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|
導(dǎo)航
統(tǒng)計(jì)
- 隨筆: 25
- 文章: 11
- 評(píng)論: 3
- 引用: 0
常用鏈接
留言簿(1)
隨筆分類(7)
隨筆檔案(25)
文章檔案(11)
最新隨筆
搜索
最新評(píng)論

閱讀排行榜
評(píng)論排行榜
|
|