學(xué)習(xí)啦>創(chuàng)業(yè)指南>職場(chǎng)>筆試題>

微軟、百度、聯(lián)想等名企C++筆試題

時(shí)間: 護(hù)托1061 分享

  微軟、百度、聯(lián)想等名企C++筆試題你了解嗎?掌握這些筆試題對(duì)你很重要!下面就由學(xué)習(xí)啦小編為大家介紹一下微軟、百度、聯(lián)想等名企C++筆試題的文章,歡迎閱讀。

  微軟十五道筆試題篇1

  1、有一個(gè)整數(shù)數(shù)組,請(qǐng)求出兩兩之差絕對(duì)值最小的值,記住,只要得出最小值即可,不需要求出是哪兩個(gè)數(shù)。

  2、寫(xiě)一個(gè)函數(shù),檢查字符是否是整數(shù),如果是,返回其整數(shù)值。

  (或者:怎樣只用4行代碼編寫(xiě)出一個(gè)從字符串到長(zhǎng)整形的函數(shù)?)

  3、給出一個(gè)函數(shù)來(lái)輸出一個(gè)字符串的所有排列。

  4、請(qǐng)編寫(xiě)實(shí)現(xiàn)malloc()內(nèi)存分配函數(shù)功能一樣的代碼。

  給出一個(gè)函數(shù)來(lái)復(fù)制兩個(gè)字符串A和B。字符串A的后幾個(gè)字節(jié)和字符串B的前幾個(gè)字節(jié)重疊。

  5、怎樣編寫(xiě)一個(gè)程序,把一個(gè)有序整數(shù)數(shù)組放到二叉樹(shù)中?

  6、怎樣從頂部開(kāi)始逐層打印二叉樹(shù)結(jié)點(diǎn)數(shù)據(jù)?請(qǐng)編程。

  7、怎樣把一個(gè)鏈表掉個(gè)順序(也就是反序,注意鏈表的邊界條件并考慮空鏈表)?

  8、請(qǐng)編寫(xiě)能直接實(shí)現(xiàn)int atoi(const char * pstr)函數(shù)功能的代碼。

  9、編程實(shí)現(xiàn)兩個(gè)正整數(shù)的除法

  編程實(shí)現(xiàn)兩個(gè)正整數(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個(gè)點(diǎn),每?jī)蓚€(gè)點(diǎn)都確定一條直線,

  求出斜率最大的那條直線所通過(guò)的兩個(gè)點(diǎn)(斜率不存在的情況不考慮)。時(shí)間效率越高越好。

  12、一個(gè)整數(shù)數(shù)列,元素取值可能是0~65535中的任意一個(gè)數(shù),相同數(shù)值不會(huì)重復(fù)出現(xiàn)。0是例外,可以反復(fù)出現(xiàn)。

  請(qǐng)?jiān)O(shè)計(jì)一個(gè)算法,當(dāng)你從該數(shù)列中隨意選取5個(gè)數(shù)值,判斷這5個(gè)數(shù)值是否連續(xù)相鄰。

  注意:

  - 5個(gè)數(shù)值允許是亂序的。比如: 8 7 5 0 6

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

  - 0可以多次出現(xiàn)。

  - 復(fù)雜度如果是O(n2)則不得分。

  13、設(shè)計(jì)一個(gè)算法,找出二叉樹(shù)上任意兩個(gè)結(jié)點(diǎn)的最近共同父結(jié)點(diǎn)。

  復(fù)雜度如果是O(n2)則不得分。

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

  設(shè)計(jì)一個(gè)算法,找出距離f值最近、大于f值的結(jié)點(diǎn)。

  復(fù)雜度如果是O(n2)則不得分。

  15、一個(gè)整數(shù)數(shù)列,元素取值可能是1~N(N是一個(gè)較大的正整數(shù))中的任意一個(gè)數(shù),相同數(shù)值不會(huì)重復(fù)出現(xiàn)。

  設(shè)計(jì)一個(gè)算法,找出數(shù)列中符合條件的數(shù)對(duì)的個(gè)數(shù),滿足數(shù)對(duì)中兩數(shù)的和等于N+1。

  復(fù)雜度最好是O(n),如果是O(n2)則不得分。

  谷歌八道筆試題篇2

  1、正整數(shù)序列Q中的每個(gè)元素都至少能被正整數(shù)a和b中的一個(gè)整除,現(xiàn)給定a和b,需要計(jì)算出Q中的前幾項(xiàng),例如,當(dāng)a=3,b=5,N=6時(shí),序列為3,5,6,9,10,12

  (1)、設(shè)計(jì)一個(gè)函數(shù)void generate(int a,int b,int N ,int * Q)計(jì)算Q的前幾項(xiàng)

  (2)、設(shè)計(jì)測(cè)試數(shù)據(jù)來(lái)驗(yàn)證函數(shù)程序在各種輸入下的正確性。

  2、有一個(gè)由大小寫(xiě)組成的字符串,現(xiàn)在需要對(duì)他進(jìn)行修改,將其中的所有小寫(xiě)字母排在答謝字母的前面(大寫(xiě)或小寫(xiě)字母之間不要求保持原來(lái)次序),如有可能盡量選擇時(shí)間和空間效率高的算法 c語(yǔ)言函數(shù)原型void proc(char *str)也可以采用你自己熟悉的語(yǔ)言

  3、如何隨機(jī)選取1000個(gè)關(guān)鍵字

  給定一個(gè)數(shù)據(jù)流,其中包含無(wú)窮盡的搜索關(guān)鍵字(比如,人們?cè)诠雀杷阉鲿r(shí)不斷輸入的關(guān)鍵字)。如何才能從這個(gè)無(wú)窮盡的流中隨機(jī)的選取1000個(gè)關(guān)鍵字?

  4、判斷一個(gè)自然數(shù)是否是某個(gè)數(shù)的平方

  說(shuō)明:當(dāng)然不能使用開(kāi)方運(yùn)算。

  5、給定能隨機(jī)生成整數(shù)1到5的函數(shù),寫(xiě)出能隨機(jī)生成整數(shù)1到7的函數(shù)。

  6、1024! 末尾有多少個(gè)0?

  7、有5個(gè)海盜,按照等級(jí)從5到1排列,最大的海盜有權(quán)提議他們?nèi)绾畏窒?00枚金幣。

  但其他人要對(duì)此表決,如果多數(shù)反對(duì),那他就會(huì)被殺死。

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

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

  8、Google2009華南地區(qū)筆試題

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

  指定任意一個(gè)正整數(shù)K,請(qǐng)用A中的元素組成一個(gè)大于K的最小正整數(shù)。

  比如,A=[1,0] K=21 那么輸出結(jié)構(gòu)應(yīng)該為100。

  百度三道筆試題篇3

  1、用C語(yǔ)言實(shí)現(xiàn)一個(gè)revert函數(shù),它的功能是將輸入的字符串在原串上倒序后返回。

  2、用C語(yǔ)言實(shí)現(xiàn)函數(shù)void * memmove(void *dest, const void *src, size_t n)。memmove

  函數(shù)的功能是拷貝src所指的內(nèi)存內(nèi)容前n個(gè)字節(jié)到dest所指的地址上。

  分析:由于可以把任何類(lèi)型的指針賦給void類(lèi)型的指針,這個(gè)函數(shù)主要是實(shí)現(xiàn)各種數(shù)據(jù)類(lèi)型的拷貝。

  3、有一根27厘米的細(xì)木桿,在第3厘米、7厘米、11厘米、17厘米、23厘米這五個(gè)位置上各有一只螞蟻。

  木桿很細(xì),不能同時(shí)通過(guò)一只螞蟻。開(kāi)始時(shí),螞蟻的頭朝左還是朝右是任意的,它們只會(huì)朝前走或調(diào)頭,但不會(huì)后退。

  當(dāng)任意兩只螞蟻碰頭時(shí),兩只螞蟻會(huì)同時(shí)調(diào)頭朝反方向走。假設(shè)螞蟻們每秒鐘可以走一厘米的距離。

  編寫(xiě)程序,求所有螞蟻都離開(kāi)木桿的最小時(shí)間和最大時(shí)間。

3113863