C++函數(shù)重載與覆蓋試題及答案_第1頁
C++函數(shù)重載與覆蓋試題及答案_第2頁
C++函數(shù)重載與覆蓋試題及答案_第3頁
C++函數(shù)重載與覆蓋試題及答案_第4頁
C++函數(shù)重載與覆蓋試題及答案_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

VIP免費(fèi)下載

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

文檔簡(jiǎn)介

C++函數(shù)重載與覆蓋試題及答案姓名:____________________

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

1.以下關(guān)于函數(shù)重載的描述,不正確的是()。

A.重載函數(shù)的參數(shù)類型必須不同

B.重載函數(shù)的參數(shù)個(gè)數(shù)可以不同

C.重載函數(shù)的返回類型可以不同

D.重載函數(shù)的函數(shù)名必須相同

2.下面關(guān)于函數(shù)覆蓋的說法,正確的是()。

A.子類與基類函數(shù)名稱相同,參數(shù)類型和個(gè)數(shù)不同,稱為函數(shù)覆蓋

B.子類與基類函數(shù)名稱相同,參數(shù)類型和個(gè)數(shù)相同,返回類型不同,稱為函數(shù)覆蓋

C.子類與基類函數(shù)名稱相同,參數(shù)類型和個(gè)數(shù)相同,返回類型相同,稱為函數(shù)覆蓋

D.子類與基類函數(shù)名稱不同,參數(shù)類型和個(gè)數(shù)相同,稱為函數(shù)覆蓋

3.以下哪個(gè)函數(shù)可以正確實(shí)現(xiàn)函數(shù)重載?()

A.voidfun(intx){/*函數(shù)體*/}

B.voidfun(intx,inty){/*函數(shù)體*/}

C.voidfun(intx){/*函數(shù)體*/}

D.voidfun(intx){/*函數(shù)體*/}

4.關(guān)于函數(shù)重載的規(guī)則,以下哪項(xiàng)是錯(cuò)誤的?()

A.重載函數(shù)不能改變函數(shù)的返回類型

B.重載函數(shù)的參數(shù)個(gè)數(shù)必須不同

C.重載函數(shù)的參數(shù)類型必須不同

D.重載函數(shù)的函數(shù)名必須相同

5.下面哪個(gè)函數(shù)是正確的函數(shù)覆蓋?()

A.classBase{public:virtualvoidfun(intx);};

classDerived:publicBase{public:voidfun(intx){/*函數(shù)體*/}};

B.classBase{public:virtualvoidfun(intx);};

classDerived:publicBase{public:voidfun(inty){/*函數(shù)體*/}};

C.classBase{public:virtualvoidfun(intx);};

classDerived:publicBase{public:voidfun(doublex){/*函數(shù)體*/}};

D.classBase{public:virtualvoidfun(intx);};

classDerived:publicBase{public:voidfun(floatx){/*函數(shù)體*/}};

6.以下關(guān)于函數(shù)重載的描述,不正確的是()。

A.重載函數(shù)的參數(shù)類型必須不同

B.重載函數(shù)的參數(shù)個(gè)數(shù)可以不同

C.重載函數(shù)的返回類型可以不同

D.重載函數(shù)的函數(shù)名必須不同

7.關(guān)于函數(shù)覆蓋,以下哪個(gè)說法是錯(cuò)誤的?()

A.子類函數(shù)覆蓋基類函數(shù)時(shí),參數(shù)類型和個(gè)數(shù)必須相同

B.子類函數(shù)覆蓋基類函數(shù)時(shí),返回類型必須相同

C.子類函數(shù)覆蓋基類函數(shù)時(shí),函數(shù)名必須相同

D.子類函數(shù)覆蓋基類函數(shù)時(shí),可以添加新的參數(shù)

8.下面哪個(gè)函數(shù)是正確的函數(shù)重載?()

A.voidfun(intx){/*函數(shù)體*/}

B.voidfun(floatx){/*函數(shù)體*/}

C.voidfun(doublex){/*函數(shù)體*/}

D.voidfun(intx,inty){/*函數(shù)體*/}

9.以下關(guān)于函數(shù)重載的描述,不正確的是()。

A.重載函數(shù)的參數(shù)類型必須不同

B.重載函數(shù)的參數(shù)個(gè)數(shù)可以不同

C.重載函數(shù)的返回類型可以不同

D.重載函數(shù)的函數(shù)名必須不同

10.關(guān)于函數(shù)覆蓋,以下哪個(gè)說法是錯(cuò)誤的?()

