49.以下對C語言函數(shù)的有關描述中,正確的是(54)
(54) A. 在C語言中,調(diào)用函數(shù)時,只能把實參的值傳遞給形參,形參的值不能傳遞給實參
B. C函數(shù)既可以嵌套定義,又可以遞歸調(diào)用
C. 函數(shù)必須有返回值,否則不能定義成函數(shù)
D. C程序中,有調(diào)用關系的所有函數(shù)必須放在同一個源程序文件中
參考答案:(54) A。
解析:C語言規(guī)定,調(diào)用函數(shù)時,只能把實參的值傳遞給函數(shù)的形參。函數(shù)調(diào)用時,形參從實參表達式得到初值,報參也是函數(shù)的一種局部變量,其值可以改變,但形參的值不能傳回給對應的實參。當函數(shù)設置非指針類型的形參時,實參可以是同類型的一般表達式;當函數(shù)設置指針類型的形參時,對應的實參也必須是同類型的指針表達式。所以敘述A是正確的。C語言雖可以遞歸調(diào)用,但同時規(guī)定,在函數(shù)內(nèi)不能再定義函數(shù),所以敘述B是錯誤的。通常C函數(shù)會有返回值,但也可以沒有返回值。有許多情況,函數(shù)的執(zhí)行是完成某種預定的工作,并沒有返回值,所以敘述C是不正確的。在C程序中,如函數(shù)未指定是靜態(tài)的,則就是外部的,能讓別的文件中的函數(shù)調(diào)用。但函數(shù)要調(diào)用別的文件中的函數(shù),在調(diào)用代碼之前,需對它作說明,所以敘述D也是不正確的。正確的解答只有A。
50. 某軟件產(chǎn)品在應用初期運行在Windows 2000環(huán)境中,F(xiàn)因某種原因,該軟件需要在Linux環(huán)境中運行,而且必須完成相同的功能。為適應該需求,軟件本身需要進行修改,而所需修改的工作量取決于該軟件的 (55) 。
(55) A.可復用性
B.可維護性
C.可移植性
D.可擴充性
參考答案:(55)C。
解析:軟件的可復用性指軟件或軟件的部件能被再次用于其他應用中的程度。軟件復用性取決于其模塊獨立性、通用性和數(shù)據(jù)共享性等。
軟件的可維護性是指一個軟件模塊是否容易修改、更新和擴展,即在不影響系統(tǒng)其他部分的情況下修改現(xiàn)有系統(tǒng)功能中問題或缺陷的能力。
軟件的可移植性指將軟件系統(tǒng)從一個計算機系統(tǒng)或操作系統(tǒng)移植到另一種計算機系統(tǒng)或操作系統(tǒng)中運行時所需工作量的大小。可移植性取決于系統(tǒng)中硬件設備的特征、軟件系統(tǒng)的特點和開發(fā)環(huán)境,以及系統(tǒng)分析與設計中關于通用性、軟件獨立性和可擴充性等方面的考慮。
軟件的可擴充性指軟件的體系結構、數(shù)據(jù)設計和過程設計的可擴充程度?蓴U充性影響著軟件的靈活性和可移植性。
由以上分析可知,該軟件產(chǎn)品從Windows 2000環(huán)境中遷移到Linux環(huán)境中運行,為完成相同的功能,軟件本身需要進行修改,而所需修改的工作量取決于該軟件產(chǎn)品的可移植性。
51. 進程的五態(tài)模型包括運行狀態(tài)、活躍就緒狀態(tài)、靜止就緒狀態(tài)、活躍阻塞狀態(tài)和靜止阻塞狀態(tài)。針對圖5的進程五態(tài)模型,為了確保進程調(diào)度的正常工作,(a)、(b)和(c)的狀態(tài)分別為 (56) 。
圖6 進程的五態(tài)模型圖
(56) A.靜止就緒、靜止阻塞和活躍阻塞
B.靜止就緒、活躍阻塞和靜止阻塞
C.活躍阻塞、靜止就緒和靜止阻塞
D.活躍阻塞、靜止阻塞和靜止就緒
參考答案:(56)D。
解析:在多道程序系統(tǒng)中,進程在處理器上交替運行,在運行、就緒和阻塞3種基本狀態(tài)之間不斷地發(fā)生變化。由于進程的不斷創(chuàng)建,系統(tǒng)資源(特別是主存資源)已不能滿足進程運行的要求。此時就必須將某些進程掛起,對換到磁盤鏡像區(qū),暫時不參與進程調(diào)度,以平衡系統(tǒng)負載的目的。如果系統(tǒng)出現(xiàn)故障,或者是用戶調(diào)試程序,也可能需要將進程掛起檢查問題。
在圖6具有掛起狀態(tài)的進程狀態(tài)及其轉(zhuǎn)換圖中,活躍就緒是指進程在主存并且可被調(diào)度的狀態(tài)。(1)空缺處各選項中,靜止就緒是指進程被對換到輔存時的就緒狀態(tài),是不能被直接調(diào)度的狀態(tài),只有當主存中沒有活躍就緒態(tài)進程,或者是掛起態(tài)進程具有更高的優(yōu)先級,系統(tǒng)將把掛起就緒態(tài)進程調(diào)回主存并轉(zhuǎn)換為活躍就緒。因此,圖6的(c)空缺處應填入“靜止就緒”這一狀態(tài)。
活躍阻塞是指進程在主存中。一旦等待的事件產(chǎn)生,便進入活躍就緒狀態(tài)。因此,圖6的(a)空缺處應填入“活躍阻塞”。
靜止阻塞是指進程對換到輔存時的阻塞狀態(tài)。一旦等待的事件產(chǎn)生,便進入靜止就緒狀態(tài)。故圖6的(b)空缺處應填入“靜止阻塞”。
由以上分析可知,(56)空缺處的正確答案是選項D。
另外,對于一張完整的進程五態(tài)模型圖,則需在圖3-4模型圖中增加一條從“運行”態(tài)到“活躍阻塞”態(tài)的邊,其狀態(tài)轉(zhuǎn)換原因是“等待”事件(如I/O請求)發(fā)生,以及增加一條從“運行”態(tài)到“靜止就緒”態(tài)的邊,其狀態(tài)轉(zhuǎn)換原因是“掛起”。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |