阿里巴巴軟件研發(fā)工程師筆試題和面試題答案

思而思學(xué)網(wǎng)

1. 單選題

1. 假設(shè)把整數(shù)關(guān)鍵碼K散列到N個(gè)槽列表,以下哪些散列函數(shù)是好的散列函數(shù)

A: h(K)=K/N;

B: h(K)=1;

C: h(K)=K mod N;

D: h(K)=(K+rand(N)) mod N, rand(N)返回0到N-1的整數(shù)

答案:D

2. 下面排序算法中,初始數(shù)據(jù)集的排列順序?qū)λ惴ǖ男阅軣o(wú)影響的是:

A: 堆排序 B:插入排序

C: 冒泡排序 D:快速排序

答案:A(插入排序:最優(yōu)時(shí)間復(fù)雜度O(n)最差時(shí)間復(fù)雜度O(n^2)平均時(shí)間復(fù)雜度O(n^2)

冒泡排序:最優(yōu)時(shí)間復(fù)雜度O(n)最差時(shí)間復(fù)雜度O(n^2)平均時(shí)間復(fù)雜度O(n^2)

快速排序:最優(yōu)時(shí)間復(fù)雜度O(nlogn)最差時(shí)間復(fù)雜度O(n^2)平均時(shí)間復(fù)雜度O(nlogn)

堆排序:最優(yōu)時(shí)間復(fù)雜度O(nlogn)最差時(shí)間復(fù)雜度O(nlogn)平均時(shí)間復(fù)雜度O(nlogn))

3. 下面說(shuō)法錯(cuò)誤的是:

A: CISC計(jì)算機(jī)比RISC計(jì)算機(jī)指令多

B: 在指令格式中,采用擴(kuò)展操作碼設(shè)計(jì)方案的目的是為了保持指令字長(zhǎng)不變而增加尋址空間

C:增加流水線段數(shù)理論上可以提高CPU頻率

D:馮諾依曼體系結(jié)構(gòu)的主要特征是存儲(chǔ)程序的工作方式

答案:B

4. 不屬于馮諾依曼體系結(jié)構(gòu)必要組成部分是:

A:CPU B: Cache C:RAM D:ROM

答案:B

5. 一個(gè)棧的入棧序列式ABCDE則不可能的出棧序列是:

A:DECBA B:DCEBA C:ECDBA D:ABCDE

答案:C

6.你認(rèn)為可以完成編寫一個(gè)C語(yǔ)言編譯器的語(yǔ)言是:

A:匯編 B:C語(yǔ)言 C:VB D:以上全可以

答案:D

7. 關(guān)于C++/JAVA類中的static成員和對(duì)象成員的說(shuō)法正確的是:

A:static成員變量在對(duì)象構(gòu)造時(shí)候生成

B: static成員函數(shù)在對(duì)象成員函數(shù)中無(wú)法調(diào)用

C: 虛成員函數(shù)不可能是static成員函數(shù)

D: static成員函數(shù)不能訪問static成員變量

答案:A

9:某進(jìn)程在運(yùn)行過(guò)程中需要等待從磁盤上讀入數(shù)據(jù),此時(shí)進(jìn)程的狀態(tài)將:

A: 從就緒變?yōu)檫\(yùn)行 B:從運(yùn)行變?yōu)榫途w

C: 從運(yùn)行變?yōu)樽枞?D:從阻塞變?yōu)榫途w

答案:C

10:下面算法的時(shí)間復(fù)雜度為:

Int f(unsigned int n)

{

If(n==0||n==1)

Return 1;

Else

Return nf(n-1);

}

A: O(1) B:O(n) C:O(NN) D:O(n!)

答案:B

11: n從1開始,每個(gè)操作可以選擇對(duì)n加1或者對(duì)n加倍。若想獲得整數(shù)2015,最少需要多少個(gè)操作。

A:18 B:24 C:21 D;不可能

答案:A, 對(duì)2015用除法,顯示2015->2015->1006->503->502->251->250->125->124->62->31->30->15->14->7->6->3->2->1

正向只能是+1和×2,所以逆向只能-1和/2,由上過(guò)程可得18次

12:對(duì)于一個(gè)具有n個(gè)頂點(diǎn)的無(wú)向圖,若采用鄰接表數(shù)據(jù)結(jié)構(gòu)表示,則存放表頭節(jié)點(diǎn)的數(shù)組大小為:

A: n B: n+1 C: n-1 D:n+邊數(shù)

答案:A

13:

答案:A.對(duì)于幾何中的每個(gè)字符串取hash可以看作是同分布的獨(dú)立重復(fù)事件,所以每一個(gè)事件出現(xiàn)10的概率都是p=1/1024,那么當(dāng)出現(xiàn)的時(shí)候,期望的次數(shù)就是1/p,1024.

14:如下函數(shù),在32bit系統(tǒng)foo(2^31-3)的值是:

Int foo(int x)

{

Return x&-x;

}

A: 0 B: 1 C:2 D:4

答案:B

15:對(duì)于順序存儲(chǔ)的線性數(shù)組,訪問節(jié)點(diǎn)和增加節(jié)點(diǎn)刪除節(jié)點(diǎn)的時(shí)間復(fù)雜度為:

A: O(n),O(n)B:O(n),O(1) C:O(1),O(n) D:O(n),O(n)

答案:C

16:在32為系統(tǒng)環(huán)境,編譯選項(xiàng)為4字節(jié)對(duì)齊,那么sizeof(A)和sizeof(B)是:

Struct A

{

Int a;

short b;

int c;

char d;

};

Struct B

{

int a;

short b;

char c;

int c;

};

A: 16,16 B:13,12 C:16,12D:11,16

答案:C

17:袋中有紅球,黃球,白球各一個(gè),每次任意取一個(gè)放回,如此連續(xù)3次,則下列事件中概率是8/9的是:

A: 顏色不全相同 B:顏色全不相同C:顏色全相同D:顏色無(wú)紅色

答案:A

18:一個(gè)洗牌程序的功能是將n張牌的順序打亂,以下關(guān)于洗牌程序的功能定義說(shuō)法最恰當(dāng)?shù)氖牵?/p>

A: 每張牌出現(xiàn)在n個(gè)位置上的概率相等

B: 每張牌出現(xiàn)在n個(gè)位置上的概率獨(dú)立

C: 任何連續(xù)位置上的兩張牌的內(nèi)容獨(dú)立

D: n張牌的任何兩個(gè)不同排列出現(xiàn)的概率相等

答案:A

19:用兩種顏色去染排成一個(gè)圈的6個(gè)棋子,如果通過(guò)旋轉(zhuǎn)得到則只算一種,一共有多少種染色:

A: 10 B:11 C:14: D:15

答案:C

解釋:應(yīng)該有14種方案,設(shè)只有黑白兩色,默認(rèn)白色,那么,用p(n)表示有n個(gè)黑棋的種類

p(0)=p(6)=1

p(1)=p(5)=1

p(2)=p(4)=3 //相鄰的一種,隔一個(gè)的一種,兩個(gè)的一種

p(3)=4 //都相鄰的一種,BB0B的一種,BB00B的一種,B0B0B的一種,一共4種

綜上是14種

20:遞歸式的先序遍歷一個(gè)n節(jié)點(diǎn),深度為d的二叉樹,則需要?臻g的大小為:

A: O(n) B:O(d) C:O(logn) D:(nlogn)

答案:B

熱門推薦

最新文章