A.子類函數(shù)覆蓋基類函數(shù)時(shí),參數(shù)類型和個(gè)數(shù)必須相同

B.子類函數(shù)覆蓋基類函數(shù)時(shí),返回類型必須相同

C.子類函數(shù)覆蓋基類函數(shù)時(shí),函數(shù)名必須相同

D.子類函數(shù)覆蓋基類函數(shù)時(shí),可以改變函數(shù)的訪問權(quán)限

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

1.下列關(guān)于C++函數(shù)重載的特點(diǎn),正確的有()。

A.函數(shù)重載要求函數(shù)名相同

B.函數(shù)重載要求函數(shù)參數(shù)列表不同

C.函數(shù)重載要求函數(shù)返回類型不同

D.函數(shù)重載要求函數(shù)的訪問權(quán)限不同

2.在C++中,以下哪些情況可以實(shí)現(xiàn)函數(shù)重載?()

A.函數(shù)名相同,參數(shù)個(gè)數(shù)不同

B.函數(shù)名相同,參數(shù)類型不同

C.函數(shù)名相同,參數(shù)個(gè)數(shù)和類型都相同,但返回類型不同

D.函數(shù)名相同,參數(shù)個(gè)數(shù)和類型都相同,但函數(shù)體不同

3.以下關(guān)于函數(shù)重載的規(guī)則,正確的有()。

A.重載函數(shù)的參數(shù)列表必須不同

B.重載函數(shù)的返回類型可以相同

C.重載函數(shù)的函數(shù)名必須相同

D.重載函數(shù)的函數(shù)體可以相同

4.在C++中,以下哪些情況可以實(shí)現(xiàn)函數(shù)覆蓋?()

A.子類與基類函數(shù)名稱相同

B.子類與基類函數(shù)參數(shù)類型和個(gè)數(shù)相同

C.子類與基類函數(shù)返回類型相同

D.子類與基類函數(shù)訪問權(quán)限相同

5.以下關(guān)于函數(shù)重載和覆蓋的描述,正確的有()。

A.函數(shù)重載是編譯時(shí)的多態(tài),函數(shù)覆蓋是運(yùn)行時(shí)的多態(tài)

B.函數(shù)重載要求函數(shù)名相同,參數(shù)列表不同

C.函數(shù)覆蓋要求子類與基類函數(shù)名稱相同,參數(shù)列表和返回類型相同

D.函數(shù)覆蓋允許子類添加新的參數(shù)

6.以下關(guān)于C++函數(shù)重載的規(guī)則,正確的有()。

A.重載函數(shù)的參數(shù)類型必須不同

B.重載函數(shù)的參數(shù)個(gè)數(shù)可以不同

C.重載函數(shù)的返回類型可以不同

D.重載函數(shù)的函數(shù)名必須相同

7.在C++中,以下哪些函數(shù)可以實(shí)現(xiàn)函數(shù)重載?()

A.voidfun(intx){/*函數(shù)體*/}

B.voidfun(floatx){/*函數(shù)體*/}

C.voidfun(intx){/*函數(shù)體*/}

D.voidfun(doublex){/*函數(shù)體*/}

8.以下關(guān)于函數(shù)覆蓋的描述,正確的有()。

A.函數(shù)覆蓋要求子類與基類函數(shù)名稱相同

B.函數(shù)覆蓋要求子類與基類函數(shù)參數(shù)類型和個(gè)數(shù)相同

C.函數(shù)覆蓋要求子類與基類函數(shù)返回類型相同

D.函數(shù)覆蓋允許子類修改基類的函數(shù)體

9.以下關(guān)于C++函數(shù)重載和覆蓋的描述,正確的有()。

A.函數(shù)重載是編譯時(shí)的多態(tài),函數(shù)覆蓋是運(yùn)行時(shí)的多態(tài)

B.函數(shù)重載要求函數(shù)名相同,參數(shù)列表不同

C.函數(shù)覆蓋要求子類與基類函數(shù)名稱相同,參數(shù)列表和返回類型相同

D.函數(shù)覆蓋允許子類添加新的參數(shù)

10.在C++中,以下哪些情況可以實(shí)現(xiàn)函數(shù)重載?()

A.函數(shù)名相同,參數(shù)個(gè)數(shù)不同

B.函數(shù)名相同,參數(shù)類型不同

C.函數(shù)名相同,參數(shù)個(gè)數(shù)和類型都相同,但返回類型不同

