版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上十一章 課后習(xí)題答案一、選擇題1. 下列關(guān)于異常的敘述錯誤的是( A )。 A編譯錯屬于異常,可以拋出B運行錯屬于異常 C硬件故障也可當(dāng)異常拋出D只要是編程者認為是異常的都可當(dāng)異常拋出2. 下列敘述錯誤的是( B )。 Athrow語句須書寫在時語句塊中 Bthrow語句必須在try語句塊中直接運行或通過調(diào)用函數(shù)運行 C一個程序中可以有try語句而沒有throw語句Dthrow語句拋出的異??梢圆槐徊东@3. 關(guān)于函數(shù)聲明 float fun(int a,int b)throw,下列敘述正確的是( B )。 A表明函數(shù)拋出float類型異常 B表明函數(shù)拋出任何類型異常
2、C表明函數(shù)不拋出任何類型異常D表明函數(shù)實際拋出的異常4. 下列敘述錯誤的是(C)。 Acatch()語句可捕獲所有類型的異常 B一個try語句可以有多個catch語句 Ccatch()語句可以放在catch語句組的中間D程序中try語句與catch語句是一個整體,缺一不可二、簡答題1. 什么是命名空間,怎樣定義命名空間?答: 命名空間是一個保持唯一名稱的區(qū)域,其實質(zhì)是一個作用域。語法為: namespace A /定義一個命名空間A int a; float b; void f() 其中namespace為定義的關(guān)鍵字,A為命名空間的名字。2. 什么是異常,什么是異常處理?答:在編寫程序時,總
3、是會不可避免地遇到一些問題。尤其是在設(shè)計一個類時,總要包含一些錯誤處理。C+提供了異常處理機制,它把錯誤檢查和錯誤處理分開。如設(shè)計類專門檢查各種可能出現(xiàn)的錯誤, 類的使用者則提供具體的錯誤處理程序。3. C+異常處理處理有哪些特點?答:異常處理的思路是:發(fā)現(xiàn)錯誤的函數(shù)可以不具有錯誤處理能力。這個函數(shù)會引發(fā)一個異常,希望它的調(diào)用者能捕獲這個異常并處理這個錯誤。如果調(diào)用者也不能處理這個錯誤,還可以聯(lián)系給上層調(diào)用者處理。這種傳播會一直繼續(xù)到異常被處理為止。這樣低層的函數(shù)可以著重解決具體問題,上層調(diào)用者來考慮對不同的異常進行相應(yīng)的處理。4. C+異常處理中怎樣處理構(gòu)造與析構(gòu)的關(guān)系?答:C+異常處理的真
4、正能力,不僅在于它能夠處理不同類型的異常,同時它具有異常拋擲前構(gòu)造的所有局部對象自動釋放能力。程序中如果在try塊中定義了類對象,當(dāng)出現(xiàn)異常時,從try塊開始到拋出異常之間構(gòu)造的所有對象進行析構(gòu),析構(gòu)的順序與構(gòu)造的順序相反。5. 請簡要寫一個c+異常處理的例子,來說明try, catch和 throw之間的關(guān)系?答: try int m,n; cin>>m>>n; if(n = 0) throw n; cout<<”m/n = ”<<m/n<<endl;catch(int) cout<<”Error of dividing
5、 zero”<<endl; 上面是一個處理除零異常的例子,必須使用try語句來捕獲異常。在執(zhí)行try后的復(fù)合語句中或在一個函數(shù)調(diào)用中出現(xiàn)異常,由throw拋出異常,用catch語句來捕獲異常和處理異常,catch語句總是跟在一個try程序塊后面處理try程序塊產(chǎn)生的異常。三、編程題1. 設(shè)計一個異常Ex抽象類,在此基礎(chǔ)上派生出一個OutOfIndex類來響應(yīng)下標(biāo)越界,一個RangeError類來響應(yīng)輸入的數(shù)不在指定的范圍內(nèi)。答:#include <iostream>#include <string>using namespace std;class EXpu
6、blic:virtual void printError()cout<<"super.printError()"<<endl;class OutOfIndex:public EXint i;public:void printError()cout<<"Error!Out Of Index at "<<i<<endl;void setI(int i)this->i=i;class RangeError:public EXpublic:void printError()cout<<
7、"Error!Out Of Range!"<<endl;class Arrayint a100;public:int& operator(int i)if(i>=0&&i<100) return ai;elseOutOfIndex o;o.setI(i);throw &o;void f1()cout<<"Please input a integer number between 1 and 1000:"<<endl;int n;cin>>n;if (n>10
8、00|n<1)throw &RangeError();void f2()int index;cout<<"Please input a index of the array."<<endl;cin>>index;Array a;cout<<"a"<<index<<" = "<<aindex<<endl;int main()tryf1();f2();catch (EX* e)e->printError();return 0
9、;2. 定義一個異常類Ex,有成員函數(shù)reason(),用來顯示異常的類型。定義一個函數(shù)fun1()觸發(fā)異常,在主函數(shù)try模塊中調(diào)用fun1(),在catch模塊中捕獲異常,觀察程序執(zhí)行流程。答:#include <iostream>#include <string>using namespace std;class EXpublic:virtual void reason()cout<<"The reason of the exception is EX."<<endl;void f1()throw &EX();i
10、nt main()tryf1();catch (EX* e)e->reason();return 0;3. 定義一個Array類,重載數(shù)組下標(biāo)操作符,通過拋出異常使之具有判斷與處理下標(biāo)越界功能。答:#include <iostream>#include <string>using namespace std;class EXpublic:virtual void reason()cout<<"The reason of the exception is out of index."<<endl;class Arrayin
11、t *p;int size;public:Array(int sz)size = sz;p=new intsz;int& operator(int i)if (i>=0&&i<size)return pi;elsethrow &EX();int main()tryArray a(50);a1=10;cout<<"a1 = "<<a1<<endl;a50=100;catch (EX* e)e->reason();return 0;4. 編寫一個程序,求一元二次方程式ax2+bx+c=0的實根
12、,如果方程沒有實根,則輸出有關(guān)警告信息。答:#include <iostream>#include <string>#include <cmath>using namespace std;class EXpublic:virtual void reason()cout<<"There is no solid solution."<<endl;/方程ax2+bx+c=0int main()trydouble a,b,c;cin>>a>>b>>c;double delta = b*b-4*a*c;if (delta<0)throw &EX();delta = sqrt(delta);double x
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代教育技術(shù)助力創(chuàng)新教學(xué)方法的推廣
- 現(xiàn)代辦公家具中的穩(wěn)固與美觀并存
- 現(xiàn)代遠程教育在海外的發(fā)展趨勢分析
- 汽車行業(yè)的社交媒體廣告投放策略
- 溫控技術(shù)在綠色辦公樓宇的革新發(fā)展
- 現(xiàn)代建筑設(shè)計的情感化表達
- Unit 3 Animals Lesson 3(說課稿)-2024-2025人教版(新起點)英語一年級上冊001
- 2023八年級數(shù)學(xué)下冊 第六章 平行四邊形1 平行四邊形的性質(zhì)第1課時 平行四邊形的邊角特征說課稿 (新版)北師大版
- 2024-2025學(xué)年高中歷史 專題五 走向世界的資本主義市場 5.3“蒸汽”的力量說課稿 人民版必修2
- 2024年學(xué)年九年級語文上冊 第三單元 走近魯迅 第12課 詩兩首《自題小像》說課稿 滬教版五四制
- 醫(yī)療器械質(zhì)量管理體系文件模板
- 秦始皇嬴政人物生平介紹PPT
- 在馬克思墓前的講話說課稿公開課一等獎市賽課獲獎?wù)n件
- 骨科無痛病房的建立
- 送養(yǎng)收養(yǎng)合同協(xié)議書
- 塑料成型模具設(shè)計(第2版)江昌勇課件0-導(dǎo)論
- 漢語拼音發(fā)音口型及配圖
- 五年級下冊《Lesson 11 Shopping in Beijing》教案冀教版三年級起點小學(xué)英語-五年級英語教案
- 績效考核管理醫(yī)院績效分配方案包括實施細則考核表
- 大學(xué)成績單(大專)
- 網(wǎng)絡(luò)設(shè)備安裝與調(diào)試(華為eNSP模擬器)整套教學(xué)課件
評論
0/150
提交評論