閱讀屋>筆試> 騰訊筆試題

騰訊筆試題

騰訊筆試題推薦

可以到騰訊這樣的大公司面試,是一次很難得的機會了。騰訊筆試題推薦相關範文,我們一起來看看。歡迎參考。

1 計算 a^b << 2 (運算子優先順序問題)

int a = 2; int b = 1; int c = 2; cout << (a ^ b << c); 6

2 根據先序中序求後序

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

cout << *(&a[1][1]) << endl <<*(*(a+1)+1) << endl << *(&a[1]+1) << endl << *(&a[0][0]+4); 6 6 0012FEC8 5

4 for(int i...)

for(int j...)

printf(i,j);

printf(j)

會出現什麼問題 J沒有定義,不在其作用域

5 for(i=0;i<10;++i,sum+=i);的執行結果

6 10個數順序插入查詢二叉樹,元素62的比較次數

7 10個數放入模10hash連結串列,最大長度是多少

8 fun((exp1,exp2),(exp3,exp4,exp5))有幾個實參

2 個

9 希爾 冒泡 快速 插入 哪個平均速度最快

10 二分查詢是 順序儲存 鏈儲存 按value有序中的哪些

11 順序查詢的平均時間

12 *p=NULL *p=new char[100] sizeof(p)各為多少 4

13 頻繁的插入刪除操作使用什麼結構比較合適,連結串列還是陣列

14 enum的宣告方式 enum COLOR{RED,BLUE,GREEN};

大題:

1 把字串轉換為小寫,不成功返回NULL,成功返回新串

char* toLower(char* sSrcStr)

{

char* sDest= NULL;

if( __1___)

{

int j;

sLen = strlen(sSrcStr);

sDest = new [_______2_____];

if(*sDest == NULL)

return NULL;

sDest[sLen] = ;

while(_____3____)

sDest[sLen] = toLowerChar(sSrcStr[sLen]);

}

return sDest;

} char toLowerChar(char a) { if(a >= A && a <= ) return a - A + a; } char* toLower(char* sSrcStr) { char* sDest= NULL; if(sSrcStr) { int j; int sLen = strlen(sSrcStr); sDest = new char[sLen + 1]; if(*sDest == NULL) return NULL; sDest[sLen] = ; while(sLen--) sDest[sLen] = toLowerChar(sSrcStr[sLen]); } return sDest; }

2 把字串轉換為整數 例如:"-123" -> -123

main()

{

.....

if( *string == - )

n = ____1______; -1* num(string+1)

else

n = num(string);

.....

}

int num(char* string)

{

for(;!(*string==0);string++)

{

int k;

k = __2_____; *string

j = --sLen;

while( __3__) j--

k = k * 10;

num = num + k;

}

return num;

}

附加題:

1 linux下除錯core的命令,察看堆疊狀態命令

2 寫出socks套接字 服務端 客戶端 通訊程式

3 填空補全程式,按照我的理解是添入:win32調入dll的函式名

查詢函式入口的函式名 找到函式的呼叫形式

把formView加到singledoc的宣告 將singledoc加到app的宣告

4 有關係 s(sno,sname) c(cno,cname) sc(sno,cno,grade)

1 問上課程 "db"的學生no

2 成績最高的學生號

3 每科大於90分的.人數 騰訊

待遇:碩士年薪10萬,本科年薪7萬

1)筆試: C++,基礎題目與程式設計師考試水平相當。

附加題:

1.有10億個浮點數,從中找出1萬個最大的數。寫一個高效能的演算法

2.Unix後臺程序的實現

3.MFC的多文件模板的載入

4.資料庫SQL語句查詢

2)面試

技術1面:感覺騰訊的面試安排不是很合理,進去之後有12個面試官,隨便找一個面。面我的是個鐵面判官,問了幾個問題,DirectX技術有沒有接觸過? 2D,3D引擎原理?我一頭霧水,跟他沒什麼好談的,感覺,彼此都不感興趣。然後他就問了一個很基礎的問題,寫一個程式:從雙向迴圈連結串列中刪除一個節點。這個當然沒有什麼問題。不過出來後感覺就沒戲

1.請定義一個宏,比較兩個數a、b的大小,不能使用大於、小於、if語句

#define check(a,b) char*r=((a)-(b))==abs((a)-(b))? "greater":"less"

2.如何輸出原始檔的標題和目前執行行的行數

cout<<"Filename"<<_ _FILE__<<"line"<<__line__<

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

4、寫一個病毒

while(1)

{

int *p=new int [10000000];

}

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

AB過2分 A回來1分 3

CD過10 B回來2分 12

AB過2分 共計3+2+12=17

2005年騰訊招聘

選擇題(60)

c/c++ os linux 方面的基礎知識 c的Sizeof函式有好幾個!

程式填空(40)

1.(20) 4空x5

不使用額外空間,將 A,B兩連結串列的元素交叉歸併

2.(20) 4空x5

MFC 將樹序列化 轉存在陣列或 連結串列中!

1, 計算 a^b << 2 (運算子優先順序問題) :<<的優先順序高於^

2 根據先序中序求後序

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

4 for(int i...)

for(int j...)

