騰訊筆試題(一、二)

時(shí)間:2022-07-13 03:55:07 筆試 我要投稿
  • 相關(guān)推薦

騰訊筆試題(一、二)

騰訊筆試題(一)

騰訊筆試題(一、二)

騰訊的流程是一筆和四面。前三次面試都是技術(shù)面,hr面基本不刷人。筆試成績(jì)決定面試順序。技術(shù)面可能要寫(xiě)代碼,做智力題目。

主要是c/c++、數據結構、操作系統等方面的基礎知識。好像有sizeof、樹(shù)等選擇題。填空題是補充完整程序。附加題有寫(xiě)算法的、編程的、數據庫sql語(yǔ)句查詢(xún)的。還有一張開(kāi)放性問(wèn)題。

1.請定義一個(gè)宏,比較兩個(gè)數a、b的大小,不能使用大于、小于、if語(yǔ)句。

int const shift = sizeof(int)*8-1;

unsigned mask = (0x1

max_num = b;

else

max_num = a;

#define Max(a,b) ( a/b)?a:b

2.如何輸出源文件的標題和目前執行行的行數

int line= __LINE__;

char *file = __FILE__;

cout<<"file name is "<<(file)<<",line is "< 3.兩個(gè)數相乘,小數點(diǎn)后位數沒(méi)有限制,請寫(xiě)一個(gè)高精度算法與大數相乘原理一樣,只是調整小數點(diǎn)位置,即有效小數個(gè)數

算法提示:

輸入 string a, string b;計算string c=a*b; 返回 c;

1,紀錄小數點(diǎn)在a,b中的位置l1,l2,則需要小數點(diǎn)后移動(dòng)位置數為l=length(a)+length(b)-l1-l2-2;

2, 去掉a,b中的小數點(diǎn),

(a,b小數點(diǎn)后移,使a,b變?yōu)檎麛?

3,計算c=a*b;

(要么用java的BigInterger搞, 要么自己用C++寫(xiě)高精度數乘法,超過(guò)百萬(wàn)位,用FFT,我就不細說(shuō),這都預先寫(xiě)過(guò)就別做了

)

4,輸出c

(注意在輸出倒數第l個(gè)數時(shí),輸出一個(gè)小數點(diǎn)。若是輸出的數少于l個(gè),就補0)

4.寫(xiě)一個(gè)病毒

while (1)

{

int *p = new int[10000000];

}

上面這個(gè)不對,沒(méi)有傳染性,寄生性……

5.不使用額外空間,將 A,B兩鏈表的元素交叉歸并將樹(shù)序列化轉存在數組或 鏈表中

struct st{

int i;

short s;

char c;

};

sizeof(struct st);

8

char * p1;

void * p2;

int p3;

char p4[10];

sizeof(p1...p4) =?

4,4,4,10

5.讓你在100000000個(gè)浮點(diǎn)數中找出最大的10000個(gè),要求時(shí)間復雜度優(yōu)。

最小堆

二分查找

快速排序

雙向鏈表的刪除結點(diǎn)

6、有A、B、C、D四個(gè)人,要在夜里過(guò)一座橋。他們通過(guò)這座橋分別需要耗時(shí)1、2、5、10分鐘,只有一支手電,并且同時(shí)最多只能兩個(gè)人一起過(guò)橋。請問(wèn),如何安排,能夠在17分鐘內這四個(gè)人都過(guò)橋?

基礎題有15道選擇和2道讀程序填空。選擇題的確是很基礎,主要考數據結構,還有一些體系結構、數據庫的題目;讀程序題跟我們平時(shí)考試的差不多,一道是兩個(gè)升序鏈合并成一個(gè)升序鏈+遞歸,一道是四色著(zhù)色方案附加題有幾道沒(méi)有看清楚。有一道是unix防僵死算法,最后一道是sql查詢(xún),還有幾道忘了,其中一個(gè)是很長(cháng)的程序題。

發(fā)信人: charly (查理一世), 板面: Work

標 題: 騰訊筆試題

發(fā)信站: 飄渺水云間 (Sat Nov 11 10:55:33 2006), 轉信

15個(gè)選擇題,60分

一個(gè)程序填空,40分

三道附加題60分

附加題考的是

1、不用第三個(gè)變量實(shí)現兩個(gè)整形變量的交換linux的子進(jìn)程操作系統資源搶占管理,兩個(gè)進(jìn)程要對文件進(jìn)行獨占訪(fǎng)問(wèn),采用共享變量,判斷可行否

2、書(shū)寫(xiě)strcpy()

時(shí)間兩個(gè)小時(shí),選擇題 15*4

然后是程序填空題 10 (2*5), 30 (10*3)

附加題用c++ 實(shí)現一個(gè)鏈地址hash。

程序填空題我就不說(shuō)了,比較easy的說(shuō),值得一提的是選擇題。

絕大部分考的是C++,我大致說(shuō)下主要部分吧:

涉及程序執行壓棧的: 1道

涉及容器和迭代器的: 4道

涉及虛擬函數以及dynamic_cast的 3道

涉及參數傳遞的 1道

簡(jiǎn)單的程序段落判斷 2道

涉及類(lèi)的靜態(tài)成員賦值的 1道

剩下的是雜七雜八的。不管怎么說(shuō),假如你把c++ primer 仔細閱讀了一遍,基本上沒(méi)問(wèn)題?嫉挠行┘,沒(méi)有涉及算法和編譯等知識,所以我同屋一個(gè)兄弟很郁悶,因為他linux底層比較好,本來(lái)報的是后臺開(kāi)發(fā),哪知道結果考這種類(lèi)型的題目。程序填空的考了文件操作,以及數組移動(dòng)等。附加題比較簡(jiǎn)單的說(shuō),只要把數據結構的hash部分好好看,然后用class組裝一下就ok了。

最后祝大家好運,今年騰訊計劃50%的是校園招聘,感覺(jué)很不多

騰訊筆試題(二)

一些騰訊筆試題及其答案

聲明:題目來(lái)自網(wǎng)絡(luò ),答案大部分來(lái)自網(wǎng)絡(luò )并經(jīng)過(guò)整理;有些是自己查資料和請教他人得來(lái)的。

1.1、有A、B、C、D四個(gè)人,要在夜里過(guò)一座橋。

他們通過(guò)這座橋分別需要耗時(shí)1、2、5、10分鐘,只有一支手電,并且同時(shí)最多只能兩個(gè)人一起過(guò)橋。

請問(wèn),如何安排,能夠在17分鐘內這四個(gè)人都過(guò)橋?

答案:A & B -->2 mins

1 mins <-- A

C & D -->10 mins

2 mins <-- B

A & B --> 2 mins

一共 2 + 1 + 10 + 2 + 2 = 17 mins

1.2 、1-20的兩個(gè)數把和告訴A,積告訴B,A說(shuō)不知道是多少,

B也說(shuō)不知道,這時(shí)A說(shuō)我知道了,B接著(zhù)說(shuō)我也知道了,問(wèn)這兩個(gè)數是多少?

答案:2和3

答案有3個(gè):

1 2和2

2 2和3

3 2和4

第一個(gè)大概是(2,2)吧

A得到的是2+2=4,B得到的是2*2=4

開(kāi)始A當然不知道,因為有可能是(2,2)或(1,3)

這時(shí)B也不知道,因為有可能是(2,2)或(1,4),而且這兩種情況A無(wú)均會(huì )答"不知道"

這時(shí),我就已經(jīng)知道了,因為如果是(1,3),B得到的是3,只有(1,3)這種情況,就不會(huì )回答"不知道"

由B的答案,A可以肯定是(2,2)

同樣,A說(shuō)"知道"了以后,B也就知道了

因為如果是(1,4),A得到的是5,只憑第二步B說(shuō)"不知道",A不可能在第三步便"知道"

所以B可以斷定,是(2,2)

邏輯推理:這兩個(gè)數是多少?

兩個(gè)人A,B。數字為2-100之間的自然數,F找出兩個(gè)數,把其和告訴A,把其積告訴B。然后問(wèn)A知道不知道是哪兩個(gè)數,A說(shuō):“雖然我

不知道,但是肯定B也不知道! 再問(wèn)B,B說(shuō):“本來(lái)我不知道,但是聽(tīng)到A說(shuō)這句話(huà),現在我知道了!,A聽(tīng)到B說(shuō)他知道了,然后就說(shuō):

“現在我也知道了”。那么這兩個(gè)數是多少呢?

由A說(shuō):“雖然我不知道,但是肯定B也不知道!钡茫汉筒皇莾蓚(gè)素數的和

得出以下數字:

11,17,23,27,29,35,37,41,47,51,53,57,59。。。。。等

通過(guò)以上列出的和,推出積的可能性:

和-》積

11-》18,24,28,30

17-》30,42,52,60,66,70,72

23-》42,60,76,90,102,112,120

27-》50,72,92,110,126,140,152。。。。

29-》54,78,100,120,115,138,154。。。。

35-》66,96,124,150,174,196。。。。

根據“B說(shuō):“本來(lái)我不知道,但是聽(tīng)到A說(shuō)這句話(huà),現在我知道了! ”我們首先可以刪除一些重復出現的積,如30,120

得到:

11-》18,24,28,

17-》52,

23-》42,76,

27-》50,92。。。

29-》54,78。。。。

35-》96,124。。。

由“A對B說(shuō):呵呵,我也知道了!笨梢灾婪e是唯一的,那只有52了

所以得到和是17,積是52

答案就是4和13。

1.3 、爸爸,媽媽,妹妹,小強,至少兩個(gè)人同一生肖的概率是多少?

1-12*11*10*9/12*12*12*12 = 1-55/96 = 41/96

1.4 某人去玩具店買(mǎi)小熊,單價(jià)30元. 付給玩具店老板100元玩具店老板沒(méi)零錢(qián),

去水果店換了100元零錢(qián)回來(lái)找給那人70元. 那人走后, 水果店老板找到玩具店老板說(shuō)剛才的100元是假幣,

玩具店老板賠償了水果店老板100元

問(wèn):玩具店老板損失了多少錢(qián)?

答案: 70+小熊的進(jìn)價(jià)

2 請定義一個(gè)宏,比較兩個(gè)數a、b的大小,不能使用大于、小于、if語(yǔ)句

答案:

#define max(a,b) ((((long)((a)-(b)))&0x80000000)?b:a)

若a > b ,則a-b的二進(jìn)制最高位為0,與上任何數還是0,所以大數為a;

否則,a-b為負數,二進(jìn)制最高位為1,與上0x80000000(最高位為1其他為0)之后為1,所以此時(shí)的大數為b.

3 計算 a^b << 2

答案:

運算符優(yōu)先級:括號,下標,->和.(成員)最高;

單目的比雙目的高;

算術(shù)雙目的比其他雙目的高;

位運算 高于 關(guān)系運算;

關(guān)系運算 高于 按位運算(與,或,異或);

按位運算 高于 邏輯運算;

三目的只有一個(gè) 條件運算,低于邏輯運算;

賦值運算僅比 , (順序運算)高。

在此題中,位左移"<<" 優(yōu)先級高于按位異或"^",所以b先左移兩位(相當于乘以4),再與a異或。

例如: 當 a = 6; b = 4 時(shí); 則 a^b<<2 = 22

4、如何輸出源文件的標題和目前執行行的行數?

答案: printf("The file name: %dn", __FILE__);

printf("The current line No:%dn", __LINE__);

ANSI C標準預定義宏:

__LINE__

__FILE__

__DATE__

__TIME__

__STDC__ 當要求程序嚴格遵循ANSI C標準時(shí)該標識符被賦值為1

__cplusplus__ 當編寫(xiě)C++程序時(shí)該標識符被定義

5、 a[3][4]哪個(gè)不能表示 a[1][1]: *(&a[0][0]+5) *(*(a+1)+1) *(&a[1]+1) *(&a[0][0]+4)

答案: *(*(a+1)+1)

a是數組的首地址,a+1相當于&a[0][1], *(a+1)=a[0][1],則*(*(a+1)+1)= *(a[0][1] + 1) =/= a[1][1]

6、 fun((exp1,exp2),(exp3,exp4,exp5))有幾個(gè)實(shí)參?

答案:兩個(gè)。

形式參數:在聲明和定義函數時(shí),寫(xiě)在函數名后的括號中的參數。

實(shí)參是調用參數中的變量,行參是被調用函數中的變量。

7、 希爾 冒泡 快速 插入 哪個(gè)平均速度最快?

答案:快速排序

快速排序、歸并排序

【騰訊筆試題(一、二)】相關(guān)文章:

關(guān)于騰訊筆試題07-10

tencent騰訊 筆試題07-10

一道騰訊的面試題07-09

關(guān)于騰訊技術(shù)類(lèi)筆試題07-10

跪求騰訊前端面試題07-10

騰訊實(shí)習生筆試題 網(wǎng)頁(yè)重構07-10

華為筆試題硬件筆經(jīng)07-11

軟件工程師筆試題目11-騰訊07-10

騰訊技術(shù)類(lèi)校園招聘筆試試題(A8卷)07-12

09年騰訊校園招聘軟件開(kāi)發(fā)職向的筆試試題07-12

99久久精品免费看国产一区二区三区|baoyu135国产精品t|40分钟97精品国产最大网站|久久综合丝袜日本网|欧美videosdesexo肥婆