找工作學習筆記2------阿里巴巴實習生筆試題(含答案)

塵封的記憶0發表於2017-03-03

1、動態連結庫的優點?

答:共享、開發速度快,減少頁面交換。擴充一下,靜態連結庫的優點:(1) 程式碼裝載速度快,執行速度略比動態連結庫快; (2) 只需保證在開發者的計算機中有正確的.LIB檔案,在以二進位制形式釋出程式時不需考慮在使用者的計算機上.LIB檔案是否存在及版本問題,可避免DLL地域等問題。 

2.、n個數值選出最大m個數(3<m<n)的最小演算法複雜度是

答:O(n)

3、由權值分別為1、12、13、4、8的葉子節點生成一顆哈夫曼樹,它的帶權路徑長度為()

答:81。

4、阿里巴巴國際站的股票程式碼是1688,這個數字具有這樣的特性,首先是個首位為1的4位數,其次恰巧有且僅有1個數字出現了兩次。類似的數字還有:1861,1668等。這樣的數字一共有()個。

答:分兩種情況,重複數字是1和重複數字不是1.用排列組合的方法來計算比較快。


(1)若這個四位數的重複數字為1,那麼首先從三個空位中選出一個給1,第二步從剩下9個可選數字中選出2個有序的排列到剩下的兩個空位中去,那麼有C(1,3)*A(2,9)=3*(9!/(9-2)!)=3*9*8=216種可能;
(2)若這個四位數的重複數字不為1,那麼首先從9個可選數字中選出一個作為重複數字(C(1,9)),並放到三個空位中的兩個(這兩個數字相同,故只涉及組合)(C(2, 3)),然後從剩下8個數字中選出一個(它的位置在重複數字確定後就自然固定了,不可選)即可,故有C(1,9)*C(2, 3)*C(1, 8)=216種可能。
總共:216+216=432
5、工程師M發明了一種遊戲:M將一個小球隨機放入完全相同的三個盒子中的某一個,玩家選中裝有球的盒子即獲勝;開始時M會讓玩家選擇一個盒子(選擇任何一個獲勝概率均為1/3);玩家做出選擇後,M會開啟沒有被選擇的兩個盒子中的一個空盒,此時M會詢問玩家是否更改選擇(可以堅持第一次選擇,也可以選擇另一個沒有開啟的盒子),下列敘述正確的有()。

6、以下哪種方式,在讀取磁碟上多個順序資料塊時的效率最高?
答:通道方式>DMA方式>中斷控制方式>程式直接訪問方式(迴圈檢測IO方式)
7、下列不是程式間的通訊方式的是()
答:回撥(這屬於一種程式設計機制)
8、已知IBM的PowerPC是big-endian位元組序列而Intel的X86是little-endian位元組序,如果在地址啊儲存的整形值時0x04030201,那麼地址為a+3的位元組記憶體儲的值在PowerPC和Intel X86結構下的值分別是? 答:1 4
9、在TCP/IP建立連線過程中,客戶端或伺服器的狀態轉移說法錯誤的是?
答:TIME_WAIT是斷開連線時的狀態(屬於第四次握手)
10、已知一棵二叉樹的先序和中序遍歷序列如下:先序:A、B、C、D、E、F、G、H、I,J中序:C、B、A、E、F、D、I、H、J、G其後序遍歷序列為:
答:C、B、F、E、I、J、H、G、D、A 先序,中序,後序,這裡面的先中後,都是根的位置。
11、有四個元素A、B、C、D順序進棧,在進棧過程中可以出棧,出棧次序錯誤的排列是
答:DCAB,沒什麼難度,這道題
12、
#pragma pack(2)
class BU
{
    int number;
    union UBffer
    {
        char buffer[13];
        int number;
    }ubuf;
    void foo(){}
    typedef char*(*f)(void*);
    enum{hdd,ssd,blueray}disk;
}bu;


sizeof(bu)的值是()

答:4+14 +0 +0 +4 = 22;union的大小取決於它所有的成員中,佔用空間最大的一個成員的大小,並且需要記憶體對齊,這裡因為#pragma pack(2),所以union的大小為14,如果不寫#pragma pack(2),那麼union大小為16【因為與sizeof(int)=4對齊】;此外,這裡還有一個坑人的地方,enum這裡有變數,就是disk,這裡比較坑人,申明和定義寫在一起,很容易吧disk看成是enum的命名。

13、同一個程式中的執行緒不共享的部分是()

答:棧空間;

14、下面關於系統呼叫的描述中

答:呼叫程式是執行在使用者態,而被呼叫的程式是執行在系統態。

15、在動態分割槽分配方案中,系統回收主存,合併空閒空間時需修改空閒區表,以下哪種情況空閒區會減1?

答:有上鄰空閒區,也有下鄰空閒區

17、剛畢業的小王上班有兩路公交車都可以從家到公司.如果只等A車,平均需要5分鐘才等到;如果只等B車,平均需要7分鐘才能等到.假定兩輛車執行時間獨立,那麼小王平均需要等多長時間才能等到A車或B車?

答:2分55秒。在時間t內,A車t/5趟, B車t/7趟,所以在t內等到車共計t/5+t/7趟,等到一趟的時間則為t/(t/5+t/7),等價35/12,

18、一個黑色袋子中裝有5個紅球,5個藍球,5個黃球,從中抽取三次,每次抽一個球,取完不放回,則每種顏色球各得一個的概率是()

答:25/91。

最開始是0個球,第一次不管怎麼選都會選一個和以前不同顏色的球,所以第一次選擇顏色不同的球概率為1;
第一次選擇之後,還剩14個球,其中 被第一次選走的那個顏色只有4個,剩下的兩種顏色的球個數不變,都為5,
然後選一個與第一次顏色不同的球的概率是:10/14, 這是第二次選擇
第二次選擇之後,還剩13個球,其中被第一次和第二次選中的球,各有4個,剩下的沒選到顏色的球還是5個,這次選中
還沒選到的這個顏色的球的概率是:5/13
所以選擇三個不同顏色總的概率為:1*(10/14)*(5/13) = 25/91.

19、

#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
	int* pint = 0;
	pint += 6;
	cout << pint << endl;
	printf("%d\n", pint);
	return 0;

}

以上程式的執行結果是:24


不懂的可以加我的QQ群:261035036(IT程式設計師面試寶典

群) 歡迎你到來哦,看了博文給點腳印唄,謝謝啦~~


相關文章