微軟 谷歌 百度等公司經典面試100題

2021-05-13 15:50:44 字數 4939 閱讀 7690

微軟十五道面試題

1、有乙個整數陣列,請求出兩兩之差絕對值最小的值,

記住,只要得出最小值即可,不需要求出是哪兩個數。

2、寫乙個函式,檢查字元是否是整數,如果是,返回其整數值。

(或者:怎樣只用4行**編寫出乙個從字串到長整形的函式?)

3、給出乙個函式來輸出乙個字串的所有排列。

4、(a)請編寫實現malloc()記憶體分配函式功能一樣的**。

(b)給出乙個函式來複製兩個字串a和b。字串a的後幾個位元組和字串b的前幾個位元組重疊。

5、怎樣編寫乙個程式,把乙個有序整數陣列放到二叉樹中?

6、怎樣從頂部開始逐層列印二叉樹結點資料?請程式設計。

7、怎樣把乙個鍊錶掉個順序(也就是反序,注意鍊錶的邊界條件並考慮空鍊錶)?

8、請編寫能直接實現int atoi(const char * pstr)函式功能的**。

9、程式設計實現兩個正整數的除法

程式設計實現兩個正整數的除法,當然不能用除法操作符。

// return x/y.

int div(const int x, const int y)

10、在排序陣列中,找出給定數字的出現次數

比如 [1, 2, 2, 2, 3] 中2的出現次數是3次。

11、平面上n個點,每兩個點都確定一條直線,

求出斜率最大的那條直線所通過的兩個點(斜率不存在的情況不考慮)。時間效率越高越好。

12、乙個整數數列,元素取值可能是0~65535中的任意乙個數,相同數值不會重複出現。0是例外,可以反覆出現。

請設計乙個演算法,當你從該數列中隨意選取5個數值,判斷這5個數值是否連續相鄰。

注意:- 5個數值允許是亂序的。比如: 8 7 5 0 6

- 0可以通配任意數值。比如:8 7 5 0 6 中的0可以通配成9或者4

- 0可以多次出現。

- 複雜度如果是o(n2)則不得分。

13、設計乙個演算法,找出二叉樹上任意兩個結點的最近共同父結點。

複雜度如果是o(n2)則不得分。

14、一棵排序二叉樹,令 f=(最大值+最小值)/2,

設計乙個演算法,找出距離f值最近、大於f值的結點。

複雜度如果是o(n2)則不得分。

15、乙個整數數列,元素取值可能是1~n(n是乙個較大的正整數)中的任意乙個數,相同數值不會重複出現。

設計乙個演算法,找出數列中符合條件的數對的個數,滿足數對中兩數的和等於n+1。

複雜度最好是o(n),如果是o(n2)則不得分。

谷歌八道面試題

16、正整數序列q中的每個元素都至少能被正整數a和b中的乙個整除,現給定a和b,需要計算出q中的前幾項,例如,當a=3,b=5,n=6時,序列為3,5,6,9,10,12

(1)、設計乙個函式void generate(int a,int b,int n ,int * q)計算q的前幾項

(2)、設計測試資料來驗證函式程式在各種輸入下的正確性。

17、有乙個由大小寫組成的字串,現在需要對他進行修改,將其中的所有小寫字母排在答謝字母的前面(大寫或小寫字母之間不要求保持原來次序),如有可能盡量選擇時間和空間效率高的演算法 c語言函式原型void proc(char *str) 也可以採用你自己熟悉的語言

18、如何隨機選取1000個關鍵字

給定乙個資料流,其中包含無窮盡的搜尋關鍵字(比如,人們在谷歌搜尋時不斷輸入的關鍵字)。如何才能從這個無窮盡的流中隨機的選取1000個關鍵字?

19、判斷乙個自然數是否是某個數的平方

說明:當然不能使用開方運算。

20、給定能隨機生成整數1到5的函式,寫出能隨機生成整數1到7的函式。

