C++異常處理結(jié)構(gòu)題目及答案_第1頁
C++異常處理結(jié)構(gòu)題目及答案_第2頁
C++異常處理結(jié)構(gòu)題目及答案_第3頁
C++異常處理結(jié)構(gòu)題目及答案_第4頁
C++異常處理結(jié)構(gòu)題目及答案_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

C++異常處理結(jié)構(gòu)題目及答案姓名:____________________

一、單項選擇題(每題2分,共10題)

1.下列關(guān)于C++異常處理的描述,不正確的是:

A.異常處理可以增強程序的健壯性

B.throw語句用于拋出一個異常

C.try塊中可以沒有catch塊

D.catch塊可以捕獲多個類型的異常

2.以下關(guān)于C++異常傳播的描述,正確的是:

A.當(dāng)一個異常發(fā)生時,程序會立即退出

B.異常會從發(fā)生異常的函數(shù)開始,逐層向上傳播

C.如果try塊中沒有catch塊,程序會崩潰

D.catch塊可以捕獲父類異常,但不能捕獲子類異常

3.以下關(guān)于C++異常處理中異常類的描述,不正確的是:

A.異常類可以繼承自標(biāo)準(zhǔn)庫中的標(biāo)準(zhǔn)異常類

B.用戶可以自定義異常類

C.異常類必須有一個構(gòu)造函數(shù)

D.異常類可以有成員變量和成員函數(shù)

4.以下關(guān)于C++異常處理中try-catch結(jié)構(gòu)的描述,不正確的是:

A.try塊用于包含可能拋出異常的代碼

B.catch塊用于捕獲并處理異常

C.可以在同一個catch塊中捕獲多個類型的異常

D.catch塊可以有多個,但順序無關(guān)緊要

5.以下關(guān)于C++異常處理中finally塊的描述,不正確的是:

A.finally塊用于執(zhí)行無論是否發(fā)生異常都會執(zhí)行的代碼

B.finally塊必須位于try或catch塊的后面

C.finally塊可以單獨使用

D.finally塊中不能拋出異常

6.以下關(guān)于C++異常處理中異常類型繼承的描述,不正確的是:

A.子類異??梢圆东@父類異常

B.父類異常不能捕獲子類異常

C.異常類型繼承遵循多態(tài)原則

D.異常類型繼承遵循類型兼容原則

7.以下關(guān)于C++異常處理中異常的傳播方向的描述,不正確的是:

A.異常從發(fā)生異常的函數(shù)開始,逐層向上傳播

B.當(dāng)try塊中沒有捕獲到異常時,異常會傳播到調(diào)用該函數(shù)的函數(shù)

C.當(dāng)catch塊中捕獲了異常后,異常會停止傳播

D.當(dāng)catch塊中拋出新的異常后,異常會繼續(xù)向上傳播

8.以下關(guān)于C++異常處理中異常的捕獲和處理的描述,不正確的是:

A.catch塊可以捕獲多個類型的異常

B.catch塊可以捕獲同一類型的異常

C.可以在同一個catch塊中捕獲多個異常

D.catch塊必須捕獲所有可能發(fā)生的異常

9.以下關(guān)于C++異常處理中異常的捕獲和處理的描述,不正確的是:

A.當(dāng)catch塊捕獲到異常后,程序繼續(xù)執(zhí)行catch塊后面的代碼

B.如果catch塊中沒有代碼,則捕獲到異常后程序會立即退出

C.catch塊中可以拋出新的異常

D.catch塊中可以修改異常對象

10.以下關(guān)于C++異常處理的描述,不正確的是:

A.異常處理可以增強程序的健壯性

B.throw語句用于拋出一個異常

C.try塊中可以沒有catch塊

D.catch塊可以捕獲任意類型的異常

二、多項選擇題(每題3分,共10題)

1.在C++中,以下哪些是有效的異常處理結(jié)構(gòu)?

A.try-catch

B.try-finally

C.try-throw

D.try-catch-finally

2.以下哪些情況會觸發(fā)異常?

A.運行時錯誤

B.系統(tǒng)錯誤

C.程序邏輯錯誤

D.編譯時錯誤

3.以下關(guān)于C++異常處理中異常類的描述,正確的是:

A.異常類可以繼承自標(biāo)準(zhǔn)庫中的標(biāo)準(zhǔn)異常類

B.用戶可以自定義異常類

C.異常類必須有一個構(gòu)造函數(shù)

D.異常類可以有成員變量和成員函數(shù)

