1. cpu中不含有以下選項中的: c
a: 運算器
b: 暫存器
c: 記憶體
d: 時鐘
2. cpu中負責計時的部件是:f
e: 程式計數暫存器
f: 時鐘
g: 控制器
h: 靠人來計時
3. 對於彙編以下說法正確的是:j
i: 彙編需要編譯成機器碼
j: 彙編是助記符,和機器碼一一對應
k: 彙編是給cpu看的
l: 編譯器編譯出來的是彙編
4. 以下哪個暫存器名是錯的:d
a: 累加暫存器
b: 程式計數器
c: 標誌暫存器
d: 控制暫存器
5. 以下哪個說法是錯誤的:c
a: 計算機能夠執行分支是因為標誌暫存器
b: 計算機能夠執行迴圈是因為程式計數器
c: 控制器控制程式的分支及迴圈執行
d: 標誌暫存器負責儲存計算後結果的狀態
6. 請寫出二進位制,八進位制,十進位制,十六進製制(9之後使用字母順序)
二進位制八進位制
十進位制十六進製制
00000000 0
0 000000001 1
1 100000010 2
2 200000011 3
3 300000100 4
4 400000101 5
5 500000110 6
6 600000111 7
7 700001000 10
8 800001001 11
9 900001010 12
10 a
00001011 13
11 b
00001100 14
12 c
00001101 15
13 d
00001110 16
14 e
00001111 17
15 f
00010000 20
16 10
00010001 21
17 11
00010010 22
18 12
00010011 23
19 13
注:書寫規範:
八進位制前面+0
如01 02 017
十六進製制前面+0x
如0x00 0x0a
7. 請使用公式寫出二進位制數 011100001100000111000對應的十進位制,需要解題步驟:
011100001100000111000=1*(2^3+2^4+2^5+2^11+2^12+2^17+2^18+2^19)
= 8+16+32+ 2048+4096+131072+262144+524288
=923704
注:更簡單的演算法:把二進位制變為十六進製制,再由十六進製制轉十進位制! 0
1110
0001
1000
0011
1000
= e 1 8 3 8
= 14*16^4+1*16^3+8*16^2+3*16^1+8*16^0
=923704
8. 假設乙個32位帶符號(有負數)的二進位制數 0111 0010 1110 1111 0011 1111 0000 1100,請寫出對應的十進位制數
0111 0010 1110 1111 0011 1111 0000 1100=2^2+2^3+2^8+2^9+2^10+2^11+2^12+2^13+2^16+2^17+2^18+2^19+2^21+2^22+2^23+2^25+2^28+2^29+2^30=192 828 1868
注:首位為0,為正數,簡易演算法同上題
9. 假設乙個32位帶符號(有負數)的二進位制數 1111 0010 0010 1111 0011 0110 0000 1100,請寫出對應的十進位制數
反碼:1000 1101 1101 0000 1100 1001 1111 0011
補碼:1000 1101 1101 0000 1100 1001 1111 0100=-231786996
注:首位為1,為負數,首位後的二進位制與上題一樣,但是這不意味著就是上題答案加上負號就可以。
因為負數都是用補碼表示的,在進行計算前要先將補碼還原,即對補碼取反加1(符號位除外)
如此得出的數值才是正確的
10. 假設二進位制數(16位)0101 1111 0000 1111左移3位,結果是:
二進位制:1111 1000 0111 1000
十進位制:30840
十六進製制:f 8 7 8
11. 假設二進位制數(16位)0101 1111 0000 0000邏輯右移3位,結果是:
二進位制:0000 1011 1110 0000
十進位制:3040
十六進製制:0 b e 0
注:邏輯右移:霸道型右移,空位直接補0
==>邏輯右移後可能會出現「負變正」的現象
12. 假設二進位制數(16位)0101 1111 0000 0000算數右移3位,結果是:
二進位制:0000 1011 1110 0000
十進位制:3040
十六進製制:0be0
注:算術右移:溫柔型右移,根據首位補0或1
==>本題體現不大,下題比較明顯
13. 假設二進位制數(16位)1101 1111 0000 0000算數右移3位,結果是:
二進位制:1111 1011 1110 0000
十進位制:-1056
十六進製制:fbe0
注:首位為1,算術右移,空位根據首位補1
14. 請問以下**輸出的結果是 b
int main()
printf(「%f」,sum); }
a: 10.0000000
b: 10.0000002
c: 不知道
d: 1.0000000
注:計算機累加浮點數,肯定會有偏差,但是偏差大小是不知道的,即它的結果是不確定(隨機)的!(未定義操作)
15. 記憶體為什麼有位址,我們是通過什麼計算出記憶體的大小的?
便於管理記憶體中的資料,
記憶體大小=定址大小(位址引腳的數量)*每次可讀寫的資料大小(資料引腳)
注:(我的理解)
1.記憶體的結構中包含有許多的引腳,引腳可分為:電源引腳,位址引腳,資料引腳,控制引腳
=>而記憶體中的內容的操作順序是這樣的:先通過位址引腳確定位置,再通過資料引腳對資料進行操作
=> 為了使程式設計師能夠操作記憶體中的資料,有必要給每個資料乙個確定的位置資訊,使得我們可以直接找到它
=>因此,根據位址引腳的通電狀態,給每一記憶體都賦予乙個標記,這就是位址
2.記憶體大小=定址大小(位址引腳的數量)*每次可讀寫的資料大小(資料引腳的多少)
16. 程式設計時讀取和寫入記憶體速度最快的資料結構是: a
a: 陣列
b: 棧
c: 佇列
d: 鍊錶
17. 請說明下上一題中幾種資料結構的優勢
陣列:整體取出一塊記憶體,通過基址與變址可以快速讀寫資料,避免cpu繁重的計算
棧:便於記錄和回溯
佇列:先進先出
鍊錶:方便資料的插入、刪除等操作
注:陣列:快速的讀寫
棧:便於記錄查詢、回溯,資料進出順序是:先進後出
佇列:順序查詢、順序記錄,資料的進出順序:先進先出
鍊錶:方便進行資料的插入、刪除等操作
18. 程式是在記憶體中執行的:b
a: 對
b: 錯
注:翻看第一節課的筆記,程式->cpu的過程中,exe是載入進記憶體進行執行的
19. 所有的資料都是一直(包括關機時)儲存在:c
a: 記憶體
b: cpu
c: 硬碟
d: 我腦子裡
第一次計算機實驗
part1 驗證性內容 學號 include intmain hello world改寫 求兩個整數的乘積 include int product int,int 函式product int main void 函式product 定義 int product int a,int b 定義新的函式,...
第一次計算機比賽心得
1 第一次參加比賽,雖然是校級的計算機比賽,但是心裡還是很緊張,因為之前沒有經驗可談。2 這次比賽我的課題內容因為之前和學長參加的比賽有很多共性的地方,很學長交流溝通了很多,所以對流程比較熟悉。3 比賽前的準備也比較充分,一方面是實驗的器材,實驗環境的搭建做的比較充分,另一方面是應對評委老師可能提出...
Poedu 計算機基礎 20160906
1.計算機能夠精確表示所有數值 b a 對 b 錯 2.假設記憶體中位址引腳10個,資料引腳8個,那麼當前記憶體的大小為 1024byte 3.以下說法正確的是 a abc a 32位系統的記憶體位址是32位 b 32位記憶體位址的定址能力為0xffff ffff c 32位系統能管理的位址是429...