D.函數(shù)名相同,參數(shù)個(gè)數(shù)和類型都相同,但函數(shù)體不同

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

1.函數(shù)重載允許函數(shù)名相同,但參數(shù)列表必須完全不同。()

2.函數(shù)覆蓋要求子類函數(shù)的訪問權(quán)限必須高于基類函數(shù)的訪問權(quán)限。()

3.在C++中,函數(shù)重載和函數(shù)覆蓋是同一個(gè)概念。()

4.函數(shù)重載時(shí),如果兩個(gè)重載函數(shù)的參數(shù)列表完全相同,但返回類型不同,則編譯器會(huì)報(bào)錯(cuò)。()

5.子類函數(shù)覆蓋基類函數(shù)時(shí),返回類型可以不同。()

6.函數(shù)重載可以通過改變函數(shù)的返回類型來實(shí)現(xiàn)。()

7.在C++中,函數(shù)重載是編譯時(shí)的多態(tài),而函數(shù)覆蓋是運(yùn)行時(shí)的多態(tài)。()

8.函數(shù)重載可以改變函數(shù)的訪問權(quán)限。()

9.子類函數(shù)覆蓋基類函數(shù)時(shí),函數(shù)名必須相同。()

10.函數(shù)重載要求函數(shù)的返回類型必須不同。()

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

1.簡(jiǎn)述函數(shù)重載的概念及其在C++中的作用。

2.解釋函數(shù)覆蓋與繼承的關(guān)系,并說明在什么情況下會(huì)發(fā)生函數(shù)覆蓋。

3.列舉至少三種在C++中實(shí)現(xiàn)函數(shù)重載的方法。

4.說明在C++中,為什么函數(shù)重載時(shí)參數(shù)類型不同但參數(shù)列表相同會(huì)導(dǎo)致編譯錯(cuò)誤。

5.描述C++中虛函數(shù)的概念,并說明虛函數(shù)在繼承中的作用。

6.編寫一個(gè)C++程序示例,展示如何使用函數(shù)重載來處理不同類型的參數(shù)。

試卷答案如下

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

1.C

解析:函數(shù)重載要求函數(shù)名相同,參數(shù)類型和個(gè)數(shù)不同,但返回類型可以不同。

2.C

解析:函數(shù)覆蓋要求子類與基類函數(shù)名稱相同,參數(shù)類型和個(gè)數(shù)相同,返回類型也相同。

3.D

解析:函數(shù)重載要求函數(shù)名相同,參數(shù)列表不同,D選項(xiàng)符合這一條件。

4.D

解析:函數(shù)重載要求函數(shù)名相同,參數(shù)列表不同,返回類型可以相同。

5.C

解析:子類函數(shù)覆蓋基類函數(shù)時(shí),參數(shù)類型和個(gè)數(shù)相同,返回類型也相同,且函數(shù)名相同。

6.C

解析:函數(shù)重載要求函數(shù)名相同,參數(shù)類型和個(gè)數(shù)不同,但返回類型可以不同。

7.D

解析:子類函數(shù)覆蓋基類函數(shù)時(shí),參數(shù)類型和個(gè)數(shù)必須相同,訪問權(quán)限可以相同或不同。

8.D

解析:函數(shù)重載要求函數(shù)名相同,參數(shù)列表不同,D選項(xiàng)符合這一條件。

9.C

解析:函數(shù)重載要求函數(shù)名相同,參數(shù)類型和個(gè)數(shù)不同,但返回類型可以不同。

10.B

解析:子類函數(shù)覆蓋基類函數(shù)時(shí),參數(shù)類型和個(gè)數(shù)必須相同,返回類型也必須相同。

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

1.AB

解析:函數(shù)重載要求函數(shù)名相同,參數(shù)列表不同,返回類型可以相同。

2.ABCD

解析:函數(shù)重載可以通過函數(shù)名相同、參數(shù)個(gè)數(shù)不同、參數(shù)類型不同、參數(shù)個(gè)數(shù)和類型都相同但返回類型不同來實(shí)現(xiàn)。

3.ABC

解析:重載函數(shù)的參數(shù)列表必須不同,返回類型可以相同,函數(shù)名必須相同,函數(shù)體可以相同。

4.ABC

解析:函數(shù)覆蓋要求子類與基類函數(shù)名稱相同,參數(shù)類型和個(gè)數(shù)相同,返回類型也相同。

5.ABC