4.在C++中,以下哪些關(guān)鍵字用于聲明異常?

A.throw

B.try

C.catch

D.finally

5.以下關(guān)于C++異常處理中try塊的描述,正確的是:

A.try塊用于包含可能拋出異常的代碼

B.try塊可以單獨使用

C.try塊中可以沒有catch塊

D.try塊中可以沒有finally塊

6.以下關(guān)于C++異常處理中catch塊的描述,正確的是:

A.catch塊用于捕獲并處理異常

B.可以在同一個catch塊中捕獲多個類型的異常

C.catch塊可以捕獲父類異常

D.catch塊可以捕獲子類異常

7.以下關(guān)于C++異常處理中finally塊的描述,正確的是:

A.finally塊用于執(zhí)行無論是否發(fā)生異常都會執(zhí)行的代碼

B.finally塊必須位于try或catch塊的后面

C.finally塊可以單獨使用

D.finally塊中不能拋出異常

8.在C++中,以下哪些是C++標(biāo)準(zhǔn)庫中定義的異常類?

A.std::exception

B.std::runtime_error

C.std::logic_error

D.std::out_of_range

9.以下關(guān)于C++異常處理中異常傳播的描述,正確的是:

A.異常會從發(fā)生異常的函數(shù)開始,逐層向上傳播

B.當(dāng)try塊中沒有捕獲到異常時,異常會傳播到調(diào)用該函數(shù)的函數(shù)

C.當(dāng)catch塊中捕獲了異常后,異常會停止傳播

D.當(dāng)catch塊中拋出新的異常后,異常會繼續(xù)向上傳播

10.以下關(guān)于C++異常處理中異常處理的最佳實踐,正確的是:

A.盡量在異常處理中避免復(fù)雜的邏輯

B.使用異常來處理程序中的錯誤情況

C.避免在catch塊中拋出新的異常

D.在設(shè)計異常類時,遵循異常類繼承的原則

三、判斷題(每題2分,共10題)

1.在C++中,一個try塊可以包含多個catch塊。()

2.如果一個函數(shù)拋出一個異常,但沒有對應(yīng)的catch塊來捕獲它,程序會崩潰。()

3.在C++中,finally塊總是被執(zhí)行,無論是否發(fā)生異常。()

4.在C++中,可以捕獲基類異常來處理派生類的異常。()

5.C++標(biāo)準(zhǔn)庫中的std::exception類是所有異常類的基類。()

6.異常處理可以減少程序中的錯誤數(shù)量。()

7.在C++中,異??梢钥缇幾g單元傳播。()

8.如果一個catch塊中拋出了新的異常,原來的異常會被新的異常替換。()

9.在C++中,可以使用多個catch塊來捕獲同一類型的異常。()

10.在C++中,finally塊可以包含return語句。()

四、簡答題(每題5分,共6題)

1.簡述C++異常處理的基本結(jié)構(gòu)。

2.解釋C++中try塊、catch塊和finally塊的作用。

3.如何自定義一個異常類?

4.描述C++中異常的傳播機制。

5.解釋為什么在C++中應(yīng)該謹(jǐn)慎使用異常處理。

6.列舉至少三個在C++中使用異常處理的優(yōu)勢。

試卷答案如下

一、單項選擇題(每題2分,共10題)

1.C.try塊中可以沒有catch塊

解析思路:選項A、B、D都是關(guān)于異常處理的正確描述,而選項C是錯誤的,因為即使try塊中沒有catch塊,程序也不會崩潰,只是異常沒有被捕獲和處理。

2.B.異常會從發(fā)生異常的函數(shù)開始,逐層向上傳播

解析思路:選項A、C、D都是錯誤的描述,因為異常不會立即退出程序,不會從函數(shù)開始逐層向上傳播,也不會在catch塊中拋出異常后立即停止傳播。

3.C.異常類必須有一個構(gòu)造函數(shù)

解析思路:選項A、B、D都是關(guān)于異常類的正確描述,而選項C是錯誤的,因為異常類可以不提供構(gòu)造函數(shù)。

4.D.catch塊可以捕獲任意類型的異常

解析思路:選項A、B、C都是關(guān)于catch塊的錯誤描述,而選項D是正確的,因為catch塊可以捕獲任意類型的異常。

5.B.finally塊用于執(zhí)行無論是否發(fā)生異常都會執(zhí)行的代碼