printf(i,j);

printf(j)

會出現什麼問題 :j沒有定義,不在其作用域內

5 for(i=0;i<10;++i,sum+=i);的執行結果 :55先執行迴圈體再執行++i,sum+=i

6 10個數順序插入查詢二叉樹,元素62的比較次數

7 10個數放入模10hash連結串列,最大長度是多少

8 fun((exp1,exp2),(exp3,exp4,exp5))有幾個實參 :兩個,其中括號內的","為逗號運算子

9 希爾 冒泡 快速 插入 哪個平均速度最快

10 二分查詢是 順序儲存 鏈儲存 按value有序中的哪些

11 順序查詢的平均時間

12 *p=NULL *p=new char[100] sizeof(p)各為多少 :都是4

13 頻繁的插入刪除操作使用什麼結構比較合適,連結串列還是陣列 :連結串列

14 enum的宣告方式 enum COLOR{RED,BLUE,GREEN};

15 1-20的兩個數把和告訴A,積告訴B,A說不知道是多少,

問題:A從2到99之間抽了2個數字,把和告訴B,積告訴C

B說我不知道這2個數,但是C也肯定不知道

C說我開始確實不知道,但是現在知道了

B說這樣我也知道了

求這2個數.為什麼?我的解答: 首先,正確答案是4和13。 設B得到的和記做B,C得到的積記做C,這兩個數記做x和y。 1.預備結論, a)100以內的質數有25個,如下: 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97, b)歌德巴赫猜想,任何大於6的偶數都能寫成兩個奇質數的和。 c)B明顯大於等於6,而小於等於196 2.一些更要結論。 a)B不可能是偶數。因為B如果是偶數,而偶數都能寫成兩個奇質數的和,例如22=5+17,那麼如果C=5*17=85,則因為C=85只有一種質因數分解方式,所以C知道這兩個數是5和17。也就是說,B說“我不知道這2個數,但是C也肯定不知道”這句話是錯誤的,C有可能知道。 b)B是奇數,並且一定不能寫成兩個質數的和。例如若B=19,那麼就有可能是2和17,如果C=34=2*17,只有一種質因數分解方式,所以C知道這兩個數。 那麼不能寫成兩個質數的和的奇數見下:記做集合M 11,17,23,27,29,35,37,41,47,51,53,57,59,65,67,71,77,79,83,87,89,93,95,97,還有100至196之間的奇數(因為例如103,雖然=101+2,但是101一經大於100) 這些數的思路是這樣的,奇數=兩個質數和,那一定有一個數是2。不如分析30-40的,可以用排除法,奇數有31,33,35,37,39,但是29+2=31,31+2=33,37+2=39所以要排除31,33,39剩餘35,37。 所以B只可能是集合M中的數。 c)B可有多種可能的分解方式,但是隻有一種是可以確定的。這句話如果不理解,後面有例子。 3.實際這個題可以分為兩個重要部分,一是找到一組這樣個數,並證明這組數符合條件,而是證明其它的陣列不滿足條件。本人只能證明的一部分,第二部分我目前沒有更好的方法,只能是列舉排除法。 4.下面例項分析 a)若B=11 x=2,y=9,那麼C=18=3*6,C會這樣想,如果是3和6,那麼B=9,而9可以是2+7,那麼我C就是14,我肯定可以知道是2和7,所以不能是3和6。也就是說若B=11,B可以判斷出是x=2,y=9 x=3,y=8,那麼C=24=2*12=4*6,無論2+12,還是4+6都是偶數,可以排除,B可以判斷出是x=2,y=9 x=4,y=7,C=2*14,2+16也可以排除,B可以判斷出是x=2,y=9 x=5,y=6,C=2*15,2+15=17,17是集合M中的數,也就是說C知道這兩個數是什麼,但是B不能確定。 B有三組可以確定,那麼,B就不知道究竟是那組了,只有一組能判斷出來才可以。 一個結論: ()C可以有多中分解方式,但分解中的x+y的和如果是M中的數,那說明這種分解方式不能排除,反之則能排除。 ()如果B的幾種不同分解方式,有兩個或以上的C可以確定,那麼這樣的B不滿足條件(B說這樣我也知道了) ()如果C的分解方式中x或y是4,8,16……2^2,另一個是質數,那麼這種分解方式可以排除,因為,此時C的其他分解方式不過是,把質因數2分給質數,這樣兩個數都是偶數了,那麼和B也成了偶數,這和前面的結論是矛盾的。 b)若B=17 x=2,y=15,那麼C=30=5*6,5+6=11,屬於M,不能排除。 x=3,y=14,那麼C=42=2*21,2+21=23,屬於M,不能排除。 x=4,y=13,那麼C=52=2*26,2+26=28,不屬於M,可以排除。 x=5,y=12,那麼C=60=3*20,3+20=23,屬於M,不能排除。 x=6,y=11,那麼C=66=2*33,2+33=35,屬於M,不能排除。 x=7,y=10,那麼C=70=2*35,2+35=37,屬於M,不能排除。 x=8,y=9,那麼C=72=3*24,2+24=27,屬於M,不能排除。 這樣


【騰訊筆試題】相關文章: