48.以下對C語言函數(shù)的有關(guān)描述中,正確的是()
A. 在C語言中,調(diào)用函數(shù)時,只能把實參的值傳遞給形參,形參的值不能傳遞給實參
B. C函數(shù)既可以嵌套定義,又可以遞歸調(diào)用
C. 函數(shù)必須有返回值,否則不能定義成函數(shù)
D. C程序中,有調(diào)用關(guān)系的所有函數(shù)必須放在同一個源程序文件中
參考答案:A。
解析:C語言規(guī)定,調(diào)用函數(shù)時,只能把實參的值傳遞給函數(shù)的形參。函數(shù)調(diào)用時,形參從實參表達式得到初值,報參也是函數(shù)的一種局部變量,其值可以改變,但形參的值不能傳回給對應(yīng)的實參。當函數(shù)設(shè)置非指針類型的形參時,實參可以是同類型的一般表達式;當函數(shù)設(shè)置指針類型的形參時,對應(yīng)的實參也必須是同類型的指針表達式。所以敘述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。
49. 某軟件產(chǎn)品在應(yīng)用初期運行在Windows 2000環(huán)境中。現(xiàn)因某種原因,該軟件需要在Linux環(huán)境中運行,而且必須完成相同的功能。為適應(yīng)該需求,軟件本身需要進行修改,而所需修改的工作量取決于該軟件的 () 。
A.可復用性
B.可維護性
C.可移植性
D.可擴充性
參考答案:C。
解析:軟件的可復用性指軟件或軟件的部件能被再次用于其他應(yīng)用中的程度。軟件復用性取決于其模塊獨立性、通用性和數(shù)據(jù)共享性等。
軟件的可維護性是指一個軟件模塊是否容易修改、更新和擴展,即在不影響系統(tǒng)其他部分的情況下修改現(xiàn)有系統(tǒng)功能中問題或缺陷的能力。
軟件的可移植性指將軟件系統(tǒng)從一個計算機系統(tǒng)或操作系統(tǒng)移植到另一種計算機系統(tǒng)或操作系統(tǒng)中運行時所需工作量的大小?梢浦残匀Q于系統(tǒng)中硬件設(shè)備的特征、軟件系統(tǒng)的特點和開發(fā)環(huán)境,以及系統(tǒng)分析與設(shè)計中關(guān)于通用性、軟件獨立性和可擴充性等方面的考慮。
軟件的可擴充性指軟件的體系結(jié)構(gòu)、數(shù)據(jù)設(shè)計和過程設(shè)計的可擴充程度。可擴充性影響著軟件的靈活性和可移植性。
由以上分析可知,該軟件產(chǎn)品從Windows 2000環(huán)境中遷移到Linux環(huán)境中運行,為完成相同的功能,軟件本身需要進行修改,而所需修改的工作量取決于該軟件產(chǎn)品的可移植性。
50. 進程的五態(tài)模型包括運行狀態(tài)、活躍就緒狀態(tài)、靜止就緒狀態(tài)、活躍阻塞狀態(tài)和靜止阻塞狀態(tài)。針對圖5的進程五態(tài)模型,為了確保進程調(diào)度的正常工作,(a)、(b)和(c)的狀態(tài)分別為 () 。
圖6 進程的五態(tài)模型圖
A.靜止就緒、靜止阻塞和活躍阻塞
B.靜止就緒、活躍阻塞和靜止阻塞
C.活躍阻塞、靜止就緒和靜止阻塞
D.活躍阻塞、靜止阻塞和靜止就緒
參考答案: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)空缺處應(yīng)填入“靜止就緒”這一狀態(tài)。
活躍阻塞是指進程在主存中。一旦等待的事件產(chǎn)生,便進入活躍就緒狀態(tài)。因此,圖6的(a)空缺處應(yīng)填入“活躍阻塞”。
靜止阻塞是指進程對換到輔存時的阻塞狀態(tài)。一旦等待的事件產(chǎn)生,便進入靜止就緒狀態(tài)。故圖6的(b)空缺處應(yīng)填入“靜止阻塞”。
由以上分析可知,(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)換原因是“掛起”。
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |