位元組跳動面試題 答案,答對了30

2022-07-31 04:45:09 字數 3847 閱讀 3324

1、變數a是乙個64位有符號的整數,初始值用16進製表示為:0x7fffffffffffffff;變數b是乙個64位有符號的整數,初始值用16進製表示為:0x8000000000000000。則a+b的結果用10進製表示為多少?

a.1b.-1

c.263+262+…+22+21+2^0

d.–(263+262+…+22+21+2^0)

2、tcp建立連線的三次握手中,第二次握手傳送的包會包含的標記,最正確的描述是?

a.ack

b.syn,ack

c.syn,psh

d.syn

3、棧是先進後出的資料結構。給定乙個大小為3的初始狀態為空的棧,已知一組資料經過這個棧後,最終的資料順序依次為:1 3 2 4 ,問原始的進棧資料不可能是以下的那組?

a.2 3 1 4

b.1 4 2 3

c.4 2 3 1

d.3 1 2 4

4、電路中其中三個閘電路非門,與門,或門的示意圖及性質分別如下所示:

非門,使輸入的電平程式設計相反電平:

與門,使輸入兩個高電平,輸出高電平,其他情況下輸出低電平:

或門。當且僅當輸入兩個低電平時,輸出低電平,否則輸出高電平:

現在對以下的電路中的 a 和 b 引腳分別持續輸入乙個高電平( 1 )和乙個低電平( 0 ),問最終電路的引腳 c 、 d 、 e 、 f 分別輸出的電平是什麼?

a.c=0,d=1,e=0,f=1

b.c=1,d=1,e=1,f=0

c.c=1,d=1,e=0,f=1

d.c=0,d=0,e=0,f=1

5、作業系統中可以使用lru(least recently used)記憶體淘汰舊資料的策略,如果記憶體需要載入新資料但空間又不足,則會按照最近訪問時間進行排序,並將最老的資料淘汰,假設現在記憶體空間大小為5,原本記憶體中沒有資料,對記憶體中資料的訪問順序如下:1,2,5,3,4,6,1,4,3,6,7,8,3,9

a.缺頁次數:9

b.缺頁次數:4

c.缺頁次數:10

d.缺頁次數:5

6、下面的程式中, int32-t 表示乙個有符號的 32 位整數,程式的入口是 main 函式,問最終 res 的結果是多少?

a.–(231+230+…+22+21+2^0)

b.0c.-1

d.程式會死迴圈

7、給定乙個如下所示的圖,圖中的邊代表了兩個節點間的距離。如果使用迪傑斯特拉演算法對節點 1 和節點 8 求最短路徑,則當完成計算時,算得節點1 到節點 8 的最短路徑是?同時當完成節點 1 到節點 8 的最短路徑計算時,節點 1 到哪些節點(除了 1 和 8 )的最短路徑也已經計算完畢?( )

8、x86 cpu在實模式下解釋**時看到乙個位址為2330h:5041h,請問它最終在記憶體中要找的位址是多少?

a.28341h

b.5374h

c.52740h

d.7371h

9、有三個程式j1,j2,j3。程式在單核cpu執行時,三個程式需要的資源如下所示:

優先順序高的程式可以搶占優先順序低的程式的cpu,但不能搶占io。問當所有任務執行完畢時,共消耗的時間是?

a.170ms

b.160ms

c.120ms

d.130ms

答案僅供參考

1、答案解析:正確答案: b  

(1)a+b的16進製表示為:oxfffffffffffffff(16位f),轉為2進製為111……111(64位1,每個f->4位2)。

(2)有符號數:是針對二進位制來講的。用最高位作為符號位,「0」代表「+」,「1」代表「-」。所以a+b的結果是乙個負數。

(3)計算機中負數是以補碼的形式儲存的,將補碼轉換成原碼的計算方式如下:

①. 對於正數,原碼與補碼相同。

②.對於負數,將補碼除符號位之外,按位取反,末位加1,即得到原碼。

(4)a + b = 111……111(64位1)

取反:100……000(1位1,後面63位0)

加一:10進製:-1。

2、答案解析:正確答案: b

3、答案解析:正確答案: c

注意棧的大小為3

4、答案解析:正確答案: d

5、答案解析:正確答案: c  

