1、變量a是一個64位有符號的整數(shù)遗嗽,初始值用16進(jìn)制表示為:0x7FFFFFFFFFFFFFFF;變量b是一個64位有符號的整數(shù)生棍,初始值用16進(jìn)制表示為:0x8000000000000000。則a+b的結(jié)果用10進(jìn)制表示為多少媳谁?
A.1
B.-1
C.263+262+…+22+21+2^0
D.–(263+262+…+22+21+2^0)
2涂滴、TCP建立連接的三次握手中,第二次握手發(fā)送的包會包含的標(biāo)記晴音,最正確的描述是柔纵?
A.ACK
B.SYN,ACK
C.SYN,PSH
D.SYN
3、棧是先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu)锤躁。給定一個大小為3的初始狀態(tài)為空的棧搁料,已知一組數(shù)據(jù)經(jīng)過這個棧后,最終的數(shù)據(jù)順序依次為:1 3 2 4 系羞,問原始的進(jìn)棧數(shù)據(jù)不可能是以下的那組?
A.2 3 1 4
B.1 4 2 3
C.4 2 3 1
D.3 1 2 4
4郭计、電路中其中三個門電路非門,與門椒振,或門的示意圖及性質(zhì)分別如下所示:
非門昭伸,使輸入的電平編程相反電平:
與門,使輸入兩個高電平澎迎,輸出高電平庐杨,其他情況下輸出低電平:
或門选调。當(dāng)且僅當(dāng)輸入兩個低電平時,輸出低電平灵份,否則輸出高電平:
現(xiàn)在對以下的電路中的 A 和 B 引腳分別持續(xù)輸入一個高電平( 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氛什、操作系統(tǒng)中可以使用LRU(least recently used)內(nèi)存淘汰舊數(shù)據(jù)的策略横浑,如果內(nèi)存需要加載新數(shù)據(jù)但空間又不足,則會按照最近訪問時間進(jìn)行排序屉更,并將最老的數(shù)據(jù)淘汰徙融,假設(shè)現(xiàn)在內(nèi)存空間大小為5,原本內(nèi)存中沒有數(shù)據(jù)瑰谜,對內(nèi)存中數(shù)據(jù)的訪問順序如下:1,2,5,3,4,6,1,4,3,6,7,8,3,9
A.缺頁次數(shù):9
B.缺頁次數(shù):4
C.缺頁次數(shù):10
D.缺頁次數(shù):5
6欺冀、下面的程序中, int32-t 表示一個有符號的 32 位整數(shù)萨脑,程序的入口是 main 函數(shù)隐轩,問最終 res 的結(jié)果是多少?
A.–(231+230+…+22+21+2^0)
B.0
C.-1
D.程序會死循環(huán)
7渤早、給定一個如下所示的圖职车,圖中的邊代表了兩個節(jié)點間的距離。如果使用迪杰斯特拉算法對節(jié)點 1 和節(jié)點 8 求最短路徑鹊杖,則當(dāng)完成計算時悴灵,算得節(jié)點1 到節(jié)點 8 的最短路徑是?同時當(dāng)完成節(jié)點 1 到節(jié)點 8 的最短路徑計算時骂蓖,節(jié)點 1 到哪些節(jié)點(除了 1 和 8 )的最短路徑也已經(jīng)計算完畢积瞒?( )
8登下、x86 CPU在實模式下解釋代碼時看到一個地址為2330H:5041H,請問它最終在內(nèi)存中要找的地址是多少诗箍?
A.28341H
B.5374H
C.52740H
D.7371H
9誉裆、有三個程序J1,J2截碴,J3俏险。程序在單核CPU執(zhí)行時评姨,三個程序需要的資源如下所示:
優(yōu)先級高的程序可以搶占優(yōu)先級低的程序的CPU顽悼,但不能搶占IO晶乔。問當(dāng)所有任務(wù)執(zhí)行完畢時,共消耗的時間是篓冲?
A.170ms
B.160ms
C.120ms
D.130ms
10李破、給定整數(shù)m以及n各數(shù)字A1,A2,…An,將數(shù)列A中所有元素兩兩異或壹将,共能得到n(n-1)/2個結(jié)果嗤攻,請求出這些結(jié)果中大于m的有多少個。
答案僅供參考
1诽俯、答案解析:正確答案: B
(1)a+b的16進(jìn)制表示為:OxFFFFFFFFFFFFFFF(16位F)妇菱,轉(zhuǎn)為2進(jìn)制為111……111(64位1,每個F->4位2)暴区。
(2)有符號數(shù):是針對二進(jìn)制來講的闯团。用最高位作為符號位,“0”代表“+”仙粱,“1”代表“-”房交。所以a+b的結(jié)果是一個負(fù)數(shù)。
(3)計算機中負(fù)數(shù)是以補碼的形式保存的伐割,將補碼轉(zhuǎn)換成原碼的計算方式如下:
①. 對于正數(shù)候味,原碼與補碼相同。
②.對于負(fù)數(shù)隔心,將補碼除符號位之外白群,按位取反,末位加1硬霍,即得到原碼帜慢。
(4)a + b = 111……111(64位1)
取反:100……000(1位1,后面63位0)
加一:100……00(中間62位0)
10進(jìn)制:-1唯卖。
2粱玲、答案解析:正確答案: B
附上tcp建立連接的三次握手過程圖(第二次握手包含的標(biāo)記是SYN,ACK)拜轨,所以選B:
3密幔、答案解析:正確答案: C
注意棧的大小為3
4、答案解析:正確答案: D
5撩轰、答案解析:正確答案: C
內(nèi)存空間5胯甩,所以前5個都是缺頁的,因為內(nèi)存空間中并沒有這五個堪嫂,然后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范圍)副硅,繼續(xù)循環(huán)
而原例為int_32t,臨界情況 a+b: -232+(-232+1)=1,也繼續(xù)循環(huán)姥宝。
因此死循環(huán)。
7恐疲、答案解析:正確答案: C
初始狀態(tài):路徑長度0:(1)
路徑長度1:(1,5)
路徑長度2:(1,3)
路徑長度3:(1,3,4)腊满,(1,2)
路徑長度4:(1,5,8)
節(jié)點1到8的最短路徑長度為4; 2培己,3,4,5節(jié)點的最短路徑已經(jīng)計算完畢碳蛋; 其中到5節(jié)點的最短路徑最小為1;
應(yīng)該選C省咨,感覺出題人玩文字游戲把自己繞進(jìn)去了
8肃弟、答案解析:正確答案: A
實模式下內(nèi)存空間的訪問
8086處理器(CPU)內(nèi)的寄存器都是16位的,地址線上的地址由CPU提供零蓉。CPU用兩個16位的值合成一個20位的值:將一個16位的值乘以16(相當(dāng)于這個16位的值保存在20位寄存器的低16位中愕乎,然后將低16位往高位移動了4位)再加上另一個16位的值。將這個由2個16位合成的值提供給20根地址線作為訪問內(nèi)存的地址值壁公。被乘以16的那個值被稱為段基址感论,沒有被乘以16的那個值被稱為偏移地址。
CPU在實模式下紊册,段寄存器中的值就是段基址比肄,如果想要通過匯編程序訪問某個內(nèi)存單元,那么就需要指定一個段寄存器和一個偏移地址或以“段基址值:偏移地址值”的格式囊陡。CPU會將段寄存器的值乘以16再與偏移地址相加后芳绩,才將這個結(jié)果提供給地址線;用段基址和偏移地址的形式給出的表達(dá)式,CPU也會給段基址乘以16與偏移地址相加后撞反,才將這個結(jié)果提供給地址線妥色。
Figure 2. 實模式下訪問內(nèi)存(得出內(nèi)存地址)的方式
這就是說,在匯編程序中遏片,得用段基址:偏移地址的方式訪問內(nèi)存嘹害,因為CPU形成內(nèi)存地址的方式是“段基址* 16 + 偏移地址”。
按照“段:偏移地址”的方式訪問內(nèi)存是CPU對內(nèi)存的一種管理方式
9吮便、答案解析:正確答案: D
因為優(yōu)先級高的程序可以搶占優(yōu)先級低的程序的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。
10微渠、答案解析:
直接計算肯定是超時的搭幻,所以這問題不能使用暴力破解,考慮到從高位到地位逞盆,依次進(jìn)行位運算檀蹋,如果兩個數(shù)異或結(jié)果在某高位為1,而m的對應(yīng)位為0纳击,則肯定任何這兩位異或結(jié)果為1的都會比m大续扔。
由此攻臀,考慮使用字典樹(TrieTree)從高位到第位建立字典焕数,再使用每個元素依次去字典中查對應(yīng)高位異或為1, 而m為0的數(shù)的個數(shù)刨啸,相加在除以2既是最終的結(jié)果堡赔;直接貼出代碼如下,非原創(chuàng)设联,歡迎討論善已;
補充:queryTrieTree在搜索的過程中,是從高位往低位搜索离例,那么换团,如果有一個數(shù)與字典中的數(shù)異或結(jié)果的第k位大于m的第k位,那么該數(shù)與對應(yīng)分支中所有的數(shù)異或結(jié)果都會大于m宫蛆, 否則艘包,就要搜索在第k位異或相等的情況下,更低位的異或結(jié)果耀盗。queryTrieTree中四個分支的作用分別如下:
- aDigit=1想虎, mDigit=1時,字典中第k位為0叛拷,異或結(jié)果為1舌厨,需要繼續(xù)搜索更低位,第k位為1忿薇,異或結(jié)果為0裙椭,小于mDigit,不用理會署浩;
- aDigit=0骇陈, mDigit=1時,字典中第k位為1瑰抵,異或結(jié)果為1你雌,需要繼續(xù)搜索更低位,第k位為0,異或結(jié)果為0婿崭,小于mDigit拨拓,不用理會;
- aDigit=1氓栈, mDigit=0時渣磷,字典中第k位為0,異或結(jié)果為1授瘦,與對應(yīng)分支所有數(shù)異或醋界,結(jié)果都會大于m,第k位為1提完,異或結(jié)果為0形纺,遞歸獲得結(jié)果;
- aDigit=0徒欣, mDigit=0時逐样,字典中第k位為1,異或結(jié)果為1打肝,與對應(yīng)分支所有數(shù)異或脂新,結(jié)果都會大于m,第k位為0粗梭,異或結(jié)果為0争便,遞歸獲得結(jié)果;