當前位置:學問君>學習教育>考研>

歷年淘寶春季實習生招聘筆試題

學問君 人氣:1.21W

1. A,B兩機器用千兆網傳輸,A上每個頁面是1K字節,則B機器下載的限制是()

歷年淘寶春季實習生招聘筆試題

千兆網指的是 1000Mb每秒也就是 1000/8 MB = 125MB的速度,1K字節爲1KB 所以應爲 100 000左右(不知道對不對)

2. 已知單鏈表,把節點q插入到節點p的操作是()

q->link = p->link; p->link = q

3. 用矩形表示世界上的每個國家,最少用()種顏色表示,使得共有邊界的兩個國家不會重色。

4種,地圖的四色定理,但是由於條件比較特殊,國家是矩形,所以筆試時嘗試了下,發現3種確實無法實現,選4種

4.快速排序的平均時間複雜度是O(nlgn),最壞的情況是O(n^2),什麼時候會出現O(n^2)

數組基本有序

5. int i,j,*p;p=&i;問一下哪個表達式是把j賦給i()

*p=*&j;

6. #define F(a,b) a*b,則 F(3+6, 8-5)= ()

46,define是直接替代

7. 一個棧,進棧順序爲1,2,3,…,1—n,n,最先出棧的元素是n,那麼第i個出棧的元素是()

N-i+1,棧是先進後出,既然最先出的是最後一個元素,那麼答案就唯一了

8.樹的後序遍歷是ABC+*DE/-,中序遍歷是,A*B+C-D/E,那麼前序遍歷是()

-*A+BC/DE

二、填空題

1.用數組儲存數據,刪除一個元素的平均需要移動元素的次數((1/2)(n-1))

2.求一個元素全爲正數的數組中的次大元素的程序填空題,其中num >=2

int f(int *a, int num)

{

int number = a[0];

int result = 0;(=0是所填空)

for(int i=1; i

{

if(a[i] > number)

{

result = number;(空)

number = a[i];(空)

}

else if( a[i] > result)

{

result = a[i];(空)

}

}

return result;

}

3.下述函數輸入9999,結果是(8)

Int Fun(int x)

{

int countx = 0;

whike(x)

{

countx++;

x = x & (x-1);

}

return countx;

}

很簡單,其實把9999化成2進制,看有幾個1就是答案了

4. int a[3][2] = {1,2,3,4,5,6}, int *p[3], p[0] = a[1];

問 *(p[0]+1)是幾

4, p[0]指向的位置是 a[1][0],p[0]+1指向的位置自然是a[1][1]啦~

三、綜合題

1. 有7000g的大米,50克和200克的砝碼,要稱出1350g,最小需要稱幾次?

3次

3次的最佳方案是 ,先拿7000和200分出 一份3400,一份3600

‍然後平分3600得到1800

然後 3400-(1800+200+50) = 1350

2. N個雞蛋放到M個籃子中,每個籃子中至少放一個,要滿足的條件:輸入任意一個不大於N的正整數,總有某幾個籃子中的雞蛋數目之和與之相等。寫一個函數,輸入N,M,輸出所有可能的雞蛋放置情況

沒什麼太好的想法,個人覺得很難的一個題,實在不行就遍歷枚舉吧,也算是一種方法

回去之後再好好想想這個題

一、選擇題

1. A,B兩機器用千兆網傳輸,A上每個頁面是1K字節,則B機器下載的限制是()

千兆網指的是可以傳輸1000Mbit/s,答案是:1000M/(1024*8) = 100000bit/s

2. 單鏈表,已知p->link指向p的下一個節點,q指向一個新的節點,把q插入到p之後的操作是()

q->link = p->link; p->link = q

3. 用矩形表示世界上的每個國家,最少用()種顏色表示,使得相鄰的兩個國家不會重色。

3種

4.快速排序在通常情況下時間複雜度是O(nlgn),在()情況下是O(n2)

數組基本排好序的情況

5. int i,j=2,int *p=&i把正確的實現i=j的是(*p=*&j)

int i,j=2,*j=把i=j

6. #define F(a,b) a*b,則 F(3+6, 8-5)= ()

46

7. 一個棧,1—n,最先出棧的元素是n,那麼第i個出棧的元素是()

n-i+1

8.二叉樹遍歷題,答案記着D。前序

二、填空題

1.數組中刪除元素的平均移動次數

(n-1)/2

2.求數組中的`次大元素的程序填空題。result=number;number=data[i];result=data[i];

3.下述函數輸入9999,結果是(8)

Fun(int x)

{

int countx = 0;

whike(x)

{

countx++;

x = x & (x-1);

}

}

4. int a[3][2]={1,2,3,4,5,6};int *p[3];p[0]=a[1];printf("%d",*(p[0]+1));,結果是4

三、綜合題

1. 有7公斤的的米,50克和200克的砝碼,要稱出1350g米,最小需要稱幾次?3次。

第一次:200+50,稱出250g

第二次:200+250,稱出450

第三次:200+450,稱出650

共稱出1350g

2. N個雞蛋放到M個籃子中,每個籃子中至少放一個,要滿足的條件:輸入任意一個不大於N的正整數,總有某幾個籃子中的雞蛋數目之和與之相等。寫一個函數,輸入N,M,輸出所有可能的雞蛋放置情況

本人的做法:按二進制中的1的位置進行存放, M的範圍[logN,N]

3.評論數據處理問題。