




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、十一章 課后習(xí)題答案一、選擇題1. 下列關(guān)于異常的敘述錯(cuò)誤的是( A )。 A編譯錯(cuò)屬于異常,可以拋出B運(yùn)行錯(cuò)屬于異常 C硬件故障也可當(dāng)異常拋出D只要是編程者認(rèn)為是異常的都可當(dāng)異常拋出2. 下列敘述錯(cuò)誤的是( B )。 Athrow語句須書寫在時(shí)語句塊中 Bthrow語句必須在try語句塊中直接運(yùn)行或通過調(diào)用函數(shù)運(yùn)行 C一個(gè)程序中可以有try語句而沒有throw語句Dthrow語句拋出的異??梢圆槐徊东@3. 關(guān)于函數(shù)聲明 float fun(int a,int b)throw,下列敘述正確的是( B )。 A表明函數(shù)拋出float類型異常 B表明函數(shù)拋出任何類型異常 C表明函數(shù)不拋出任何類型異
2、常D表明函數(shù)實(shí)際拋出的異常4. 下列敘述錯(cuò)誤的是(C)。 Acatch()語句可捕獲所有類型的異常 B一個(gè)try語句可以有多個(gè)catch語句 Ccatch()語句可以放在catch語句組的中間D程序中try語句與catch語句是一個(gè)整體,缺一不可二、簡答題1. 什么是命名空間,怎樣定義命名空間?答: 命名空間是一個(gè)保持唯一名稱的區(qū)域,其實(shí)質(zhì)是一個(gè)作用域。語法為: namespace A /定義一個(gè)命名空間A int a; float b; void f() 其中namespace為定義的關(guān)鍵字,A為命名空間的名字。2. 什么是異常,什么是異常處理?答:在編寫程序時(shí),總是會(huì)不可避免地遇到一些問題
3、。尤其是在設(shè)計(jì)一個(gè)類時(shí),總要包含一些錯(cuò)誤處理。C+提供了異常處理機(jī)制,它把錯(cuò)誤檢查和錯(cuò)誤處理分開。如設(shè)計(jì)類專門檢查各種可能出現(xiàn)的錯(cuò)誤, 類的使用者則提供具體的錯(cuò)誤處理程序。3. C+異常處理處理有哪些特點(diǎn)?答:異常處理的思路是:發(fā)現(xiàn)錯(cuò)誤的函數(shù)可以不具有錯(cuò)誤處理能力。這個(gè)函數(shù)會(huì)引發(fā)一個(gè)異常,希望它的調(diào)用者能捕獲這個(gè)異常并處理這個(gè)錯(cuò)誤。如果調(diào)用者也不能處理這個(gè)錯(cuò)誤,還可以聯(lián)系給上層調(diào)用者處理。這種傳播會(huì)一直繼續(xù)到異常被處理為止。這樣低層的函數(shù)可以著重解決具體問題,上層調(diào)用者來考慮對(duì)不同的異常進(jìn)行相應(yīng)的處理。4. C+異常處理中怎樣處理構(gòu)造與析構(gòu)的關(guān)系?答:C+異常處理的真正能力,不僅在于它能夠處理
4、不同類型的異常,同時(shí)它具有異常拋擲前構(gòu)造的所有局部對(duì)象自動(dòng)釋放能力。程序中如果在try塊中定義了類對(duì)象,當(dāng)出現(xiàn)異常時(shí),從try塊開始到拋出異常之間構(gòu)造的所有對(duì)象進(jìn)行析構(gòu),析構(gòu)的順序與構(gòu)造的順序相反。5. 請(qǐng)簡要寫一個(gè)c+異常處理的例子,來說明try, catch和 throw之間的關(guān)系?答: try int m,n; cinmn; if(n = 0) throw n; cout”m/n = ”m/nendl;catch(int) cout”Error of dividing zero”endl; 上面是一個(gè)處理除零異常的例子,必須使用try語句來捕獲異常。在執(zhí)行try后的復(fù)合語句中或在一個(gè)函數(shù)
5、調(diào)用中出現(xiàn)異常,由throw拋出異常,用catch語句來捕獲異常和處理異常,catch語句總是跟在一個(gè)try程序塊后面處理try程序塊產(chǎn)生的異常。三、編程題1. 設(shè)計(jì)一個(gè)異常Ex抽象類,在此基礎(chǔ)上派生出一個(gè)OutOfIndex類來響應(yīng)下標(biāo)越界,一個(gè)RangeError類來響應(yīng)輸入的數(shù)不在指定的范圍內(nèi)。答:#include #include using namespace std;class EXpublic:virtual void printError()coutsuper.printError()endl;class OutOfIndex:public EXint i;public:voi
6、d printError()coutError!Out Of Index at ii=i;class RangeError:public EXpublic:void printError()coutError!Out Of Range!=0&i100) return ai;elseOutOfIndex o;o.setI(i);throw &o;void f1()coutPlease input a integer number between 1 and 1000:n;if (n1000|n1)throw &RangeError();void f2()int index;coutPlease
7、input a index of the array.index;Array a;coutaindex = aindexprintError();return 0;2. 定義一個(gè)異常類Ex,有成員函數(shù)reason(),用來顯示異常的類型。定義一個(gè)函數(shù)fun1()觸發(fā)異常,在主函數(shù)try模塊中調(diào)用fun1(),在catch模塊中捕獲異常,觀察程序執(zhí)行流程。答:#include #include using namespace std;class EXpublic:virtual void reason()coutThe reason of the exception is EX.reason()
8、;return 0;3. 定義一個(gè)Array類,重載數(shù)組下標(biāo)操作符,通過拋出異常使之具有判斷與處理下標(biāo)越界功能。答:#include #include using namespace std;class EXpublic:virtual void reason()coutThe reason of the exception is out of index.=0&isize)return pi;elsethrow &EX();int main()tryArray a(50);a1=10;couta1 = a1reason();return 0;4. 編寫一個(gè)程序,求一元二次方程式ax2+bx+c=0的實(shí)根,如果方程沒有實(shí)根,則輸出有關(guān)警告信息。答:#include #include #include using namespace std;class EXpublic:virtual void reason()coutThere is no solid solution.abc;double delta = b*b-4*a*c;if (delta0)t
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 展覽場地租賃合同
- 租賃小區(qū)場地合同
- 停薪留職合同協(xié)議
- 美術(shù)作品展覽權(quán)責(zé)免除合同
- 股份制企業(yè)合同簽署流程規(guī)范
- 環(huán)境咨詢服務(wù)合同
- 淘寶店裝修服務(wù)合同
- 養(yǎng)老服務(wù)合同發(fā)布
- 建筑工程質(zhì)量保證和監(jiān)理服務(wù)合同
- 南京師范大學(xué)中北學(xué)院《現(xiàn)代電力生產(chǎn)技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 《會(huì)稽山紹興酒營銷策略現(xiàn)狀、問題及對(duì)策》開題報(bào)告文獻(xiàn)綜述4000字
- 2021年中國高尿酸及痛風(fēng)趨勢白皮書
- 2023年甘肅省卷中考英語真題
- 最全-房屋市政工程安全生產(chǎn)標(biāo)準(zhǔn)化指導(dǎo)圖冊(cè)
- 《魅力教師的修煉》讀書心得體會(huì)4篇
- 2016年百貨商城商場超市企劃全年活動(dòng)策劃方案模板
- 15 分章專項(xiàng)練習(xí)-整本書閱讀系列《經(jīng)典常談》名著閱讀與練習(xí)
- 幼兒園衛(wèi)生保健人員任命書(保健醫(yī)生)
- 一課一練┃二年級(jí)下冊(cè):1古詩二首
- 財(cái)務(wù)報(bào)表2019新版-已執(zhí)行新金融和收入準(zhǔn)則(財(cái)會(huì)〔2019〕6號(hào))
- GB/T 39096-2020石油天然氣工業(yè)油氣井油管用鋁合金管
評(píng)論
0/150
提交評(píng)論