當前位置:文思屋>社會工作>求職指導>

阿里巴巴筆試題2015

文思屋 人氣:1.15W

1、設棧S初始狀態為空。元素a,b,c,d,e,f依次通過棧S,若出棧的順序為c,f,e,d,b,a,則棧S的容量至少應該為______ 。

阿里巴巴筆試題2015

· 3

· 4

· 5

· 6

2、10個相同的糖果,分給三個人,每個人至少要得一個。有 種不同分法。

· 33

· 34

· 35

· 36

3、小數值1.5625的二進位制表示是____。

· 101.1001

· 0.001

· 101.111

· 1.1001

4、某二元樹的先序遍歷是12453,中序遍歷是42513,那麼其後續遍歷是______。

· 45231

· 42351

· 12345

· 54321

5、主機甲和主機乙間已建立一個TCP連線,主機甲向主機乙傳送了兩個連續的TCP段,分別包含300位元組和500位元組的有效載荷,第一個段的序列號為200,主機乙正確接收到兩個段後,傳送給主機甲的確認序列號是 。

· 500

· 700

· 800

· 1000

6、在N個亂序數字中查詢第k大的數字,時間複雜度可以減小至 。

· O(N*logN)

· O(N)

· O(1)

· O(N^2)

7、平均速度最快的排序演算法是______。

· Shell排序

· 快速排序

· 氣泡排序

· 插入排序

8、以下指令集架構屬於複雜指令集架構的是____。

· ARM

· MIPS

· SPARC

· 以上皆不是

9、有兩個N*N的矩陣A和B,想要在PC上按矩陣乘法基本演算法程式設計實現計算A*B。假設N較大,本機記憶體也很大,可以存下A、B和結果矩陣。那麼,為了計算速度,A和B在記憶體中應該如何儲存(按行存指先儲存第一行,再第二行,直到最後一行;按列存指先儲存第一列,再第二列,直到最後一列)

· A按行存,B按行存。

· A按行存,B按列存。

· A按列存,B按行存。

· A按列存,B按列存。

10、設一棵二元樹中有3個葉子節點,有8個度為1的節點,則該二元樹中總的節點數為______。

· 12

· 13

· 14

· 15

11、IP資料報頭採用______位元組序,在此位元組序下從低地址到高地址0×1234的表示形式為______。

· big_endian, 0×12 0×34 0 0

· little_endian,0×34 0×12 0 0

· big_endian, 0 0 0×12 0×34

· little_endian,0 0 0×34 0×12

12、下列敘述中正確的是____。

· 迴圈佇列有隊頭和隊尾兩個指標,因此,迴圈佇列是非線性結構

· 在迴圈佇列中,只需要隊頭指標就能反映佇列中元素的動態變化情況

· 在迴圈佇列中,只需要隊尾指標就能反映佇列中元素的動態變化情況

· 迴圈佇列中元素的個數是由隊頭指標和隊尾指標共同決定

13、將一個從大到小的陣列,用以下排序方法排序成從小到大的,______最快。

· 插入排序

· 氣泡排序

· 快速排序

· 堆排序

14、在一個元素個數為N的數組裡,找到升序排在N/5位置的元素的最優演算法時間複雜度是______。

· O(n)

· O(n log n)

· O(n(log n)2)

· O(n 3/2)

15、 已有變數定義和函式呼叫語句;程式設計-程式碼

int a=25;

print_value(&a);

則下面函式的正確輸出結果是______。

void print_value(int* x)

{

printf(“%xn”,++*x);

}

· 25

· 26

· 19

· 1a

16、在二進位制資料中,小數點向右移一位,則資料______。

· 除以10

· 除以2

· 乘以2

· 乘以10

17、設集合A={1,2,3},A上的.關係R={(1,1),(2,2),(2,3),(3,2),(3,3)},則R不具備 。

· 自反性

· 傳遞性

· 對稱性

· 反對稱性

18、下列敘述中正確的是 。

· 迴圈佇列有隊頭和隊尾兩個指標,因此,迴圈佇列是非線性結構

· 在迴圈佇列中,只需要隊頭指標就能反映佇列中元素的動態變化情況

