試卷類型:軟件開發A1
考試時長:120分鐘
一 不定項選擇題(共25題,每題4分,共100分,少選、錯選、多選均不得分)
1 已知一棵二叉樹,如果先序遍歷的節點順序是:ADCEFGHB,中序遍歷是:CDFEGHAB,則后序遍歷結果為:(D)
A.CFHGEBDA B.CDFEGHBA C.FGHCDEBA D.CFHGEDBA
2 下列哪兩個數據結構,同時具有較高的查找和刪除性能?(CD)
A.有序數組 B.有序鏈表 C.AVL樹 D.Hash表
3 下列排序算法中,哪些時間復雜度不會超過nlogn?(BC)
A.快速排序 B.堆排序 C.歸并排序 D.冒泡排序
4 初始序列為1 8 6 2 5 4 7 3一組數采用堆排序,當建堆(小根堆)完畢時,堆所對應的二叉樹中序遍歷序列為:(A)
A.8 3 2 5 1 6 4 7
B.3 2 8 5 1 4 6 7
C.3 8 2 5 1 6 7 4
D.8 2 3 5 1 4 7 6
5 當n=5時,下列函數的返回值是:(A)
[cpp] view plaincopy
int foo(int n)
{
if(n<2)return n;
return foo(n-1)+foo(n-2);
}
A.5 B.7 C.8 D.10
6 S市A,B共有兩個區,人口比例為3:5,據歷史統計A的犯罪率為0.01%,B區為0.015%,現有一起新案件發生在S市,那么案件發生在A區的可能性有多大?(C)
A.37.5% B.32.5% C.28.6% D.26.1%
7 Unix系統中,哪些可以用于進程間的通信?(BCD)
A.Socket B.共享內存 C.消息隊列 D.信號量
8 靜態變量通常存儲在進程哪個區?(C)
A.棧區 B.堆區 C.全局區 D.代碼區
9 查詢性能(B)
A. 在Name字段上添加主鍵
B. 在Name字段上添加索引
C. 在Age字段上添加主鍵
D. 在Age字段上添加索引
10 IP地址131.153.12.71是一個(B)類IP地址。
A.A B.B C.C D.D
11 下推自動識別機的語言是:(C)
A. 0型語言 B.1型語言 C.2型語言 D.3型語言
12 下列程序的輸出是:(D)
[cpp] view plaincopy
#define add(a+b) a+b
int main()
{
printf(“%d\n”,5add(3+4));
return 0;
}
A.23 B.35 C.16 D.19
13 瀏覽器訪問某頁面,HTTP協議返回狀態碼為403時表示:(B)
A 找不到該頁面
B 禁止訪問
C 內部服務器訪問
D 服務器繁忙
14 如果某系統154=112成立,則系統采用的是(A)進制。
A.6 B.7 C.8 D.9
15 某段文本中各個字母出現的頻率分別是{a:4,b:3,o:12,h:7,i:10},使用哈夫曼編碼,則哪種是可能的編碼:(A)
A a(000) b(001) h(01) i(10) o(11)
B a(0000) b(0001) h(001) o(01) i(1)
C a(000) b(001) h(01) i(10) o(00)
D a(0000) b(0001) h(001) o(000) i(1)
16 TCP和IP分別對應了OSI中的哪幾層?(CD)
A Application layer
B Presentation layer
C Transport layer
D Network layer
17 一個棧的入棧序列是A,B,C,D,E,則棧的不可能的輸出序列是?(C)
A.EDCBA B.DECBA C.DCEAB D.ABCDE
18 同一進程下的線程可以共享以下?(BD)
A. stack B.data section C.register set D.file fd
19 對于派生類的構造函數,在定義對象時構造函數的執行順序為?(D)
1:成員對象的構造函數
2:基類的構造函數
3:派生類本身的構造函數
A.123 B.231 C.321 D.213
20 如何減少換頁錯誤?(BC)
A 進程傾向于占用CPU
B 訪問局部性(locality of reference)滿足進程要求
C 進程傾向于占用I/O
D 使用基于最短剩余時間(shortest remaining time)的調度機制
21 遞歸函數最終會結束,那么這個函數一定?(B)
A 使用了局部變量
B 有一個分支不調用自身
C 使用了全局變量或者使用了一個或多個參數
D 沒有循環調用
22 編譯過程中,語法分析器的任務是(B)
A分析單詞是怎樣構成的
B 分析單詞串是如何構成語言和說明的
C 分析語句和說明是如何構成程序的
D 分析程序的結構
23 同步機制應該遵循哪些基本準則?(ABCD)
A.空閑讓進 B.忙則等待 C.有限等待 D.讓權等待
24 進程進入等待狀態有哪幾種方式?(D)
A CPU調度給優先級更高的線程
B 阻塞的線程獲得資源或者信號
C 在時間片輪轉的情況下,如果時間片到了
D 獲得spinlock未果
25 設計模式中,屬于結構型模式的有哪些?(BC)
A 狀態模式 B 裝飾模式 C 代理模式 D 觀察者模式
二、填空題(共4題10個空,每空2分,共20 分)
1 設有字母序列{Q,D,F,X,A,P,N,B,Y,M,C,W},請寫出按二路歸并方法對該序列進行一趟掃描后的結果為DQFXAPBNMYCW。
2 關鍵碼序列(Q,H,C,Y,Q,A,M,S,R,D,F,X),要按照關鍵碼值遞增的次序進行排序,若采用初始步長為4的Shell的排序法,則一趟掃描的結果是QACSQDFXRHMY;若采用以第一個元素為分界元素的快速排序法,則掃描一趟的結果是FHCDQAMQRSYX。
3 二進制地址為011011110000,大小為(4)10和(16)10塊的伙伴地址分別為:_________,_________。
4 設t是給定的一棵二叉樹,下面的遞歸程序count(t)用于求得:二叉樹t中具有非空的左、右兩個兒子的結點個數N2;只有非空左兒子的個數NL;只有非空右兒子的結點個數NR和葉子結點個數N0。N2,NL,NR、N0都是全局量,且在調用count(t)之前都置為0。
[cpp] view plaincopy
typedef struct node
{
int data;
struct node lchild,rchild;
}node;
int N2,NL,NR,N0;
void count(node t)
{
if (t->lchild!=NULL)
if (t->rchild!=NULL) N2++;
else NL++;
else if (t->rchild!=NULL) NR++;
else N0++;
if(t->lchild!=NULL) count(t->lchild);
if(t->rchild!=NULL) count(t->rchild);
}/ call form :if(t!=NULL) count(t);/
三、Web前端方向簡單題(略)
四、其他方向簡答題(共2題,每題20分),選作題,不計入總分)
1 請設計一個排隊系統,能夠讓每個進入隊伍的用戶都能看到自己在隊列中所處的位置和變化,隊伍可能隨時有人加入和退出;當有人退出影響到用戶的位置排名時需要及時反饋到用戶。
2 A,B兩個整數集合,設計一個算法求他們的交集,盡可能的高效。