




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
問題與練習(xí)答案
第1章
1.1節(jié)
1.上面的兩個輸入中有且只有一個必須為1,且最下面的輸入必須為1。
2.下面的輸入1被NOT門取反為0,使得AND門的輸出變?yōu)?。因此,OR門的2個輸入均為0(記
住,觸發(fā)器上面的輸入保持為0),因此OR門的輸出變成0。這就意味著,當(dāng)觸發(fā)器下面的輸
入變回0,AND門的輸出仍將保持0。
3.上面的OR門的輸出將變?yōu)?,使得上面的NOT門得到一個輸出0。這會使得下面的OR門得到
一個輸出0,并使得下面的NOT門得到一個輸出1。這個1被看作是觸發(fā)器的輸出,同時反饋
給了上面的OR門,這時,它將該門的輸出保持為1,即使在觸發(fā)器的輸入已經(jīng)變回0。
4.當(dāng)時鐘為0時,觸發(fā)器將屏蔽掉電路的輸入值。當(dāng)時鐘為1時,觸發(fā)器將響應(yīng)電路的輸入值。
5.a.整個電路等同于單個XOR門。
b.這個電路也等同于單個XOR門。
6.a.6AF2b.E85517c.48
7.a.01011111110110010111
b.0110000100001010
c.1010101111001101
d.0000000100000000
1.2節(jié)
1.在第一種情況下,地址為6的存儲單元最后結(jié)果為值5。在第二種情況下,它的最后結(jié)果值為
8。
2.在步驟1當(dāng)新值寫入3號存儲單元時,該單元的原始值被擦去了。因此,步驟2并沒有將3號存
儲單元中原始值存入2號存儲單元中。結(jié)果是:兩個存儲單元最后的值都是最初2號存儲單元
中的值。正確的步驟如下:
步驟1,將2號存儲單元中的內(nèi)容移到1號存儲單元。
步驟2,將3號存儲單元中的內(nèi)容移到2號存儲單元。
步驟3,將1號存儲單元中的內(nèi)容移到3號存儲單元。
3.32768位。
382問題與練習(xí)答案
1.3節(jié)
1.有較快的數(shù)據(jù)檢索速度以及較高的傳輸速率。
2.這里要記住的一點是,與計算機內(nèi)部運作速度相比較,機械動作的緩慢表明:我們應(yīng)該把必
須移動讀/寫磁頭的次數(shù)減到最少。如果我們要在寫滿磁盤的?面后再開始下?面,那么當(dāng)
我們在寫滿一個道時都必須移動一次讀/寫磁頭。因此磁頭移動的次數(shù)就大約等于磁盤兩個
盤面所有道的總和。不過,如果我們通過電子方式在磁盤表面之間切換讀/寫磁頭,我們就
只需要在每個柱面寫滿時才移動一次讀/寫磁頭了。
3.在這個應(yīng)用中,必須從海量存儲系統(tǒng)中隨機地檢索信息,而對于CD和DVD等設(shè)備中使用的
螺旋系統(tǒng),這種方法是很耗時的。(而且,現(xiàn)在的技術(shù)還無法使CD和DVD設(shè)備中的某部分?jǐn)?shù)
據(jù)進(jìn)行更新。)
4.存儲空間是以物理扇區(qū)為單元分配的(事實上,在大多數(shù)情況下是以扇區(qū)組為單元)。如果
最后一個物理扇區(qū)沒有被寫滿,可以再填加新的文本,而不需要增加此文檔的存儲空間。如
果最后一個物理扇區(qū)已經(jīng)被寫滿,那么無論要給該文檔填加什么內(nèi)容,都需要分配額外的物
理扇區(qū)。
5.閃存駁動器不需要物理運動,因此所需要的響應(yīng)時間比較短,而且不會有物理損耗。
6.緩沖區(qū)是一個臨時的數(shù)據(jù)存儲區(qū)域,通常用作解決數(shù)據(jù)源與最終目的地不一致性的手段。
1.4節(jié)
1.Computerscience。
2.除了從低端數(shù)第6位對應(yīng)的大寫字母和小寫字母分別是0和1外,兩個位模式是相同的。
3.a.01010111011010000110010101110010
01100101001000000110000101110010
01100101001000000111100101101111
0111010100111111
b.00100010010010000110111101110111
00111111001000100010000001000011
01101000011001010111001001111001
01101100001000000110000101110011
01101011011001010110010000101110
c.00110010001010110011001100111101
0011010100101110
4.
(A______、,一、(A~~[A)[A1%1
**
**???***
▼舊____________JJLJ
I_____vjLyJ1._____VJI___L
5b.9c.11d.6c.16f.18
6.a.110b.1101c.1011d.10010e.11011f.100
7.在24位中,我們利用ASCII碼可以存儲3個符號。因此,可存儲的值最大能夠達(dá)到999。不過,
如果我們將這些位用作二進(jìn)制數(shù)字,那么可存儲的值則最大可達(dá)16777215。
問題與練習(xí)答案383
8.a.15.15b.51.0.128c.10.160
9.如文中強調(diào)的,矢量技術(shù)在改變圖像大小上比位圖技術(shù)更有益處。對于簡單的線性圖形,矢
量技術(shù)也較緊湊。不過,矢量技術(shù)提供的攝影質(zhì)量不及位圖技術(shù)產(chǎn)生的。
10.以每秒44100樣本的采樣頻率,一小時的立體聲音樂需要63504000個字節(jié)的存儲空間。這
也就差不多寫滿了一張容量略大于600MB的CD。
1.5節(jié)
La.42b.33c.23d.6e.31
2.a.100000b.1000000c.1100000d.1111e.11011
3-a-3-b.75c.12d.36-e.5
48288
4.a.100.1b.10.11c.1.001d.0.0101e.101.101
5.a.100111b.1011.110c.100000d.1000.00
1.6節(jié)
La.3b.15c.-4d.-6e.0f.-16
2.a.00000110b.11111010c.11101111
d.00001101e.11111111f.00000000
3.a.11111111b.10101011c.00000100
d.00000010e.00000000f.10000001
4.a.4位時,最大值是7,最小值是-8.
b.6位時,最大值是31,最小值是?32.
c.8位時,最大值是127,最小值是-128.
5.a.0111(5+2=7)b.0100(3+1=4)c.1111(5+(-6)=-1)
d.0001(-2+3=1)e.1000(-6+(-2)=-8)
6.a.0111b.1011(溢出)c.0100(溢出)
d.0001e.1000(溢出)
7.a.0110b.0011c.0100d.0010e.0001
乜皿L+1110包3+0100+1011_____
01110001111001101100
8.不會。如果一個數(shù)對于使用中的系統(tǒng)過大時,那么試圖存儲這個數(shù)則會產(chǎn)生溢出現(xiàn)象。當(dāng)一
個正值與一個負(fù)值相加時,結(jié)果一定在這2個數(shù)值之間。于是,如果原始數(shù)值能夠被存儲,
那么結(jié)果也是可以被存儲的。
9.a.6,因為610Tl4-8
b.-1,因為0111-7-8
c.0,因為1000-8-8
d.-6,因為0010-2-8
e.-8,因為0000-0-8
f.1,因為1001-9-8
10.a.1101,因為5+8=13—1101
b.0011,因為-5+8=3-0011
c.1011,因為3+8=1111011
384問題與練習(xí)答案
d.1000,因為0+8=8-1000
e.1111,因為7+8=15—1111
f.0000,因為-8+8=0-0000
11.不可以。余8記數(shù)法可以存儲的最大值是7,表示為1111。如果要表示更大的值,至少需要余
16記數(shù)法(這個記數(shù)法采用5位模式)。類似地,6也無法用余4記數(shù)法表示。(能夠用余4記數(shù)
法表示的最大值是3。)
1.7節(jié)
1
b.4a.264
o32
2.a.01101011b.01111010(截斷誤差)
c.01001100.d.IIIOIUDe.11111000(截斷誤差)
a17
3.01001001比00111101大。下面是確定哪個位模式表示更大值的一個簡單方法。
1632
第種情況:如果符號位不同,那么符號位為0的更大。
第二種情況:如果兩個符號位都是0,那么從左至右掃描這兩個位模式的其余部分,一直到
發(fā)現(xiàn)某一個二進(jìn)制位,其位置上的位模式不同。在這個位置上包含1的位模式表示較大的值。
第三種情況:如果兩個符號位都是1,那么從左至右掃描這兩個位模式的其余部分,一直到
發(fā)現(xiàn)某一個二進(jìn)制位,其位置上的位模式不同。在這個位置上包含0的位模式表示較大的值。
這個比較過程的簡單性是采用余碼記數(shù)法(而不是二進(jìn)制補碼)表示浮點系統(tǒng)指數(shù)的?個原
因。一
4.最大的數(shù)值是7:表示為位模式01111111。關(guān)于最小的正值,你們可以認(rèn)為有2個“正確”
2
答案。首先,如果你堅持文中所描述的編碼過程,它耍求尾數(shù)的最高有效位必須為1(稱為
規(guī)格化格式),答案則為',表示為位模式00001000。不過大多數(shù)機器并不對接近0的值施
32
加這樣的限制,因此這時候的正確答案是?,表示為位模式00000001。
256
1.8節(jié)
1.行程長度編碼、頻率相關(guān)編碼、相對編碼和字典編碼。
2.121321112343535
3.彩色卡通是由邊框清晰的單色塊構(gòu)成的而且所包含的顏色數(shù)目是有限的。
4.不是,GIF和JPEG都是有損壓縮系統(tǒng),也就是說,圖像中的細(xì)節(jié)可能會丟失。
5.JPEG基準(zhǔn)標(biāo)準(zhǔn)利用了人眼的一個事實:人眼對于顏色變化不如對光線的變化敏感。因此,
減少表示顏色信息的位數(shù),而沒有明顯地影響圖像質(zhì)量。
6.暫時模糊和頻率模糊。
7.對信息編碼時都要取近似值。對于數(shù)字?jǐn)?shù)據(jù),這些近似值在計算過程中會積累,這可能導(dǎo)致
錯誤的結(jié)果。而對于圖像和聲音,近似值就沒有那么嚴(yán)重,因為這些被編碼的數(shù)據(jù)只是進(jìn)行
存儲、傳輸以及再現(xiàn)。不過如果圖像和聲音反復(fù)地再現(xiàn)、存儲,然后再編碼,那么這些近似
值就會積累,因此最終導(dǎo)致無用的數(shù)據(jù)。
問題與練習(xí)答案385
1.9節(jié)
1.b、c和e。
2.有。如果在一個字節(jié)中出現(xiàn)了偶數(shù)個錯誤,那么奇偶校驗技術(shù)就無法檢測到它們。
3.在這種情況下,問題1中的a和b字節(jié)中出現(xiàn)了錯誤。問題2的答案是一樣的。
4.a.001010111001101000101100101
101110010101100101000100000
001100001101110010101100101
000100000001111001101101111
001110101100111111
b.100100010101001000101101111
101110111100111111100100010
000100000001000011001101000
101100101101110010001111001
101101100000100000001100001
001110011001101011101100101
001100100100101110
c.000110010100101011100110011
000111101100110101100101110
5.a.BEDb.CABc.HEAD
6.一個解如下:
A00000
B11100
CO1111
D10011
第2章
2.1節(jié)
1.對于一些機器,這個過程包含2步:首先是從第一個單元讀取內(nèi)容到寄存器,然后將內(nèi)容從
寄存器寫入目標(biāo)單元。對于大多數(shù)機器,這個過程只是當(dāng)作一個活動被實現(xiàn)的,而不需要中
間寄存器。
2.要寫入的值、要寫入的單元的地址以及要寫入的命令。
3.通用寄存器用于存儲操作中馬上用到的數(shù)據(jù),主存儲器用于存儲不久就要用到的數(shù)據(jù),海量
存儲器用于存儲暫時不會用到的數(shù)據(jù)。
2.2節(jié)
1.move這個術(shù)語常用來表示從一個位置移到另外一個位置,因此后面留卜一個空位。不過,
在?個機器中大多數(shù)情況下是不會發(fā)生這種移動的。相反,被移動的目標(biāo)通常是被復(fù)制到新
的位置。
2.稱為相對尋址的常用技術(shù)指的是跳多遠(yuǎn)而不是跳到哪里。例如,一條指令可能向前跳3條指
令,或者向后跳2條指令。不過,你應(yīng)該知道,如果后來在轉(zhuǎn)移(JUMP)指令的起點及目的
386問題與練習(xí)答案
地之間加入了額外的指令,那么就要改變這些指令了。
3.從兩方面講都可以。這條指令是以條件轉(zhuǎn)移的形式表述的。不過,由于0等于0這樣的條件總
是可以滿足的,所以這個轉(zhuǎn)移一定會發(fā)生,就好像根本沒有提到條件。你經(jīng)常會遇到帶有這
種指令的機器,因為這樣的設(shè)計有效。例如,如果一臺機器設(shè)計成可以執(zhí)行帶有“if…jump
to…”這條指令,那么這個指令就既可以用于表示條件轉(zhuǎn)移,也可以表示無條件轉(zhuǎn)移。
4.156C=0001010101101100
166D=0001011001101101
5056=0101000001010110
306E=0011000001101110
C000=1100000000000000
5.a.將寄存器6的內(nèi)容存入(STORE)地址為8A的存儲單元。
b.如果寄存器A的內(nèi)容與寄存器0的內(nèi)容相同,轉(zhuǎn)移(JUMP)到位置DE。
c.將寄存器3和寄存器C的內(nèi)容進(jìn)行與(AND),并將結(jié)果存入寄存器0。
d.將寄存器F的內(nèi)容移動(MOVE)至寄存器4。
6.指令15AB要求CPU查詢存儲電路,查找地址為AB的存儲單元的內(nèi)容。當(dāng)這個值從存儲器中
獲得時,要存入寄存器5。指令25AB并沒有這樣的存儲器要求,而是將值A(chǔ)B存入寄存器5。
7.a.2356b.A503c.80A5
2.3節(jié)
1.十六進(jìn)制值34。
2.a.OFb.C3
3.a.00b.01c.4次
4.它停機了。這是-一個通常稱為自修改代碼的例子。也就是說,程序可以自我修改。需要注意
的是,前2條指令將十六進(jìn)制C0存入存儲單元F8,接下來的2條指令將00存入存儲單元F9。
因此,當(dāng)機器達(dá)到地址為F8的指令時「停止指令(C000)已經(jīng)在那里了。
2.4節(jié)
1.a.00001011b.10000000c.00101101
d.11101011e.11101111f.11111111
g.11100000h.01101111i.11010010
2.00111100,AND運算
3.00111100,XOR運算
4.a.如果該串包含偶數(shù)個1,最后結(jié)果就為0;否則為1。
b.結(jié)果是偶校驗的校驗位的值。
5.邏輯XOR運算類似于加法,除了2個操作數(shù)都為1的情況,這時XOR運算的結(jié)果為0,而加法
為10。(于是XOR運算可以被看作是沒有進(jìn)位的加法運算。)
6.用掩碼11011111進(jìn)行AND運算,可以將小寫改成大寫。用00100000進(jìn)行OR運算,可以將大
寫改成小寫。
7.a.01001101b.11100001c.11101111
8.a.57b.B8c.6Fd.6A
9.5
問題與練習(xí)答案387
10.用二進(jìn)制補碼為00110110,用浮點記數(shù)法為0101110。關(guān)鍵點是:由于位模式表示的不同,
用于值相加的過程也就不同。
11.一個解如下:
12A7(將地址為7的存儲單元的內(nèi)容加載(LOAD)寄存器2。)
2380(將值80加載(LOAD)寄存器3。)
7023(將寄存器2和寄存器3進(jìn)行OR運算,并將結(jié)果存入寄存器0。)
30A7(將寄存器0的內(nèi)容存入(STORE)地址為A7的存儲單元。)
C000(停止。)
12.一個解如下:
15E0(將地址為E0的內(nèi)容加載(LOAD)寄存器5。)
A502(將寄存器5的內(nèi)容向右循環(huán)移動(ROTATE)2位。)
260F(將值0F加載(LOAD)寄存器6。)
8056(將寄存器5和寄存器6進(jìn)行AND運算,并將結(jié)果存入寄存器0。)
30E1(將寄存器0的內(nèi)容存入地址為E1的存儲單元。)
C000(停止。)
2.5節(jié)
l.a.37B5
b.100萬次
c.不能。一個典型的文本頁包含不超過4000個字符。因此,每分鐘打印5頁文本的能力表示,
其打印速率不超過每分鐘20000個字符,這是遠(yuǎn)遠(yuǎn)低于每秒鐘100萬個字符的速率。(關(guān)鍵
點是,機器傳輸給打印機字符的速度要遠(yuǎn)遠(yuǎn)快于打印機能夠打印的速度,因此,打印機
需要一種告知機器等待的方式。)
2.該磁盤每秒鐘要轉(zhuǎn)50轉(zhuǎn),這就意味著在一秒鐘之內(nèi),有800個扇區(qū)要通過讀/寫磁頭。因為每
個扇區(qū)包含1024個字節(jié),所以通過讀/寫磁頭的二進(jìn)制位速度大約為6.5Mbit/s。因此,如果
控制器打算與磁盤中讀取到的數(shù)據(jù)同步,那么控制器與磁盤驅(qū)動器之間的通信速度至少要這
么快。
3.用ASCII碼表示的300頁小說大概有IMB,即8000000位。因此,如果要以57600bit/s的速度
傳輸整部小說,大約需要139s或即2'min。
3
2.6節(jié)
1.該管道會包含指令B1B0(正在執(zhí)行)、5002甚至B0AA。如果寄存器1中的值與寄存器0中的
值相等,那么就會執(zhí)行向地址B0轉(zhuǎn)移的指令。那么對于流水線中指令所做的努力則白費了。
另一方面,并沒有浪費時間,因為對于這些指令所做的努力并沒有花費額外的時間。
2.如果不采取任何預(yù)防措施,那么在該程序的前面部分有機會對存儲單元F8和F9進(jìn)行修改之
前,這兩個單元的信息已經(jīng)作為指令被讀取出來了。
3.a.試圖給該單元加1的CPU可以在該單元中首先讀取值。接著,另外一個CPU讀取該單元的
值。(需要注意的是:在這個時候,兩個CPU檢索到的是相同的值。)如果在第一個CPU
完成它的加法并將其結(jié)果寫入該單元之后,第二個CPU才完成它的減法,并記下結(jié)果,那
么單元中最后的值只是反映了第二個CPU的活動。
388問題與練習(xí)答案
b.兩個CPUM能還像以前一樣從存儲單元中讀取數(shù)據(jù),但是,第二個CPU這次可能會在第一
個CPU之前寫下結(jié)果。因此,該單元的最后值就只反映了第一個CPU的活動。
第3章
3.1節(jié)
1.一個傳統(tǒng)的例子是,人們?yōu)橘徺I比賽的門票而排的隊列。在這種情況中,可能存在著某些人
想“插隊”,這就破壞了FIFO結(jié)構(gòu)。
2.選項(b)和(c)。
3.實時處理是指:程序的執(zhí)行要與機器環(huán)境中的活動相協(xié)調(diào)。交互式處理是指:程序在執(zhí)行時,
人要與其進(jìn)行交互。成功的交互式處理需要良好的實時特性。
4.分時是在單處理器的機器上實現(xiàn)多任務(wù)處理的一種技術(shù)。
3.2節(jié)
1.外殼(shell):與機器環(huán)境進(jìn)行通信。
文件管理程序:協(xié)調(diào)機器的海量存儲器的使用。
設(shè)備驅(qū)動程序:處理與機器的外圍設(shè)備的通信。
內(nèi)存管理程序:協(xié)調(diào)機器的主存的使用。
調(diào)度程序:協(xié)調(diào)系統(tǒng)中的進(jìn)程。
分派程序:控制進(jìn)程的CPU時間的分配。
2.它們之間的界線比較模糊,其差別通常在于持有者的觀點。粗略來說,實用軟件完成的是基
本的、通用的任務(wù),而應(yīng)用軟件則通常只完成針對機器某一特定應(yīng)用的任務(wù)。
3.虛擬存儲器是虛構(gòu)的存儲空間,其表面上的存在是通過這樣的過程創(chuàng)建的,即數(shù)據(jù)和程序在
主存和海量存儲器之間來回交換數(shù)據(jù)。
4.當(dāng)機器接通電源時,CPU就開始執(zhí)行駐留在ROM中的引導(dǎo)程序。這個引導(dǎo)程序引導(dǎo)CPU完成
這樣一個過程,即把操作系統(tǒng)從海量存儲器傳送到主存的易失存儲區(qū)內(nèi)。當(dāng)這個傳送操作完
成時,引導(dǎo)程序就指引CPU跳轉(zhuǎn)至操作系統(tǒng)。
3.3節(jié)
1.程序是指令的集合,而進(jìn)程是遵循這些指令的操作。
2.CPU完成它的當(dāng)前機器周期,保存當(dāng)前進(jìn)程的狀態(tài),并把它的程序計數(shù)器設(shè)為?個預(yù)定的值
(即中斷處理程序的位置)。這樣一來,將要執(zhí)行的下一條指令就是中斷處理程序中的第一條
指令。
3.--種方法是給它們較高的優(yōu)先權(quán),使它們可以被分派程序引用。另種方法是給優(yōu)先權(quán)較高
的進(jìn)程以較長的時間片。
4.如果每個進(jìn)程都用完它的整個時間片,那么機器每秒鐘可以給至多20個進(jìn)程提供完整的時間
片。如果一些進(jìn)程沒有用完它們的時間片,那么這個進(jìn)程數(shù)目的值可能還會大些,但是花在
實現(xiàn)進(jìn)程上下文切換所需的時間可能會更多(見第5題)。
5?總共50nl的機器時間將實際花在進(jìn)程執(zhí)行中。然而,當(dāng)一個進(jìn)程請求一個I/O活動時,它的
5000
時間片在控制器完成這個請求時就終止了。這樣?來,如果每個進(jìn)程都在它的時間片只用了
問題與練習(xí)答案389
時就作出這樣的請求,那么機器的效率將降至‘。也就是說,機器用于執(zhí)行進(jìn)程上下文
2
切換和用于進(jìn)程的執(zhí)行的時間樣多。
3.4節(jié)
1.這個系統(tǒng)保證,該資源一次不會被多于一個進(jìn)程使用;然而,它表明了該資源是嚴(yán)格按照交
替方式分配的。一旦一個進(jìn)程已經(jīng)用完并放棄了這個資源,那么如果該進(jìn)程要再次訪問這個
資源時,它就必須得等待其他進(jìn)程使用這個資源。即使是第?個進(jìn)程馬上需要這個資源,而
其他進(jìn)程在一段時間內(nèi)不需要這個資源時,情況依然如此。
2.如果兩輛汽車同時進(jìn)入這個隧道的兩端,那么它們將都不知道對方的存在。汽車進(jìn)入和燈的
打開過程是臨界區(qū)的另一個例子,或者說,在這種情況下,我們可以稱它為臨界過程。在這
個術(shù)語中,我們可以概括出這個系統(tǒng)的缺點,即隧道兩端的汽車能夠同時執(zhí)行臨界過程。
3.a.這保證了不可共享的資源不能被部分地請求和分配;也就是說,要么將整個橋梁給?輛汽
車,要么就什么也不給。
b.這就意味著:不可共享的資源可以被強制收回。
c.這就使得不可共享資源成為可共享的,這樣就消除了競爭。
4.箭頭序列在這個有向圖中形成了?個閉環(huán)。根據(jù)這個觀察的結(jié)果,已經(jīng)開發(fā)出了些技術(shù),
使得某些操作系統(tǒng)能夠識別出死鎖的存在,并據(jù)此采取適當(dāng)?shù)母恼胧?/p>
3.5節(jié)
1.姓名和日期被認(rèn)為是不好的候選對象,這是因為它們是常用的選擇,所以容易成為密碼猜測
者的目標(biāo)。使用完整的單詞也被認(rèn)為不好,這是因為密碼猜測者能夠很容易編寫一個程序,
用來嘗試字典里的所有單詞。而且,只包含字符的密碼也是不鼓勵的,這是因為它們是從有
限的字符集中構(gòu)成的。
2.利用兩位構(gòu)成的不同位模式的數(shù)目是4。如果需要更多的特權(quán)級別,那么設(shè)計者至少需要三
位來表示不同的級別,這樣一來,總共就有8個級別可供選擇。按照同樣的方式,對于少于4
個特權(quán)級別的自然選擇就會是2,它是用?位可表示的位模式的數(shù)目。
3.這個進(jìn)程可以更改操作系統(tǒng)程序,使得分派程序把每個時間片都分配給該進(jìn)程。
第4章
4.1節(jié)
1.開放式網(wǎng)絡(luò)是這樣的一種網(wǎng)絡(luò):它的規(guī)格說明以及協(xié)議是公開的,于是不同的廠商可以生產(chǎn)
相互兼容的產(chǎn)品。
2.兩者都是通過連接兩個總線以形成一個更大的總線網(wǎng)絡(luò)。不過,中繼器傳輸所有的信息,但
是網(wǎng)橋只傳輸那些目的地是該網(wǎng)橋另一端的信息。
3.路由器是一臺連接兩個網(wǎng)絡(luò)以形成?個因特網(wǎng)的機器。術(shù)語網(wǎng)關(guān)(gateway)通常用于指將
一個域與因特網(wǎng)其他部分相連的路由器。
4.郵購業(yè)務(wù)以及它的客戶,銀行出納員以及銀行的客戶,或者藥劑師以及他的顧客。
5.在交通流量、口頭電話通信以及禮儀上有許多的協(xié)議。
390問題與練習(xí)答案
4.2節(jié)
1.一個網(wǎng)絡(luò)標(biāo)識符標(biāo)識一個域。一個主機地址標(biāo)識一個域內(nèi)的一臺機器。這兩者組成了IP地址。
2.一臺主機完整的因特網(wǎng)地址包括其網(wǎng)絡(luò)標(biāo)識符以及該主機的地址。
3.3.4.5表示3個字節(jié)的位模式000000110000010000000101?位模式0001001100010000用點分十
進(jìn)制法表示為19.16。
4.這個問題可能有幾個答案。其中一個就是,它們都是從特殊到一般。助記形式的因特網(wǎng)地址
都是以一臺特定機器的名字開始,然后是TLD的名字。郵政地址是從個人的名字開始,然后
逐漸到比較大的區(qū)域,例如城市、州、國家。這個順序與IP地址是相反的,它最開始是標(biāo)識
域的位模式。
5.名字服務(wù)器有助于將助記地址翻譯成IP地址。郵件服務(wù)器傳輸、接收以及存儲郵件信息。FTP
服務(wù)器提供文檔傳輸服務(wù)。
6.SSH提供加密以及認(rèn)證。
4.3節(jié)
1.URL本質(zhì)上是一個文檔在萬維網(wǎng)上的地址。瀏覽器是幫助用戶訪問超文本的程序。
2.標(biāo)記語言是在文檔中加入解釋信息的一個系統(tǒng)。
3.HTML是一種特殊的標(biāo)記語言。XML是產(chǎn)生標(biāo)記語言的標(biāo)準(zhǔn)。
4.a.<html>表明個HTML文檔的開始。
b.<head>表明一個文檔首部的開始。
C.</body〉表明一個文檔主體的結(jié)束。
d.</a>表明鏈接到另一個文檔的項目的結(jié)束。
5.客戶端與服務(wù)器端是兩個用于標(biāo)識一個活動是在客戶的機器上實現(xiàn)的,還是在服務(wù)器的機器
上實現(xiàn)的術(shù)語。
4.4節(jié)
1.鏈路層接收報文,并將其傳送至網(wǎng)絡(luò)層。網(wǎng)絡(luò)層注意到這個報文是傳輸給另外一個主機的,
于是給該報文寫入了另外?個中間目的地址,然后將該報文送回鏈路層。
2.不同于TCP,UDP是一個無連接協(xié)議,它不能保證報文會在目的地被接收到。
3.每個報文都被賦予了一個跳數(shù)值,它決定了報文被中繼傳播的最大次數(shù)。
4.實際上沒有辦法。任何主機上的程序員都可以修改該主機的軟件,以保存這些記錄。這就是
給敏感數(shù)據(jù)加密的原因所在。
4.5節(jié)
1.惡意軟件進(jìn)入計算機系統(tǒng)最常用的方式是通過郵件附件或者是隱藏在受害者下載的軟件中。
然而,間諜軟件則通常放在不被受害者懷疑而訪問的萬維網(wǎng)服務(wù)器中。
2.一個域的網(wǎng)關(guān)是一個路由器,它只是將通過它的分組(報文的一部分)繼續(xù)轉(zhuǎn)發(fā)。因此,網(wǎng)
關(guān)上的防火墻不能通過它的內(nèi)容而只能通過它的地址信息過濾通信流。
3.使用口令可以保護數(shù)據(jù)(當(dāng)然也包括信息)。加密的使用可以保護信息。
4.對于公鑰加密系統(tǒng),知道報文如何被加密并不能夠?qū)笪倪M(jìn)行解密。
5.這些問題是國際化的,因此不隸屬于某一個政府的法律。不過,法律修正只是給那些受傷害
人一些幫助,并不能真正防止傷害。
問題與練習(xí)答案391
第5章
5.1節(jié)
1.進(jìn)程是執(zhí)行算法的活動。程序是算法的表示。
2.在緒論里,我們引證了演奏音樂、操作洗衣機、構(gòu)造模型、表演魔術(shù)以及歐兒里得算法等算法。
我們在日常生活中遇到的許多“算法”按照我們的正式定義都不能算是算法。本書引證的長除
算法就是一個例子。另一個例子是時鐘執(zhí)行的算法:它的指針日復(fù)一日地走動,奏鳴鐘聲。
3.非正式定義沒有要求步驟是有序的和無歧義的,它只在要求里暗示,步驟是可執(zhí)行的且能終
止的。
4.這里存在兩點。一是這些指令定義了?個不可終止的過程。但是事實上,這個過程最終到達(dá)
這樣的狀態(tài):你的口袋里沒有硬幣。實際上,這可能是個初始狀態(tài)。二是算法是有歧義的。
這個算法正:像所表示的,它沒有告訴我們在這個情況下該怎么做。
5.2節(jié)
1.以物質(zhì)的組成為例。在一個層面上,原語被認(rèn)為是分子,而分子實際是由原子組成的,原子
又是由電子、質(zhì)子和中子組成的。今天,我們知道,這些“原語”甚至也是合成物。
2.一旦一個過程被正確地構(gòu)建,那么它就可以用作較大程序結(jié)構(gòu)的構(gòu)件塊,不必再重新考慮該
過程的內(nèi)部構(gòu)成。
3.X<-較大的輸入;
Y一較小的輸入;
while(Y不是0)do
(Remainder<-X被Y除后的余數(shù);
X-Y;
YRemainder);
GCD—X
4.光的所有其他顏色都可由紅、藍(lán)和綠組合產(chǎn)生。所以,電視機的顯像管被設(shè)計成能產(chǎn)生這三
種基色。
5.3節(jié)
1.a.if(n=1orn=2)
then(答案是含有一個值n的列表)
else(n除以3,得到商q和余數(shù)r
if(r=O)
then(答案是含有q個3的列表)
if(r=l)
then(答案是含有(q-1)個3和2個2的列表)
if(r=2)
then(答案是含有q個3和1個2的列表)
)
b.結(jié)果是含有667個3的列表。
c.用小的輸入值來試驗,直到看出一個模式。
392問題與練習(xí)答案
2.a.可以。提示:把第一個棋子放在中心,這樣使得其他各個象限覆蓋一個正方形時它能避
免該象限含有那個洞。每個象限是原來問題的較小版本。
b.有一個洞的棋盤含有2)1個正方形,而每個棋子實際覆蓋3個正方形。
c.對于知道一個問題的解如何能夠幫助解決其他問題,問題a和b提供了極好的例子。見Ploya
的第4階段。
3.Thisisthecorrectanswer.
4.簡單地設(shè)法去拼裝圖片是一個白底向上的方法。然而,通過觀察拼圖盒來看圖形是什么樣子
為你的方法增加了自頂向下的成分。
5.4節(jié)
1.把while語句的測試修改為“目標(biāo)值不等于當(dāng)前表項并且還有表項耍檢查”。
2.Z<-0;
X—1;
repeat(Z<—Z+X;
X-X+1)
until(X=6)
3.這是C語言中的一個問題。當(dāng)關(guān)鍵字do和while分隔開若干行時,讀程序的人常常會在對while
語句的正常解釋上遇到障礙。特別是,一個do語句結(jié)尾處的while常常被解釋為一個while語
句的開始。所以,最好使用不同的關(guān)鍵字來表示先測試循環(huán)結(jié)構(gòu)和后測試循環(huán)結(jié)構(gòu)。
4.CherylAliceAlice
GeneCherylBrenda
AliceGeneCheryl
BrendaBrendaGene
5.堅持把主元放到列表里一個相同表項的上面是浪費時間。例如,按建議進(jìn)行修改,然后對所
有表項都相同的列表嘗試這個修改后的新程序。
6.proceduresort(List)
Ni1;
while(N小JList的長度)do
(J-N+1;
whilc(J不大JList的長度)do
(if(位置J里的表項小于位置N里的表項)
then(交換兩個表項)
J1J+1)
N-N+1)
7.下面這個解決方案的效率不是很高,你能使其效率更高嗎?
proceduresort(List)
N-List的長度;
While(N大于l)do
(J-List的長度;
while(J大于1)do
(if(位置J里的表項小于位置J-l里的表項)
問題與練習(xí)答案393
then(交換兩個表項)
J—J-1)
N—N-1)
5.5節(jié)
1.考慮的第一個名字是Henry,接下來是Larry,最后是Joe。
2.8,17
3.1,2,3,3,2,1
4.終止條件是“N大于等于3”(或“N不小于3”)。該條件的前提是沒有額外的激活被創(chuàng)建。
5.6節(jié)
1.如果該機器1s可以排序100個名字,那么它1s可以進(jìn)行」(10000.100)次比較。這意味著,每
4
次比較所花費的時間近似于0.0004s。因此,排序1000個名字平均需要1(1000_000」000)次
4
比較,大概需要100s或12min。
3
2.二分搜索法屬于。(1g")、順序搜索法屬于。(〃),而插入排序法屬于
3.0(lgn)類是效率最高的,接著是。(〃)、。(心和。("工
4.回答是不正確的,盡管聽起來可能是對的。事實是3張卡片中有兩張兩面是一樣的。干是,
取得這樣一張牌的概率是2/3。
5.不正確。如果被除數(shù)小于除數(shù),如3/7,給出的答案是1,盡管正確結(jié)果應(yīng)該是0。
6.不正確。如果X的值是0,而丫的值不是0,那么所給出的回答是不正確的。
7.每次構(gòu)建終止測試時,語句"Sum=l+2+…+K并且K小于等于為真。把這與終止條件“K
大于等于V'合并產(chǎn)生所希望的結(jié)論“Sum=l+2+…+M,。因為K初始化為0,并且每通過詼
循環(huán)增加1,所以它的值最終一定到達(dá)N。
8.不能保證。超出硬件和軟件所能控制的問題,如機械故障和電氣問題等,都會影響計算。
第6章
6.1節(jié)
1.一個用第三代語言編寫的程序,從某種意義上說它是獨立于機器的,因為它的運行步驟不是
按照諸如寄存器和存儲單元地址這樣的機器特征來描述的。在另一方面,從某種意義上說,
它又是依賴于機器的,因為算數(shù)溢出和截斷誤差還是會出現(xiàn)。
2.主要差別是,匯編器把源程序里的每條指令只翻譯為一條機器指令,而編譯器往往要產(chǎn)生許
多條機器語言指令才能等價于一條源程序指令。
3.說明性范型在于開發(fā)所要解決的問題的描述。函數(shù)式范型使程序員集中于把問題的解決用較
小的問題的解來描述。面向?qū)ο蠓缎蛣t強調(diào)描述問題的環(huán)境里的成分。
4.與前幾代語言相比,第三代語言使得程序比較多地用問題的環(huán)境來表達(dá),比較少地用計算機
細(xì)節(jié)來表達(dá)。
394問題與練習(xí)答案
6.2節(jié)
1.使用描述性常量可以改進(jìn)程序的可理解性。
2.聲明語句描述術(shù)語,命令語句描述算法中的步驟。
3.整型、實型、字符型和布爾型。
4.if-then-else和while循環(huán)結(jié)構(gòu)很常見。
5.同構(gòu)數(shù)組所有的成分有同樣的類型。
6.3節(jié)
1.局部變量僅在像過程這樣的程序單元內(nèi)是可訪問的,全局變量在整個程序中都是可訪問的。
2.函數(shù)是這樣的一個過程,它返回一個與函數(shù)名相關(guān)聯(lián)的值。
3.因為它們就是這樣的。I/O運算實際上是調(diào)用該機器的操作系統(tǒng)內(nèi)的例程。
4.形參是過程內(nèi)的標(biāo)識符。它是實參這個值的占位符號,在該過程被調(diào)用時,實參才傳遞給該
過程。
5.過程用于執(zhí)行一個動作,而函數(shù)用于產(chǎn)生一個值。于是,如果過程的名字反映它所執(zhí)行的動
作,函數(shù)名反映它所產(chǎn)生的值,那么這個程序就更可讀。
6.4節(jié)
1.詞法分析:識別標(biāo)記的過程。
語法分析:識別程序的文法結(jié)構(gòu)的過程。
代碼生成:產(chǎn)生目標(biāo)程序指令的過程。
2.符號表是語法分析程序從程序的聲明語句得到的信息的記錄。
4.它們是一個或幾個下述子串的實例:
forwardbackwardchachacha
backwardforwardchachacha
swingrightchachacha
問題與練習(xí)答案395
swingleftchachacha
6.5節(jié)
1.類是對象的描述。
2.大概是Meteorclass,由它可構(gòu)造各種流星。在類Meteorclass內(nèi),可以找
到名為
AimDirection的實例變量,它指示激光瞄準(zhǔn)的方向。這個變量大概會用在
fire、
turnRight和turnLeft等方法中。
3.類Employee可以包含與雇員的姓名、住址、服務(wù)年限等有關(guān)的特性。類FullTimeEmployee
可以包含與退休津貼有關(guān)的特性。類PartTimeEmployee可以包含與每周工作小時數(shù)利每小
時傭金等有關(guān)的特性。
4.構(gòu)造器是類里的一個特殊方法,它在創(chuàng)建該類的?個實例時執(zhí)行。
5.一個類里的某些項指定為私有,以防止其他程序單元直接訪問這些項。如果一個項是私有的,
那么修改這個項的影響應(yīng)該限于這個類的內(nèi)部。
6.6節(jié)
1.包含初始化執(zhí)行并發(fā)進(jìn)程的技術(shù)以及實現(xiàn)進(jìn)程間通信的技術(shù)。
2.?個方法是把負(fù)擔(dān)放在進(jìn)程上,另一個方法是把負(fù)擔(dān)放在數(shù)據(jù)上。后者的好處是把任務(wù)集中
在該程序的一個點上。
3.這包括天氣預(yù)報、空中交通管制、復(fù)雜系統(tǒng)(從核反應(yīng)到行人交通)的模擬、計算機網(wǎng)絡(luò)以
及數(shù)據(jù)庫維護。
6.7節(jié)
1.R、T和乙例如,我們可以證明,R是將「/?加到這個集合的結(jié)果,并且能夠證明這個解可以
得到空語句,證明如下:
空
3.a.thriftier(sue,carol)
thriftier(sue,john)
396問題與練習(xí)答案
b.thriftier(sue,carol)
thriftier(bill,carol)
c.thriftier(carol,john)
thriftier(bill,sue)
thriftier(sue,carol)
thriftier(bill,carol)
thriftier(billzjohn)
thriftier(sue,john)
4.mother(X,Y):-parent(X,Y),female(X)
father(XzY):-parent(X,Y),male(X)
第7章
7.1節(jié)
1.一長串賦值語句序列并不比設(shè)計成幾句嵌套的if語句復(fù)雜。
2.在使用了一段固定時間后,發(fā)現(xiàn)錯誤的數(shù)目為多少?這里的一個問題就是不能預(yù)先估算出這
個值。
3.這里的關(guān)鍵問題就是要考慮如何能對軟件的屬性進(jìn)行度量。用于估算一段軟件中錯誤數(shù)目的
一種方法是,在這個軟件設(shè)計時故意放進(jìn)一些錯誤。然后,在認(rèn)為軟件已調(diào)試后,檢查一下,
看原先的錯誤還存在多少。例如,如果你在軟件中故意放入7個錯誤,在調(diào)試后消除了5個錯
誤,那么你就可以推測,軟件中錯誤的總數(shù)只有丁油母於
7做.料F除。
5
4.教育或許就是這樣一種領(lǐng)域。早在研究人員開始試圖弄明白人類是怎樣學(xué)習(xí)的之前,人類就
已經(jīng)成功地相互教導(dǎo)。因此,在教育領(lǐng)域,實踐家及其開發(fā)的技術(shù)占主導(dǎo)地位。在今天,許
多人都這么認(rèn)為:理論學(xué)家只會把事情弄糟。
7.2節(jié)
1.系統(tǒng)需求是從應(yīng)用環(huán)境的角度來表述的,而系統(tǒng)規(guī)格說明則是從技術(shù)術(shù)語的角度來表述的,
并確定如何滿足系統(tǒng)需求。
2.分析階段的注意力集中在預(yù)期系統(tǒng)必須完成的工作。設(shè)計階段集中討論系統(tǒng)是如何實現(xiàn)其目
標(biāo)的。實現(xiàn)階段集中在系統(tǒng)的實際構(gòu)成。測試階段則集中在確保系統(tǒng)做它應(yīng)該要做的事情。
3.軟件需求文檔的作用是:為客戶和軟件工程公司之間,在所要開發(fā)軟件的需求和規(guī)格說明問
題上達(dá)成一致而編寫的文檔。
7.3節(jié)
1.傳統(tǒng)的瀑布方法要求分析、設(shè)計、實現(xiàn)和測試階段按照線性方式實現(xiàn),而原型開發(fā)模型則是
一種更為寬松的反復(fù)試驗、不斷探索的方法。
2.傳統(tǒng)的演化式原型開發(fā)是開發(fā)軟件的組織所實現(xiàn)的,而開放源碼開發(fā)的方法并不限制在
?個組織內(nèi)。在開放源碼開發(fā)的情況中,管理軟件開發(fā)過程的人沒有必要決定宣告呱些
增強,而在傳統(tǒng)的演化式原型開發(fā)中,管理軟件開發(fā)的人員要為員工分配明確的增強軟
件的任務(wù)。
3.對你而言,這是你要考慮的。如果你是軟件開發(fā)公司的管理者,你能夠?qū)δ愕墓疽N售的
軟件采用開放源碼的方法進(jìn)行開發(fā)嗎?
問題與練習(xí)答案397
7.4節(jié)
1.?部小說的各章之間相互依存,而一部百科全書各個章節(jié)之間很大程度上是相互獨立的。所
以,小說的章節(jié)之間比百科全書的章節(jié)之間有更大的耦合度。然而,百科全書中的章節(jié)可能
比小說里的章節(jié)有更高的內(nèi)聚度。
2.累計積分可能是數(shù)據(jù)耦合的一個例子。其他可能存在的“耦合”包括疲勞、沖力、對對手策
略的了解,可能還有自信心。在許多體育運動項目中,因一局比賽的結(jié)束而重新開始下一局,
局的內(nèi)聚度會增加。例如,在棒球運動中,一個隊即使以滿壘結(jié)束了上輪擊球,每次輪到擊
球也都以沒有跑壘選手開始。在其他有些運動中,各單元分別記分,如網(wǎng)球比賽中,每局的
輸贏與其他局無關(guān)。
3.這是一個難題。從一種觀點來看,我們可以從把每件事情放在單一模塊中開始。這就造成了
較低的內(nèi)聚度而根本沒有耦合。然后,如果我們開始把單一模塊分割成一些較小的模塊,結(jié)
果就會使得耦合度增加。所以我們可能會得出結(jié)論:內(nèi)聚度的增加易于導(dǎo)致耦合度的增加。
從另一方面講,假設(shè)手頭上的問題自然地分割成3個內(nèi)聚度較高的模塊,稱為A、B和C。如
果原始的設(shè)計沒有注意到這種自然的分割(例如,A的泮任務(wù)可能與8的一半任務(wù)放在了
一起,等等),我們希望內(nèi)聚度低而耦合度高。在這種情況下,重新設(shè)計系統(tǒng),將任務(wù)A、B
和C分離至不同的模塊中,這就極有可能在增加模塊內(nèi)的內(nèi)聚度的同時降低了模塊間的耦合
度。
4.你可以添加一個箭頭,用來說明ControlGatne模塊必須告知UpdateScore模塊,誰贏得了
比賽。然后,再在其另外一個方向上添加一個箭頭,用來說明當(dāng)UpdateScore模塊把控制
權(quán)移交到ControlGame模塊時,它就將報告當(dāng)前的狀態(tài)(諸如“局結(jié)束”或“比賽結(jié)束”
等)。
5.你可以添加一些箭頭,用來說明控制權(quán)從Judge傳到PlayerA,且在Judge把控制權(quán)傳給
Score之前傳回到Judge。
6.傳統(tǒng)的程序員是在語句的基礎(chǔ)上寫程序,如第6章所介紹的;而構(gòu)件裝配員則是通過連接稱
為構(gòu)件的預(yù)制塊來構(gòu)建程序。
7.5節(jié)
1.首先確定的是,你的圖處理的是數(shù)據(jù)(不是書本的流動)。下面的圖就表明:書ID(來源于
讀者)和讀者記錄(來源于圖書館文件)結(jié)合成借書記錄,并存放在圖書館文件中。
讀者記錄
圖書
館文件
航空公司
乘客
398問題與練習(xí)答案
3.
入住
5.設(shè)計模式為實現(xiàn)反復(fù)出現(xiàn)的軟件主題提供了標(biāo)準(zhǔn)的、成熟的方法。
7.6節(jié)
1.軟件測試的目的是為了找出錯誤。那么,從這個意義上講,沒有發(fā)現(xiàn)錯誤的測試就是失
敗的。
2.辦法之就是考慮模塊中的分支數(shù)。例如,一個過程模塊,它包含
了大量的循環(huán)和
if-then-else語句,那么它很可能比一個帶有簡單的邏輯結(jié)構(gòu)的模塊更容易出錯。
3.邊界值分析會建議你用一個有100個數(shù)據(jù)項的表和一個沒有數(shù)據(jù)項的表對這個軟件進(jìn)行測
試。你還可以用一個已經(jīng)排好序的表進(jìn)行測試。
7.7節(jié)
1.文檔采用的形式有用戶文檔、系統(tǒng)文檔和技術(shù)文檔。通常是伴隨著手冊一起出現(xiàn)的,有注釋
和精心編寫代碼的源程序,程序本身顯示在終端上的交互式消息,有數(shù)據(jù)字典,以及文檔的
設(shè)計格式,如結(jié)構(gòu)圖、類圖、數(shù)據(jù)流圖和實體-聯(lián)系圖等。
2.在開發(fā)階段和修改階段。問題在于,修改必須要像原始程序一樣完全文檔化。(同樣,軟件
在其使用階段也要文檔化。例如,系統(tǒng)的一個用戶可能會發(fā)現(xiàn)問題,這個問題不是確定的,
而僅僅會在系統(tǒng)的用戶手冊的以后版本中得到反映。而且,有時候,有關(guān)軟件使用文檔的書
籍是在該軟件已經(jīng)使用了一段時間并開始流行后寫的。)
3.不同的人對此有不同的觀點。有些人認(rèn)為程序是整個項目的關(guān)鍵,所以自然更重要。而另一
部分人則認(rèn)為,如果程序沒有文檔,則它什么也不是,因為如果你不能理解一個程序,你就
不會使用和修改它。而且,如果有良好的文檔,創(chuàng)建程序的任務(wù)就“容易”被再創(chuàng)造。
7.8節(jié)
1.有時候,法院對實質(zhì)上的雷同解釋得相當(dāng)廣泛,考慮雷同遠(yuǎn)不止程序在文字成分上類似。一
些“非文字”成分已經(jīng)考慮在內(nèi),如程序結(jié)構(gòu)、設(shè)計記錄、軟件產(chǎn)生的感觀等。
問題與練習(xí)答案399
2.版權(quán)法和專利法有益于社會,是因為它們鼓勵新產(chǎn)品的創(chuàng)造者使他們的產(chǎn)品為公眾所用。行
業(yè)保密法有益于社會,是因為它們允許公司保護其產(chǎn)品開發(fā)的步驟免受競爭對手的侵犯。如
果沒有這種保護,公司會在新產(chǎn)品的大量投資上猶豫不決。
3.不承擔(dān)責(zé)任聲明不能成為公司玩忽職守的保護傘。
第8章
8.1節(jié)
1.表:運動隊隊員的名單。
棧:自助餐廳一疊盤子。
隊列:食堂里排的隊。
樹:許多政府部門的組織圖。
2.D和C是葉子(或終端)結(jié)點。B?定是根結(jié)點,因為所有其他結(jié)點都有父結(jié)點。
3.如果你想編寫一個下跳棋的游戲程序,那么表示棋盤的數(shù)據(jù)結(jié)構(gòu)將會是一個靜態(tài)數(shù)據(jù)結(jié)構(gòu),
這是因為棋盤的大小在游戲過程中是不會改變的。然而,如果你要編寫--個玩多米諾游戲的
程序,那么表示構(gòu)成臺上多米諾模式的數(shù)據(jù)結(jié)構(gòu)將會是一個動態(tài)數(shù)據(jù)結(jié)構(gòu),這是因為這個模
式的大小是可變的,而且不能預(yù)先確定。
4.電話簿實質(zhì)上是一個用來指向人的指針(電話號碼)集合。犯罪現(xiàn)場留下來的線索是(可能
加密過了)指向罪犯的指針。
8.2節(jié)
1.537428196
2.如果R為矩陣的行數(shù),那么公式就為H(J-l)+(/-I)
3.(ex,)+j
4.頭指針包含NIL值。
5.Last要打印的最后?個名字
Finishedfalse
(CurrentPointer頭指針;
while(CurrentPointer非NILandFinished=false)do
打印CurrentPointer指向的項,
if(正在打印的名字=last)
then(Finishedtme)
CurrentPointerthevalueinthepointerCellintheentrypointedtobyCurrenPointer指向的項中的指
針單元的值)
6.棧指針指向與棧底直接相鄰的那個單元。
7.把棧表示為一個一維數(shù)組,并把棧指針表示為一個整型變量。然后利用這個棧指針來保持棧
頂在數(shù)組中位置的一個記錄,而不是實際的存儲器地址。
8.空和滿這兩種情況都是由頭指針和尾指針相等來指示。這樣一來,需要一些附加信息來區(qū)分
這兩種情況。
400問題與練習(xí)答案
9.
根指針
8.3節(jié)
1.
2.當(dāng)查找J時:
當(dāng)查找P時:
3.
proceHurePrintTreefTree)pfocedurcTrlntTree(Tree)
if(Tree的根結(jié)點不為NIL)iffTree的根結(jié)點不為NIL)
then(對以Tree的左分支出現(xiàn)的樹應(yīng)then(對以Tree的左分支出現(xiàn)的樹應(yīng)
用PrintTree過程;用PrintTree過程;
PrintTree的根結(jié)點;犬PrintTree的根結(jié)點;
對以Tree的右分支出現(xiàn)的樹、產(chǎn)以Tree的右分支出現(xiàn)的樹應(yīng)用
—----------
PrintTree過程。)
當(dāng)K被打印時,在這里
問題與練習(xí)答案401
4.在每個結(jié)點上,每個孩子指針可用來表示字母表中的一個字母。沿著表示一個單詞的拼寫次
序的指針序列遍歷樹的路徑,就可以表示一個單詞。如果一個結(jié)點表示的是一個拼寫正確的
單詞的結(jié)束,那么它就可以用一種特殊的方式進(jìn)行標(biāo)記。
8.4節(jié)
1.類型是一個模板;而這個類型的實例是從這個模板構(gòu)建出的一個真實的實體。打個比方,狗
是動物的一類,而Lassie和Rex則是該類型的一個實例。
2.用戶自定義數(shù)據(jù)類型是數(shù)據(jù)組織的一種描述,而抽象數(shù)據(jù)類型則包括了對數(shù)據(jù)進(jìn)行處理的操
作。
3.這里的問題在于,你是選擇用鄰接表還是用鏈表來實現(xiàn)。你的選擇會影響到插入新項、刪除
舊項以及找到感興趣的項這些操作過程的結(jié)構(gòu)。然而,該抽象數(shù)據(jù)類型的實例的用戶是看不
到這種選擇的。
4.這個抽象數(shù)據(jù)類型至少得包含一個數(shù)據(jù)結(jié)構(gòu)的描述,用來存儲賬戶余額,以及通過支票進(jìn)行
存取的過程。
8.5節(jié)
1.抽象數(shù)據(jù)類型和類都是構(gòu)建類型實例的模板。然而,類更為普遍,這就在于它與繼承性相關(guān)
聯(lián),可以只描述一組過程的集合。
2.類是模板,通過它來構(gòu)建對象。
3.這個類可以包含一個循環(huán)隊列,以及用于添加項、刪除項、測試隊列為滿和測試隊列為空的
這些操作的過程。
8.6節(jié)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年軍隊文職人員招聘之軍隊文職管理學(xué)與服務(wù)通關(guān)題庫(附帶答案)
- 2025年消防設(shè)施操作員之消防設(shè)備基礎(chǔ)知識強化訓(xùn)練試卷A卷附答案
- 模擬卷浙江寧波2025屆高三一模語文試題及答案
- (一模)哈三中2025屆高三第一次模擬考試 語文試題(含答案)
- 公司管理理念宣傳手冊(講座內(nèi)容)
- 中學(xué)生讀書勵志征文
- 化工圖標(biāo)知識培訓(xùn)課件
- 酒店經(jīng)營特許合同
- 一站式居民服務(wù)解決方案協(xié)議
- 古詩文背景知識的教學(xué)策略
- 二次電纜敷設(shè)、接線作業(yè)指導(dǎo)書
- 《等腰三角形的性質(zhì)》優(yōu)秀課件
- 異常情況匯報流程圖
- 02312電力系統(tǒng)遠(yuǎn)動及調(diào)度自動化
- 校園欺凌談心記錄
- 《我在長大》-完整版PPT
- 人教鄂教版科學(xué)六年級下冊全冊教案
- 浙江四海氨綸纖維有限公司
- 畢業(yè)設(shè)計正文150TH循環(huán)流化床鍋爐爐膛本體設(shè)計
- 港股通開戶測評答案
- ISO9001質(zhì)量手冊
評論
0/150
提交評論