解析思路:選項A、C、D都是關(guān)于finally塊的錯誤描述,而選項B是正確的,因為finally塊確保無論是否發(fā)生異常,其中的代碼都會被執(zhí)行。

6.A.子類異??梢圆东@父類異常

解析思路:選項B、C、D都是關(guān)于異常類型繼承的錯誤描述,而選項A是正確的,因為子類異??梢圆东@父類異常。

7.A.異常從發(fā)生異常的函數(shù)開始,逐層向上傳播

解析思路:選項B、C、D都是關(guān)于異常傳播的錯誤描述,而選項A是正確的,因為異常從發(fā)生異常的函數(shù)開始,逐層向上傳播。

8.A.當(dāng)一個異常發(fā)生時,程序會立即退出

解析思路:選項B、C、D都是關(guān)于異常處理的錯誤描述,而選項A是錯誤的,因為異常不會導(dǎo)致程序立即退出。

9.B.catch塊可以捕獲同一類型的異常

解析思路:選項A、C、D都是關(guān)于catch塊的錯誤描述,而選項B是正確的,因為可以在同一個catch塊中捕獲同一類型的異常。

10.A.異常處理可以增強程序的健壯性

解析思路:選項B、C、D都是關(guān)于異常處理的正確描述,而選項A是錯誤的,因為異常處理確實可以增強程序的健壯性。

二、多項選擇題(每題3分,共10題)

1.A.try-catchB.try-finallyD.try-catch-finally

解析思路:選項A、B、D都是有效的異常處理結(jié)構(gòu),而選項C是錯誤的,因為throw不是結(jié)構(gòu)的一部分。

2.A.運行時錯誤B.系統(tǒng)錯誤C.程序邏輯錯誤

解析思路:選項A、B、C都是可能觸發(fā)異常的情況。

3.A.異常類可以繼承自標(biāo)準(zhǔn)庫中的標(biāo)準(zhǔn)異常類B.用戶可以自定義異常類C.異常類必須有一個構(gòu)造函數(shù)D.異常類可以有成員變量和成員函數(shù)

解析思路:所有選項都是關(guān)于異常類的正確描述。

4.A.throwB.tryC.catch

解析思路:選項A、B、C都是用于聲明異常的關(guān)鍵字。

5.A.try塊用于包含可能拋出異常的代碼B.try塊可以單獨使用C.try塊中可以沒有catch塊D.try塊中可以沒有finally塊

解析思路:所有選項都是關(guān)于try塊的正確描述。

6.A.catch塊用于捕獲并處理異常B.可以在同一個catch塊中捕獲多個類型的異常C.catch塊可以捕獲父類異常D.catch塊可以捕獲子類異常

解析思路:所有選項都是關(guān)于catch塊的正確描述。

7.A.finally塊用于執(zhí)行無論是否發(fā)生異常都會執(zhí)行的代碼B.finally塊必須位于try或catch塊的后面C.finally塊可以單獨使用D.finally塊中不能拋出異常

解析思路:所有選項都是關(guān)于finally塊的正確描述。

8.A.std::exceptionB.std::runtime_errorC.std::logic_errorD.std::out_of_range

解析思路:所有選項都是C++標(biāo)準(zhǔn)庫中定義的異常類。

9.A.異常會從發(fā)生異常的函數(shù)開始,逐層向上傳播B.當(dāng)try塊中沒有捕獲到異常時,異常會傳播到調(diào)用該函數(shù)的函數(shù)C.當(dāng)catch塊中捕獲了異常后,異常會停止傳播D.當(dāng)catch塊中拋出新的異常后,異常會繼續(xù)向上傳播

解析思路:所有選項都是關(guān)于異常傳播的正確描述。

10.A.盡量在異常處理中避免復(fù)雜的邏輯B.使用異常來處理程序中的錯誤情況C.避免在catch塊中拋出新的異常D.在設(shè)計異常類時,遵循異常類繼承的原則

解析思路:所有選項都是關(guān)于C++異常處理的最佳實踐。

三、判斷題(每題2分,共10題)

1.×

解析思路:try塊可以沒有catch塊,程序不會崩潰。

2.×

解析思路:如果沒有對應(yīng)的catch塊來捕獲異常,異常會傳播到調(diào)用該函數(shù)的函數(shù),而不是立即退出。

3.√

解析思路:finally塊確保無論是否發(fā)生異常,其中的代碼都會被執(zhí)行。

4.√

解析思路:子類異??梢圆东@父類異常,這是多態(tài)性的體現(xiàn)。

5.√

解析思路:std::ex

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論