解析:函數(shù)重載是編譯時(shí)的多態(tài),要求函數(shù)名相同,參數(shù)列表不同;函數(shù)覆蓋是運(yùn)行時(shí)的多態(tài),要求子類與基類函數(shù)名稱相同,參數(shù)列表和返回類型相同。

6.ABC

解析:重載函數(shù)的參數(shù)列表必須不同,返回類型可以相同,函數(shù)名必須相同。

7.ABD

解析:函數(shù)重載可以通過函數(shù)名相同、參數(shù)個(gè)數(shù)不同、參數(shù)類型不同來實(shí)現(xiàn)。

8.ABC

解析:函數(shù)覆蓋要求子類與基類函數(shù)名稱相同,參數(shù)類型和個(gè)數(shù)相同,返回類型也相同。

9.ABCD

解析:函數(shù)重載是編譯時(shí)的多態(tài),要求函數(shù)名相同,參數(shù)列表不同;函數(shù)覆蓋是運(yùn)行時(shí)的多態(tài),要求子類與基類函數(shù)名稱相同,參數(shù)列表和返回類型相同。

10.ABCD

解析:函數(shù)重載可以通過函數(shù)名相同、參數(shù)個(gè)數(shù)不同、參數(shù)類型不同、參數(shù)個(gè)數(shù)和類型都相同但返回類型不同來實(shí)現(xiàn)。

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

1.×

解析:函數(shù)重載要求函數(shù)名相同,參數(shù)列表必須不同。

2.×

解析:函數(shù)覆蓋不要求子類函數(shù)的訪問權(quán)限必須高于基類函數(shù)的訪問權(quán)限。

3.×

解析:函數(shù)重載和函數(shù)覆蓋是不同的概念,函數(shù)重載是編譯時(shí)的多態(tài),函數(shù)覆蓋是運(yùn)行時(shí)的多態(tài)。

4.√

解析:函數(shù)重載要求函數(shù)名相同,參數(shù)列表不同,如果參數(shù)列表相同但返回類型不同,則編譯器會(huì)報(bào)錯(cuò)。

5.×

解析:子類函數(shù)覆蓋基類函數(shù)時(shí),返回類型必須相同。

6.×

解析:函數(shù)重載不能通過改變函數(shù)的返回類型來實(shí)現(xiàn)。

7.√

解析:函數(shù)重載是編譯時(shí)的多態(tài),函數(shù)覆蓋是運(yùn)行時(shí)的多態(tài)。

8.×

解析:函數(shù)重載不能改變函數(shù)的訪問權(quán)限。

9.√

解析:子類函數(shù)覆蓋基類函數(shù)時(shí),函數(shù)名必須相同。

10.×

解析:函數(shù)重載要求函數(shù)名相同,參數(shù)列表必須不同,返回類型可以相同。

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

1.函數(shù)重載是指在同一個(gè)作用域內(nèi),允許有多個(gè)同名函數(shù),這些函數(shù)的參數(shù)列表不同。函數(shù)重載在C++中的作用是實(shí)現(xiàn)編譯時(shí)的多態(tài),提高代碼的可讀性和可維護(hù)性。

2.函數(shù)覆蓋是指子類繼承了基類的虛函數(shù),并在子類中重新定義了這個(gè)函數(shù)。函數(shù)覆蓋在繼承中的作用是允許子類以自己的方式實(shí)現(xiàn)與基類相同的功能。

3.實(shí)現(xiàn)函數(shù)重載的方法有:改變參數(shù)個(gè)數(shù)、改變參數(shù)類型、改變參數(shù)順序。

4.函數(shù)重載要求函數(shù)名相同,參數(shù)列表不同,如果參數(shù)列表相同但返回類型不同,則編譯器會(huì)報(bào)錯(cuò),因?yàn)檫@會(huì)使得函數(shù)的調(diào)用變得不明確。

5.虛函數(shù)是指在基類中聲明的函數(shù),在派生類中被重寫。虛函數(shù)在繼承中的作用是實(shí)現(xiàn)動(dòng)態(tài)綁定,允許通過基類指針或引用調(diào)用正確的函數(shù)實(shí)現(xiàn)。

6.示例代碼:

```cpp

#include<iostream>

usingnamespacestd;

classBase{

public:

voidfun(intx){

cout<<"Baseclassintfun"<<endl;

}

voidfun(doublex){

cout<<"Baseclassdoublefun"<<endl;

}

};

classDerived:publicBase{

public:

voidfun(intx){

cout<<"Derived

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論