· 在迴圈佇列中,只需要隊尾指標就能反映佇列中元素的動態變化情況

· 迴圈佇列中元素的個數是由隊頭指標和隊尾指標共同決定

19、假定x=500,求下面函式的返回值______ 。

int fun(int x)

{

int countx = 0;

while (x)

{

countx++;

x = x & (x – 1);

}

return countx;

· 2

· 3

· 5

· 6

20、有一臺帶一個千兆網絡卡的伺服器A,會把接收到的訊息轉發給另外兩臺帶一個千兆網絡卡的伺服器B和C,B和C上面的一個服務程序處理一條10K位元組的訊息需要2毫秒。如果在B和C上面各跑80個服務程序,在不考慮CPU負載和程序切換、記憶體佔用、傳輸損耗和互動損耗的情況下,B和C伺服器每秒一共大約可以處理______條10K位元組的訊息。

· 50000

· 60000

· 70000

· 80000

21、以下措施中,有可能改進分散式系統讀寫(IO)效能的有____。

· 網路從千兆網升級為萬兆網

· 優化排程系統,儘量做到任務與資料相近(Locality)

· 資料預取機制

· 實現非同步讀寫機制

22、無鎖化程式設計有哪些常見方法?______ 。

· 針對計數器,可以使用原子加

· 只有一個生產者和一個消費者,那麼就可以做到免鎖訪問環形緩衝區(Ring Buffer)

· RCU(Read-Copy-Update),新舊副本切換機制,對於舊副本可以採用延遲釋放的做法

· CAS(Compare-and-Swap),如無鎖棧,無鎖佇列等待

23、程式

struct T {

char a;

int *d;

int b;

int c:16;

double e;

};

T *p;

在64位系統上以下描述正確的是 。

· sizeof(p) == 8

· sizeof(*p) == 32

· sizeof(p->a) == 1

· sizeof(p->e) == 4

24、下面所述步驟中,是建立程序所必須的步驟是_____。

· 由排程程式為程序分配CPU

· 建立一個程序控制塊

· 為程序分配記憶體

· 為程序分配檔案描述符

25、有一種用左右值表示樹形結構的儲存格式,其中左右值有一些相當有用的場景,但是每個節點的左右值需要遍歷樹形結構計算出來。一個示例:

N[1,12]

|__N[2,7]

| |__N[3,4]

| |__N[5,6]

|__N[8,11]

|__N[9,10]

請完成遍歷演算法給節點賦左右值。

typedef struct node_t {

int left;

int right;

int n_children;

1 children;

} NODE;

int visit(NODE * node, int value) {

node->left = value;

int i = 0;

for(i=0; in_children; i++) {

2

}

3

return value;

}

int initLR(NODE* root) {

return visit(root, 1);

}

26、我們需要在淘寶的商品中提取一批優質商品(有特色、質量好、服務好等),比如需要提取100萬件,準確率要求是95%。我們有n個不同的方法可以提取這些商品,但每個方法在保持準確率滿足要求的情況下都不能做到提取完整的100萬件商品。因此可以把這n個方法得到的滿足要求的商品集按如下方法合併起來:如果一個商品被k個方法選為優質商品,則將它的分數設為k;按照k從大到小排序選取前100萬件。但實際中發現這樣選出的100萬件商品不符合精度要求,請解釋可能的原因。還可以向哪個方向努力?

27、有個學校的15個女生一直3個一群上學。請問該如何安排才能使這些女生每週7天每天都和兩個不同的同伴結伴同行呢?例如:用A到O來標識這些女孩,7天A正好和B到O這14個女孩各同行一次。而B到O每個人和都和其他14個女孩各同行一次。

28、長度為100的環形雙向連結串列,A指標順時針方向每次走3步,B指標逆時針方向每次走5步,每次走完判斷是否相遇,初始狀態B在A逆時針方向相距20,走100次,AB指標能相遇幾次?

29、某招聘筆試共有120人蔘加,考試有6道題。1-6道分別有86人,88人,92人,76人,72人和70人答對,如果答對3道或3道以上通過筆試,問至少有多少人通過?

30、Wait()和sleep()的區別