記憶體空間5,所以前5個都是缺頁的,因為記憶體空間中並沒有這五個,然後6置換1,1置換2,然後4.3.6都有不用置換,7置換5,8置換4,3有了,然後9置換3,總共十次。

6、答案解析:正確答案: d

以char為例

f(1,0): 

a=2  b=-1 

a=3  b=-2 

… a=127 b=-126 

a=128 b=-127  溢位–>a=-128 b=-127     char範圍:-128~127        

return a+b:-128-127實際上是1(char範圍),繼續迴圈

而原例為int_32t,臨界情況 a+b:      -232+(-232+1)=1,也繼續迴圈。

因此死迴圈。

7、答案解析:正確答案: c

初始狀態:路徑長度0:(1)

路徑長度1:(1,5)

路徑長度2:(1,3)

路徑長度3:(1,3,4),(1,2)

路徑長度4:(1,5,8)

節點1到8的最短路徑長度為4;    2,3,4,5節點的最短路徑已經計算完畢;  其中到5節點的最短路徑最小為1;

應該選c,感覺出題人玩文字遊戲把自己繞進去了

8、答案解析:正確答案: a

實模式下記憶體空間的訪問

8086處理器(cpu)內的暫存器都是16位的,位址線上的位址由cpu提供。cpu用兩個16位的值合成乙個20位的值:將乙個16位的值乘以16(相當於這個16位的值儲存在20位暫存器的低16位中,然後將低16位往高位移動了4位)再加上另乙個16位的值。將這個由2個16位合成的值提供給20根位址線作為訪問記憶體的位址值。被乘以16的那個值被稱為段基址,沒有被乘以16的那個值被稱為偏移位址。

cpu在實模式下,段暫存器中的值就是段基址,如果想要通過匯程式設計序訪問某個記憶體單元,那麼就需要指定乙個段暫存器和乙個偏移位址或以「段基址值:偏移位址值」的格式。cpu會將段暫存器的值乘以16再與偏移位址相加後,才將這個結果提供給位址線;用段基址和偏移位址的形式給出的表示式,cpu也會給段基址乘以16與偏移位址相加後,才將這個結果提供給位址線。

figure 2. 實模式下訪問記憶體(得出記憶體位址)的方式

這就是說,在匯程式設計序中,得用段基址:偏移位址的方式訪問記憶體,因為cpu形成記憶體位址的方式是「段基址* 16 + 偏移位址」。

按照「段:偏移位址」的方式訪問記憶體是cpu對記憶體的一種管理方式

9、答案解析:正確答案: d

因為優先順序高的程式可以搶占優先順序低的程式的cpu,但不能搶占io,

所以j1在cpu之後不能搶占j2的io,j2在io之後可以搶占j3的cpu。

cpu:j1 40ms + j3 10ms + j2 20ms +j1 20ms

io:j2 50ms + j1 60ms + j3 20ms

所以共消耗時間為130ms,選d。

面試題答案

2.tomcat工作原理 1.tomcat需要監聽本機上的某個埠。2.tomcat需要抓取此埠上來自客戶端的鏈結並獲得請求呼叫的方法與引數。3.tomcat需要根據請求呼叫的方法,動態地載入方法所在的類,完成類的例項化並通過該例項獲得需要的方法最終將請求傳入方法執行。4.將結果返回給客戶端 jsp ...

C 面試題答案

1 c 函式中值的傳遞方式有哪幾種?答 c 函式的三種傳遞方式為 值傳遞 指標傳遞和引用傳遞。2 標頭檔案的作用是什麼?答 一 通過標頭檔案來呼叫庫功能。在很多場合,源 不便 或不准 向使用者公布,只要向使用者提供標頭檔案和二進位制的庫即可。使用者只需要按照標頭檔案中的介面宣告來呼叫庫功能,而不必關...

微軟面試題答案

第一組題答案 1 三根繩,第一根點燃兩端,第二根點燃一端,第三根不點 第一根和第二根同是點燃,等到第一根滅了,再點燃第二個的另一端 這樣等到第二根燒完只要15分鐘 最後再燒第三根1小時15分 2 根據抽屜原理,4個 3 3公升裝滿 3公升 5公升 全注入 3公升裝滿 3公升 5公升 剩1公升 5公升...