21、1024! 末尾有多少個0?

22、有5個海盜,按照等級從5到1排列,最大的海盜有權提議他們如何分享100枚金幣。

但其他人要對此表決,如果多數反對,那他就會被殺死。

他應該提出怎樣的方案,既讓自己拿到盡可能多的金幣又不會被殺死?

(提示:有乙個海盜能拿到98%的金幣)

23、google2009華南地區筆試題

給定乙個集合a=[0,1,3,8](該集合中的元素都是在0,9之間的數字,但未必全部包含),

指定任意乙個正整數k,請用a中的元素組成乙個大於k的最小正整數。

比如,a=[1,0] k=21 那麼輸出結構應該為100。

百度三道面試題

24、用c語言實現乙個revert函式,它的功能是將輸入的字串在原串上倒序後返回。

25、用c語言實現函式void * memmove(void *dest, const void *src, size_t n)。memmove

函式的功能是拷貝src所指的記憶體內容前n個位元組到dest所指的位址上。

分析:由於可以把任何型別的指標賦給void型別的指標,這個函式主要是實現各種資料型別的拷貝。

26、有一根27厘公尺的細木桿,在第3厘公尺、7厘公尺、11厘公尺、17厘公尺、23厘公尺這五個位置上各有乙隻螞蟻。

木桿很細,不能同時通過乙隻螞蟻。開始時,螞蟻的頭朝左還是朝右是任意的,它們只會朝前走或調頭,但不會後退。

當任意兩隻螞蟻碰頭時,兩隻螞蟻會同時調頭朝反方向走。假設螞蟻們每秒鐘可以走一厘公尺的距離。

編寫程式,求所有螞蟻都離開木桿的最小時間和最大時間。

騰訊七道面試題

27、請定義乙個巨集,比較兩個數a、b的大小,不能使用大於、小於、if語句

28、兩個數相乘,小數點後位數沒有限制,請寫乙個高精度演算法

29、有a、b、c、d四個人,要在夜裡過一座橋。他們通過這座橋分別需要耗時1、2、5、10分鐘,只有一支手電,並且同時最多只能兩個人一起過橋。請問,如何安排,能夠在17分鐘內這四個人都過橋?

30、有12個小球,外形相同,其中乙個小球的質量與其他11個不同,

給乙個天平,問如何用3次把這個小球找出來,並且求出這個小球是比其他的輕還是重

31、在乙個檔案中有 10g 個整數,亂序排列,要求找出中位數。記憶體限制為 2g。只寫出思路即可。

32、乙個檔案中有40億個整數,每個整數為四個位元組,記憶體為1gb,寫出乙個演算法:求出這個檔案裡的整數裡不包含的乙個整數

33、騰訊伺服器每秒有2w個**號同時上線,找出5min內重新登入的**號並列印出來。

雅虎三道面試題

34、程式設計實現:把十進位制數(long型)分別以二進位制和十六進製制形式輸出,不能使用printf系列

35、程式設計實現:找出兩個字串中最大公共子字串,如"abccade","dgcadde"的最大子串為"cad"

36、有雙向迴圈鍊錶結點定義為:

struct node

;有兩個雙向迴圈鍊錶a,b,知道其頭指標為:pheada,pheadb,請寫一函式將兩煉表中data值相同的結點刪除。

聯想五道筆試題

37、1)、設計函式 int atoi(char *s)。

2)、int i=(j=4,k=8,l=16,m=32); printf(「%d」, i); 輸出是多少?

3)、解釋區域性變數、全域性變數和靜態變數的含義。

4)、解釋堆和棧的區別。

5)、論述含引數的巨集與函式的優缺點。

38、順時針列印矩陣

題目:輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。

例如:如果輸入如下矩陣:

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

則依次列印出數字1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10。

分析:包括autodesk、emc在內的多家公司在面試或者筆試裡採用過這道題。

39、對稱子字串的最大長度

