2017noip-錯題本
-
在8位二進制補碼中,10101011表示的數是十進制下的( ),
A. 43 B. -85 C. -43 D.84
最初選擇:A,因為只是去掉了符號位,并沒有理解補碼、反碼、原碼的概念,
正確答案:B
解題:由于是補碼,轉換為10進制的方法如下:補碼-1得到反碼,反碼取反得到原碼,經過進制轉換成為10進制,加符號,
10101011(補碼)->10101010(反碼)->01010101(原碼)->-(64+16+4+1)=-85👍
關于補碼、反碼、原碼不再贅述,
-
甲乙丙3位同學選修課程,從4門課程中選,甲選修2門,乙丙各選修3門,則不同的選修方案共有( ),
A. 36種 B. 48種 C.96種 D.192種
解題:考驗排列組合的組合,甲對應兩門課,兩門課顛倒順序不算所以是組合,乙和丙對應三門課,顛倒無效,所以如下圖(滑鼠手抖😅),結果96種,故選擇C,

-
設 G 是有 n 個結點、m 條邊(n ≤ m)的連通圖,必須刪去 G 的( )條邊, 才能使得 G 變成一棵樹,
A. m - n + 1
B. m - n
C. m + n + 1
D. n - m + 1
定理:樹的邊數=點數-1=n-1,所以要刪掉m-(n-1)=m-n+1條邊,
故選擇A,
-
運算式
a * (b + c) * d的后綴形式是( )A.
abcd*+*B.
abc+*d*C.
a*bc+*dD.
b+c*a*d解題:做這種題最好的方法是畫一棵樹,將運算式套進去,即可使用前序遍歷,后序遍歷找到前綴運算式(波蘭運算式)和后綴運算式(逆波蘭運算式),我們平時使用的是中綴運算式,最常用,但是計算機為了處理括號,制造出了后綴運算式,也就是后綴形式,不需要括號,
這個運算式的樹如下:

后綴運算式,就是運算式樹的后序遍歷,即為abc+*d*,故選擇B,樹的遍歷形式不明白也不再贅述,可以再評論區詢問,能看見一定回答,
一名Oier的努力,正在更新……
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/155792.html
標籤:其他
上一篇:Java資料型別
