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

美團網研發工程師筆試題

學問君 人氣:7.42K

1. 有一個隨機數發生器,以概率P產生0,概率(1-P)產生1,請問能否利用這個隨機數發 生器,構造出新的發生器,以1/2的概率產生0和1。請寫明結論及推理過程。

美團網研發工程師筆試題

2. 一個棧的.入棧序列是A,B,C,D,E,則棧的不可能的輸出序列是( ) A. EDCBA; B. DECBA; B D,ABCDE

3. 4個足球隊打小組單循環,計分方式:勝3分平1分負0分,如果計分相同,則淨勝球 多的隊伍排名靠前,如果淨勝球還一樣,則進球多的球隊排名靠前。小組前兩名出線。問可能出線的最低分數是多少。請說明推理過程。 備註:單循環賽是指所有參加比賽的隊兩兩之間都比賽一次,最後按各隊在全部比賽中的積分,得失分率排列名次。

4. 從1到1000000的所有自然數,數字“1”一共出現了多少次?例:自然數101中,數 字“1”出現了2次,自然數1011中,數字“1”出現了3次,請寫明計算過程及結果

5. 以下代碼是把一個字元串倒序,如“abcd”倒序後變爲“dcba”。請找出下面代碼中的 所有錯誤,直接在代碼的右側空白處修改。

#include"string.h"

main()

{

char*src="hello,world";

char*dest=NULL;

int len = strlen(src);

dest = (char*)malloc(len);

char* d = dest;

char* s = src[len];

while(len--!=0)

d++ = s --;

printf("%s",dest);

return 0;

}

6. 以下代碼功能:找出一個有序(字典序)字元串數組arr種值等於字元串v的元素的符號, 如果有多個元素滿足這個條件,則返回其中序號最大的。請找出下面代碼中所有錯誤,直接在代碼右側空白處修改

Int bisearch(char**arr, int b, int e, char*v){

Int minIndex = b, maxIndex = e, midIndex;

while(minIndex

midIndex=(minIndex+maxIndex)/2;

if(strcmp(arr[midIndx],v<=0)){

minIndex = midIndex;

}else{

maxIndex=minIndex;

}

}

if(!strcmp(arr[maxIndex],v)){

return maxIndex;

}else{

return -1;

}

}

7. 字元串ABCD,可以由字元串BCDA或者CDAB透過循環移位而得到。請編程實現以下 檢測:字元串S1是否可以由字元串S2透過循環移位而得到。 語言不限(推薦C/C++,不推薦寫僞碼)