題目:輸入乙個字串,輸出該字串中對稱的子字串的最大長度。

比如輸入字串「google」,由於該字串裡最長的對稱子字串是「goog」,因此輸出4。

分析:可能很多人都寫過判斷乙個字串是不是對稱的函式,這個題目可以看成是該函式的加

強版。40、用1、2、2、3、4、5這六個數字,寫乙個main函式,列印出所有不同的排列,

如:512234、412345等,要求:"4"不能在第三位,"3"與"5"不能相連.

41、微軟面試題

乙個有序數列,序列中的每乙個值都能夠被2或者3或者5所整除,1是這個序列的第乙個元素。求第1500個值是多少?

網易五道遊戲筆試題

42、兩個圓相交,交點是a1,a2。現在過a1點做一直線與兩個圓分別相交另外一點b1,b2。

b1b2可以繞著a1點旋轉。問在什麼情況下,b1b2最長

43、**ith夫婦召開宴會,並邀請其他4對夫婦參加宴會。在宴會上,他們彼此握手,

並且滿足沒有乙個人同自己握手,沒有兩個人握手一次以上,並且夫妻之間不握手。

然後mr. **ith問其它客人握手的次數,每個人的答案是不一樣的。

求mrs **ith握手的次數

44、有6種不同顏色的球,分別記為1,2,3,4,5,6,每種球有無數個。現在取5個球,求在一下

的條件下:

1、5種不同顏色,

2、4種不同顏色的球,

3、3種不同顏色的球,

4、2種不同顏色的球,

它們的概率。

45、有一次數學比賽,共有a,b和c三道題目。所有人都至少解答出一道題目,總共有25人。

在沒有答出a的人中,答出b的人數是答出c的人數的兩倍;單單答出a的人,比其他答出a的人

總數多1;在所有只有答出一道題目的人當中,答出b和c的人數剛好是一半。

求只答出b的人數。

46、從尾到頭輸出鍊錶

題目:輸入乙個鍊錶的頭結點,從尾到頭反過來輸出每個結點的值。鍊錶結點定義如下:

struct listnode

;分析:這是一道很有意思的面試題。該題以及它的變體經常出現在各大公司的面試、筆試題中。

47、金幣概率問題(威盛筆試題)

題目:10個房間裡放著隨機數量的金幣。每個房間只能進入一次,並只能在乙個房間中拿金幣。

乙個人採取如下策略:前四個房間只看不拿。隨後的房間只要看到比前四個房間都多的金幣數,

就拿。否則就拿最後乙個房間的金幣。?

百度 谷歌 微軟 MTK經典面試題

1.有乙個整數陣列,請求出兩兩之差絕對值最小的值。記住,只要得出最小值即可,不需要求出是哪兩個數。microsoft 方法1 兩兩作差求絕對值,並取最小,o n2 方法2 排序,相鄰兩點作差求絕對值,並取最小,o nlgn 方法3 有沒有o n 的解法?網上有如下解法 設陣列a 求 s min ai...

微軟 google 雅虎 百度等各大著名公司的經典面試題

微軟十五道面試題 1 有乙個整數陣列,請求出兩兩之差絕對值最小的值,記住,只要得出最小值即可,不需要求出是哪兩個數。2 寫乙個函式,檢查字元是否是整數,如果是,返回其整數值。或者 怎樣只用4行 編寫出乙個從字串到長整形的函式?3 給出乙個函式來輸出乙個字串的所有排列。4 請編寫實現malloc 記憶...

百度谷歌等聯手發布機器學習基準

龍源期刊網 作者 陳曲 中國資訊化週報 2018年第19期 近日,由包括 谷歌 史丹福大學 哈佛大學在內的多家企業和高校聯合發布了一套用於測量和提高機器學習軟硬體效能的國際基準mlperf。其巨大的學術和產業價值獲業界肯定,被認為不僅將加速推進機器學習硬體 軟體相關技術創新,更將對整個ai領域的研發...