微軟、百度、聯想等名企C++筆試題你瞭解嗎?掌握這些筆試題對你很重要!下面就由本站小編為大家介紹一下微軟、百度、聯想等名企C++筆試題的文章,歡迎閱讀。
微軟十五道筆試題篇1
1、有一個整數陣列,請求出兩兩之差絕對值最小的值,記住,只要得出最小值即可,不需要求出是哪兩個數。
2、寫一個函式,檢查字元是否是整數,如果是,返回其整數值。
(或者:怎樣只用4行程式碼編寫出一個從字串到長整形的函式?)
3、給出一個函式來輸出一個字串的所有排列。
4、請編寫實現malloc記憶體分配函式功能一樣的程式碼。
給出一個函式來複制兩個字串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)則不得分。
谷歌八道筆試題篇2
1、正整數序列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)、設計測試資料來驗證函式程式在各種輸入下的正確性。
2、有一個由大小寫組成的字串,現在需要對他進行修改,將其中的所有小寫字母排在答謝字母的前面(大寫或小寫字母之間不要求保持原來次序),如有可能儘量選擇時間和空間效率高的演算法 c語言函式原型void proc(char *str)也可以採用你自己熟悉的語言
3、如何隨機選取1000個關鍵字
給定一個數據流,其中包含無窮盡的搜尋關鍵字(比如,人們在谷歌搜尋時不斷輸入的關鍵字)。如何才能從這個無窮盡的流中隨機的選取1000個關鍵字?
4、判斷一個自然數是否是某個數的平方
說明:當然不能使用開方運算。
5、給定能隨機生成整數1到5的函式,寫出能隨機生成整數1到7的函式。
6、1024! 末尾有多少個0?
7、有5個海盜,按照等級從5到1排列,最大的海盜有權提議他們如何分享100枚金幣。
但其他人要對此表決,如果多數反對,那他就會被殺死。
他應該提出怎樣的方案,既讓自己拿到儘可能多的金幣又不會被殺死?
(提示:有一個海盜能拿到98%的金幣)
8、Google20xx華南地區筆試題
給定一個集合A=[0,1,3,8](該集合中的元素都是在0,9之間的數字,但未必全部包含),
指定任意一個正整數K,請用A中的元素組成一個大於K的最小正整數。
比如,A=[1,0] K=21 那麼輸出結構應該為100。
百度三道筆試題篇3
1、用C語言實現一個revert函式,它的功能是將輸入的字串在原串上倒序後返回。
2、用C語言實現函式void * memmove(void *dest, const void *src, size_t n)。memmove
函式的功能是拷貝src所指的記憶體內容前n個位元組到dest所指的地址上。
分析:由於可以把任何型別的指標賦給void型別的指標,這個函式主要是實現各種資料型別的拷貝。
3、有一根27釐米的細木杆,在第3釐米、7釐米、11釐米、17釐米、23釐米這五個位置上各有一隻螞蟻。
木杆很細,不能同時通過一隻螞蟻。開始時,螞蟻的頭朝左還是朝右是任意的,它們只會朝前走或調頭,但不會後退。
當任意兩隻螞蟻碰頭時,兩隻螞蟻會同時調頭朝反方向走。假設螞蟻們每秒鐘可以走一釐米的距離。
編寫程式,求所有螞蟻都離開木杆的最小時間和最大時間。