對一份浪潮筆試題中涵蓋知識點的刨析
近期準備去浪潮面試一波,但培訓班出來的本人對於基礎理論知識又有極大的欠缺,於是找到一份筆試題研究一下,不管結果如何,當做知識儲備提升吧,做下記錄
筆試題地址:https://wenku.baidu.com/view/734031d2eff9aef8951e064e.html
1.計算機中最適合進行數字加減運算的數字編碼是:補碼
對於補碼的是什麼,開始我是迷糊的,後來百度到https://www.cnblogs.com/guanjianzhuo/p/6017291.html這篇文章,感覺對其有了一些理解,但對於他說的負數補碼還是不懂,於是又百度,得知了補碼計演算法定義:非負數的補碼是其原碼本身;負數的補碼是其絕對值的原碼最高位符號位不變,其它位取反,再加1。
比如:在二進位制位數n為4時,7的原碼是0111,補碼是0111;
-3的絕對值3的原碼是0011, 對其取反的1100,+1的1101,故-3的補碼是1101,所以-3用二進位制形式為1101。
我們來驗證一下,0111+1101=10100,由於這裡是4位,即拋棄多的10000即-16,得到0100,這裡0100=4,計算正確
2.最適合表示浮點數階碼的數字編碼是:移碼
移碼就是在補碼基礎上加上2的n次冪,通俗地講,就是把符號位取反;移碼是無符號的,都是正自然數
3.如果主存容量為16M位元組,且按位元組編址,表示該主存地址至少應需要多少位
主記憶體容量為16MB,按位元組編址,因此地址總數為16M個,而1M=2^20b,16=2^4,所以,16M=2^24b,每一個位元組都要求有唯一的地址,至少要用24個二進位制位才能表示16M個不同的地址,所以主存的地址應該是24位
4.中斷響應時間是指:計算機接到中斷訊號到作業系統做出響應,並完成切換,進入中斷服務程式的時間.
5.表示式a*(b+c)-d的字尾表達形式為:
這裡解釋一下字首表示式,中綴表示式及字尾表示式
中綴表示式:即我們平時用到的正常運算表示式,如a*(b+c)-d
字首表示式:指的是不包含括號,運算子放在兩個運算物件的前面,所有的計算按運算子出現的順序,嚴格從左向右進行
字尾表示式:指的是不包含括號,運算子放在兩個運算物件的後面,所有的計算按運算子出現的順序,嚴格從左向右進行
轉換方式:
字首:
先由正常的中綴表示式按照運算順序加好括號,再把運算子號拿到最近的括號的前面,最後去掉括號,
如:a*(b+c)-d ---> ((a*(b+c))-d) ---> -(*(a+(bc))d) ---> -*a+bcd
字尾:
與字首相反:
如:a*(b+c)-d ---> ((a*(b+c))-d) ---> ((a(bc)+)*d) - ---> abc+*d-
6.若二叉樹的先序遍歷序列為ABDECF,中序遍歷序列DBEAFC,則其後序遍歷序列為:
先來了解一下二叉樹:https://baike.baidu.com/item/%E4%BA%8C%E5%8F%89%E6%A0%91/1602879?fr=aladdin
對於二叉樹的先序遍歷序列,中序遍歷序列,後序遍歷序列,我們已A,B,C來分別表示根,左子樹,右子樹,則
先序遍歷序列:A-B-C
中序遍歷序列:B-A-C
後序遍歷序列:B-C-A
瞭解了這些之後,我們就可以來還原題幹中的二叉樹了,如圖:
ps:畫圖板手動畫的,湊活著看吧
根據樹讀取,中序數列為:DBEAFC,與題幹符合,證明還原無誤,那麼後序即為DEBFCA
7.以比較為基礎的排序演算法在最壞情況下的計算時間下界為:
此問題考查以比較為基礎的排序演算法的時間複雜度分析,利用二元樹可以證明對任何以關鍵字比較為基礎的排序演算法,最壞情況的計算時間下界都為O(nlogn),如歸併排序演算法。
8.若廣義表L=((1,2,3)),則L的深度為2
一個表的"深度"是指表展開後所含括號的層數。
9.在TCP/IP網路中,為各種公共服務保留的埠號範圍是1-1023
10.軟體設計的主要任務是設計軟體的結構、過程和模組,其中軟體結構設計的主要任務是要確定:模組間的組成關係
軟體設計通常分為概要設計和詳細設計。概要設計的任務是確定軟體系統的結構,進行模組劃分,確定每個模組的功能、介面及模組間的呼叫關係。設計軟體系統的結構的主要目的是確定模組間的組成關係。