銀行筆試_產(chǎn)品經(jīng)理筆試題及答案_微軟、百度、聯(lián)想等名企C++筆試題匯總
本文關(guān)鍵詞:百度筆試,由筆耕文化傳播整理發(fā)布。
微軟十五道筆試題
1、有一個整數(shù)數(shù)組,請求出兩兩之差絕對值最小的值,記住,只要得出最小值即可,不需要求出是哪兩個數(shù)。
2、寫一個函數(shù),檢查字符是否是整數(shù),如果是,返回其整數(shù)值。
(或者:怎樣只用4行代碼編寫出一個從字符串到長整形的函數(shù)?)
3、給出一個函數(shù)來輸出一個字符串的所有排列。
4、請編寫實現(xiàn)malloc()內(nèi)存分配函數(shù)功能一樣的代碼。
給出一個函數(shù)來復(fù)制兩個字符串A和B。字符串A的后幾個字節(jié)和字符串B的前幾個字節(jié)重疊。
5、怎樣編寫一個程序,把一個有序整數(shù)數(shù)組放到二叉樹中?
6、怎樣從頂部開始逐層打印二叉樹結(jié)點(diǎn)數(shù)據(jù)?請編程。
7、怎樣把一個鏈表掉個順序(也就是反序,注意鏈表的邊界條件并考慮空鏈表)?
8、請編寫能直接實現(xiàn)int atoi(const char * pstr)函數(shù)功能的代碼。
9、編程實現(xiàn)兩個正整數(shù)的除法
編程實現(xiàn)兩個正整數(shù)的除法,當(dāng)然不能用除法操作符。
// return x/y.
int div(const int x, const int y)
{
....
}
10、在排序數(shù)組中,找出給定數(shù)字的出現(xiàn)次數(shù)
比如 [1, 2, 2, 2, 3] 中2的出現(xiàn)次數(shù)是3次。
11、平面上N個點(diǎn),每兩個點(diǎn)都確定一條直線,
求出斜率最大的那條直線所通過的兩個點(diǎn)(斜率不存在的情況不考慮)。時間效率越高越好。
12、一個整數(shù)數(shù)列,元素取值可能是0~65535中的任意一個數(shù),相同數(shù)值不會重復(fù)出現(xiàn)。0是例外,可以反復(fù)出現(xiàn)。
請設(shè)計一個算法,當(dāng)你從該數(shù)列中隨意選取5個數(shù)值,判斷這5個數(shù)值是否連續(xù)相鄰。
注意:
- 5個數(shù)值允許是亂序的。比如: 8 7 5 0 6
- 0可以通配任意數(shù)值。比如:8 7 5 0 6 中的0可以通配成9或者4
- 0可以多次出現(xiàn)。
- 復(fù)雜度如果是O(n2)則不得分。
13、設(shè)計一個算法,找出二叉樹上任意兩個結(jié)點(diǎn)的最近共同父結(jié)點(diǎn)。
復(fù)雜度如果是O(n2)則不得分。
14、一棵排序二叉樹,令 f=(最大值+最小值)/2,
設(shè)計一個算法,找出距離f值最近、大于f值的結(jié)點(diǎn)。
復(fù)雜度如果是O(n2)則不得分。
15、一個整數(shù)數(shù)列,元素取值可能是1~N(N是一個較大的正整數(shù))中的任意一個數(shù),相同數(shù)值不會重復(fù)出現(xiàn)。
設(shè)計一個算法,找出數(shù)列中符合條件的數(shù)對的個數(shù),滿足數(shù)對中兩數(shù)的和等于N+1。
復(fù)雜度最好是O(n),如果是O(n2)則不得分。
谷歌八道筆試題
16、正整數(shù)序列Q中的每個元素都至少能被正整數(shù)a和b中的一個整除,現(xiàn)給定a和b,需要計算出Q中的前幾項,例如,當(dāng)a=3,b=5,N=6時,序列為3,5,6,9,10,12
(1)、設(shè)計一個函數(shù)void generate(int a,int b,int N ,int * Q)計算Q的前幾項
(2)、設(shè)計測試數(shù)據(jù)來驗證函數(shù)程序在各種輸入下的正確性。
17、有一個由大小寫組成的字符串,現(xiàn)在需要對他進(jìn)行修改,將其中的所有小寫字母排在答謝字母的前面(大寫或小寫字母之間不要求保持原來次序),如有可能盡量選擇時間和空間效率高的算法 c語言函數(shù)原型void proc(char *str)也可以采用你自己熟悉的語言
18、如何隨機(jī)選取1000個關(guān)鍵字
給定一個數(shù)據(jù)流,其中包含無窮盡的搜索關(guān)鍵字(比如,人們在谷歌搜索時不斷輸入的關(guān)鍵字)。如何才能從這個無窮盡的流中隨機(jī)的選取1000個關(guān)鍵字?
19、判斷一個自然數(shù)是否是某個數(shù)的平方
說明:當(dāng)然不能使用開方運(yùn)算。
20、給定能隨機(jī)生成整數(shù)1到5的函數(shù),寫出能隨機(jī)生成整數(shù)1到7的函數(shù)。
21、1024! 末尾有多少個0?
22、有5個海盜,按照等級從5到1排列,最大的海盜有權(quán)提議他們?nèi)绾畏窒?00枚金幣。
但其他人要對此表決,如果多數(shù)反對,那他就會被殺死。
他應(yīng)該提出怎樣的方案,既讓自己拿到盡可能多的金幣又不會被殺死?
(提示:有一個海盜能拿到98%的金幣)
23、Google2009華南地區(qū)筆試題
給定一個集合A=[0,1,3,8](該集合中的元素都是在0,9之間的數(shù)字,但未必全部包含),
指定任意一個正整數(shù)K,請用A中的元素組成一個大于K的最小正整數(shù)。
比如,A=[1,0] K=21 那么輸出結(jié)構(gòu)應(yīng)該為100。
百度三道筆試題
24、用C語言實現(xiàn)一個revert函數(shù),它的功能是將輸入的字符串在原串上倒序后返回。
25、用C語言實現(xiàn)函數(shù)void * memmove(void *dest, const void *src, size_t n)。memmove
函數(shù)的功能是拷貝src所指的內(nèi)存內(nèi)容前n個字節(jié)到dest所指的地址上。
分析:由于可以把任何類型的指針賦給void類型的指針,這個函數(shù)主要是實現(xiàn)各種數(shù)據(jù)類型的拷貝。
26、有一根27厘米的細(xì)木桿,在第3厘米、7厘米、11厘米、17厘米、23厘米這五個位置上各有一只螞蟻。
木桿很細(xì),不能同時通過一只螞蟻。開始時,螞蟻的頭朝左還是朝右是任意的,它們只會朝前走或調(diào)頭,但不會后退。
當(dāng)任意兩只螞蟻碰頭時,兩只螞蟻會同時調(diào)頭朝反方向走。假設(shè)螞蟻們每秒鐘可以走一厘米的距離。
編寫程序,求所有螞蟻都離開木桿的最小時間和最大時間。
騰訊七道筆試題
27、請定義一個宏,比較兩個數(shù)a、b的大小,不能使用大于、小于、if語句
28、兩個數(shù)相乘,,小數(shù)點(diǎn)后位數(shù)沒有限制,請寫一個高精度算法
29、有A、B、C、D四個人,要在夜里過一座橋。他們通過這座橋分別需要耗時1、2、5、10分鐘,只有一支手電,并且同時最多只能兩個人一起過橋。請問,如何安排,能夠在17分鐘內(nèi)這四個人都過橋?
30、有12個小球,外形相同,其中一個小球的質(zhì)量與其他11個不同,
給一個天平,問如何用3次把這個小球找出來,并且求出這個小球是比其他的輕還是重
31、在一個文件中有 10G 個整數(shù),亂序排列,要求找出中位數(shù)。內(nèi)存限制為 2G。只寫出思路即可。
32、一個文件中有40億個整數(shù),每個整數(shù)為四個字節(jié),內(nèi)存為1GB,寫出一個算法:求出這個文件里的整數(shù)里不包含的一個整數(shù)
33、騰訊服務(wù)器每秒有2w個QQ號同時上線,找出5min內(nèi)重新登入的qq號并打印出來。
雅虎三道筆試題
34、編程實現(xiàn):把十進(jìn)制數(shù)(long型)分別以二進(jìn)制和十六進(jìn)制形式輸出,不能使用printf系列
35、編程實現(xiàn):找出兩個字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串為"cad"
36、有雙向循環(huán)鏈表結(jié)點(diǎn)定義為:
struct node
{
int data;
struct node *front,*next;
};
有兩個雙向循環(huán)鏈表A,B,知道其頭指針為:pHeadA,pHeadB,請寫一函數(shù)將兩鏈表中data值相同的結(jié)點(diǎn)刪除。
聯(lián)想五道筆試題
37、1)、設(shè)計函數(shù) int atoi(char *s)。
2)、int i=(j=4,k=8,l=16,m=32); printf(“%d”, i); 輸出是多少?
3)、解釋局部變量、全局變量和靜態(tài)變量的含義。
4)、解釋堆和棧的區(qū)別。
5)、論述含參數(shù)的宏與函數(shù)的優(yōu)缺點(diǎn)。
38、順時針打印矩陣
題目:輸入一個矩陣,按照從外向里以順時針的順序依次打印出每一個數(shù)字。
例如:如果輸入如下矩陣:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
則依次打印出數(shù)字1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10。
分析:包括Autodesk、EMC在內(nèi)的多家公司在面試或者筆試?yán)锊捎眠^這道題。
39、對稱子字符串的最大長度
題目:輸入一個字符串,輸出該字符串中對稱的子字符串的最大長度。
比如輸入字符串“google”,由于該字符串里最長的對稱子字符串是“goog”,因此輸出4。
分析:可能很多人都寫過判斷一個字符串是不是對稱的函數(shù),這個題目可以看成是該函數(shù)的加
強(qiáng)版。
40、用1、2、2、3、4、5這六個數(shù)字,寫一個main函數(shù),打印出所有不同的排列,
如:512234、412345等,要求:"4"不能在第三位,"3"與"5"不能相連.
41、微軟筆試題
一個有序數(shù)列,序列中的每一個值都能夠被2或者3或者5所整除,1是這個序列的第一個元素。求第1500個值是多少?
網(wǎng)易五道游戲筆試題
42、兩個圓相交,交點(diǎn)是A1,A2。現(xiàn)在過A1點(diǎn)做一直線與兩個圓分別相交另外一點(diǎn)B1,B2。
B1B2可以繞著A1點(diǎn)旋轉(zhuǎn)。問在什么情況下,B1B2最長
43、Smith夫婦召開宴會,并邀請其他4對夫婦參加宴會。在宴會上,他們彼此握手,
并且滿足沒有一個人同自己握手,沒有兩個人握手一次以上,并且夫妻之間不握手。
然后Mr. Smith問其它客人握手的次數(shù),每個人的答案是不一樣的。
求Mrs Smith握手的次數(shù)
44、有6種不同顏色的球,分別記為1,2,3,4,5,6,每種球有無數(shù)個,F(xiàn)在取5個球,求在一下的條件下:
1、5種不同顏色,
2、4種不同顏色的球,
3、3種不同顏色的球,
4、2種不同顏色的球,
它們的概率。
45、有一次數(shù)學(xué)比賽,共有A,B和C三道題目。所有人都至少解答出一道題目,總共有25人。
在沒有答出A的人中,答出B的人數(shù)是答出C的人數(shù)的兩倍;單單答出A的人,比其他答出A的人總數(shù)多1;在所有只有答出一道題目的人當(dāng)中,答出B和C的人數(shù)剛好是一半。
求只答出B的人數(shù)。
46、從尾到頭輸出鏈表
題目:輸入一個鏈表的頭結(jié)點(diǎn),從尾到頭反過來輸出每個結(jié)點(diǎn)的值。鏈表結(jié)點(diǎn)定義如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
分析:這是一道很有意思的面試題。該題以及它的變體經(jīng)常出現(xiàn)在各大公司的面試、筆試題中。
47、金幣概率問題(威盛筆試題)
題目:10個房間里放著隨機(jī)數(shù)量的金幣。每個房間只能進(jìn)入一次,并只能在一個房間中拿金幣。
一個人采取如下策略:前四個房間只看不拿。隨后的房間只要看到比前四個房間都多的金幣數(shù),就拿。否則就拿最后一個房間的金幣?
編程計算這種策略拿到最多金幣的概率。
48、找出數(shù)組中唯一的重復(fù)元素
1-1000放在含有1001個元素的數(shù)組中,只有唯一的一個元素值重復(fù),其它均只出現(xiàn)一次.
每個數(shù)組元素只能訪問一次,設(shè)計一個算法,將它找出來;不用輔助存儲空間,能否設(shè)計一個算法實現(xiàn)?
49、08百度校園招聘的一道筆試題
題目大意如下:
一排N(最大1M)個正整數(shù)+1遞增,亂序排列,第一個不是最小的,把它換成-1,
最小數(shù)為a且未知求第一個被-1替換掉的數(shù)原來的值,并分析算法復(fù)雜度。
50、一道SPSS筆試題求解
題目:輸入四個點(diǎn)的坐標(biāo),求證四個點(diǎn)是不是一個矩形
關(guān)鍵點(diǎn):
1.相鄰兩邊斜率之積等于-1,
2.矩形邊與坐標(biāo)系平行的情況下,斜率無窮大不能用積判斷。
3.輸入四點(diǎn)可能不按順序,需要對四點(diǎn)排序。
51、矩陣式螺旋輸出
52、求兩個或N個數(shù)的最大公約數(shù)和最小公倍數(shù)。
53、最長遞增子序列
題目描述:設(shè)L=是n個不同的實數(shù)的序列,L的遞增子序列是這樣一個子序列
Lin=,其中k1
求最大的m值。
54、字符串原地壓縮
題目描述:“eeeeeaaaff" 壓縮為 "e5a3f2",請編程實現(xiàn)。
55、字符串匹配實現(xiàn)
請以倆種方法,回溯與不回溯算法實現(xiàn)。
56、一個含n個元素的整數(shù)數(shù)組至少存在一個重復(fù)數(shù),
請編程實現(xiàn),在O(n)時間內(nèi)找出其中任意一個重復(fù)數(shù)。
57、求最大重疊區(qū)間大小
題目描述:請編寫程序,找出下面“輸入數(shù)據(jù)及格式”中所描述的輸入數(shù)據(jù)文件中最大重疊區(qū)間的大小。
對一個正整數(shù) n ,如果n在數(shù)據(jù)文件中某行的兩個正整數(shù)(假設(shè)為A和B)之間,即A<=n<=B或A>=n>=B ,則 n 屬于該行;
如果 n 同時屬于行i和j ,則i和j有重疊區(qū)間;重疊區(qū)間的大小是同時屬于行i和j的整數(shù)個數(shù)。
例如,行(10 20)和(12 25)的重疊區(qū)間為 [12 20] ,其大小為9,行(20 10)和( 20 30 )的重疊區(qū)間大小為 1 。
58、整數(shù)的素數(shù)和分解問題
歌德巴赫猜想說任何一個不小于6的偶數(shù)都可以分解為兩個奇素數(shù)之和。
對此問題擴(kuò)展,如果一個整數(shù)能夠表示成兩個或多個素數(shù)之和,則得到一個素數(shù)和分解式。
對于一個給定的整數(shù),輸出所有這種素數(shù)和分解式。
注意,對于同構(gòu)的分解只輸出一次(比如5只有一個分解2 + 3,而3 + 2是2 + 3的同構(gòu)分解式)。
例如,對于整數(shù)8,可以作為如下三種分解:
(1) 8 = 2 + 2 + 2 + 2
(2) 8 = 2 + 3 + 3
(3) 8 = 3 + 5
59、google的一道面試題
題目:
輸入a1,a2,...,an,b1,b2,...,bn,
在O(n)的時間,O(1)的空間將這個序列順序改為a1,b1,a2,b2,a3,b3,...,an,bn,
且不需要移動,通過交換完成,只需一個交換空間。
例如,N=9時,第2步執(zhí)行后,實際上中間位置的兩邊對稱的4個元素基本配對,
只需交換中間的兩個元素即可,如下表所示。顏色表示每次要交換的元素,左邊向右交換,右邊向左交換。
交換過程如下表所示
?換x1,x3;交換x2,x4;再交換中間的x1,x4;交換y1,y2。
60、百度筆試題
給定一個存放整數(shù)的數(shù)組,重新排列數(shù)組使得數(shù)組左邊為奇數(shù),右邊為偶數(shù)。
要求:空間復(fù)雜度O(1),時間復(fù)雜度為O(n)。
--博才網(wǎng)本文關(guān)鍵詞:百度筆試,由筆耕文化傳播整理發(fā)布。
本文編號:74549
本文鏈接:http://www.sikaile.net/wenshubaike/jyzy/74549.html