騰訊面試題 持續更新ing

2021-09-01 16:26:00 字數 1577 閱讀 9570

1、

請定義乙個巨集,比較兩個數a、b的大小,不能使用大於、小於、if語句

答案:#define compare(a, b) ( (a) - (b) & (1 << sizeof(int) * 8 - 1) ? (a) : (b))

解析:這裡的做法,是將a - b,然後看首位是1,還是0,然後返回大的那個值。當然,你要是返回1跟0也是對的。

如果這道題寫成這樣,#define comapre(a, b) ( ((a) + (b)) - abs((a) - (b)) / 2 ) 你認為可行不?答案是否定的,只要a,b其中有乙個數是無符號的,a - b 就會變成乙個非常大的數,結果就會錯得離譜。

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

答案:cout << __file__ << " " << __line__; 還有幾個常用的巨集,__date__, __time__, __function__, 注意__date__和__time__是預編譯的結果,也就是說,是你這個檔案編輯後被重新編譯的日期和時間,日期類似於mar 16 2013 時間則是hh:mm:ss 如 08:42:39,__function__則是對應函式的函式名,還有個很少用的巨集__va_args__,這是不定引數的引數列表,也就是fun(...)中的那個...,如果你想把乙個函式的可變引數...傳遞給另外乙個函式時,就可以使用這個巨集,但是,這個巨集只是c99支援,現在的vs2008也還支援,但g++不支援,so,***,少用為妙 3、

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

答案:參考:

解析:參考的**沒有設計小數字,但原理是一樣的,如果下次有涉及小數,會及時更新

4、寫乙個病毒程式

答案:參考: 5、

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

答案:ab一起過橋,耗時=2,a回來,耗時=2+1=3,cd一起過橋,耗時=3+10=13,b回來,耗時=13+2=15,ab一起過橋,耗時=15+2=17

6、乙個人上台階,一次可以上乙個台階或者兩個台階,問,上到10個台階有多少種走法?

答案:89

解析:上第乙個台階,只有一種走法,l1 = 1

上第二個台階,有兩種走法,可以直接上兩個台階,也可以從第乙個台階走一步,l2 = l1 + 1 = 2

上第三個台階,可以從第乙個台階走兩個台階,也可以從第二個台階走乙個台階,也就是,走到第乙個台階的所有方法,再加上走到第二個台階的所有方法,l3 = l1 + l2= 1 + 2 = 3

上第四個台階,可以從第二個台階走兩個台階,也可以從第三個台階走乙個台階,也就是,走到第二個台階的所有方法,再加上走到第三個台階的所有方法,

l4 =l2 + l3 = 2 + 3 = 5

上第五個台階,可以從第三個台階走兩個台階,也可以從第四個台階走乙個台階,也就是,走到第三個台階的所有方法,再加上走到第四個台階的所有方法,

l5 =l3 + l4 = 3 + 5 = 8

。。。。。。

後面的數等於前面兩個數的和,這個是???哈,就是斐波那契數列哈,1,2,3,5,8,13,21,34,55,89,答案就是89。

TCP IP面試題(持續更新)

no.1 tcp ip基礎 這些知識點都可以參考 no.2 常見面試題 tcp與udp的區別 tcp協議是有連線的,有連線的意思是開始傳輸實際資料之前tcp的客戶端和伺服器端必須通過三次握手建立連線,會話結束之後通過四次揮手結束連線。而udp是無連線的 tcp協議保證資料按序傳送,按序到達,提供超時...

幾個面試題 持續更新

1.簡單列舉了解的程式語言及語言間區別。python簡單,python開發效率快,python 簡潔,跨平台,學習成本比較低 2.列舉python2和3的區別 後期要找一些模組和專案的區別 py3 print 編碼方式 unicode 類 新式類 range 可迭代物件 input 獲取的內容全都是...

kafka面試題 持續更新

kafka 中的資料只能儲存七天,隨之而來的問題就是某個偏移量對應的資料被清除,我們通過偏移量去查詢資料而發生的報錯 資料已經被 kafka 給清除掉了 也就是說我們讀取的偏移量小於 kafka 中資料儲存的最早的偏移量,說明資料已經被 kafka 給乾掉了 解決方式 將拿到的偏移量和 kafka ...