C++中函數(shù)指針使用解析試題及答案_第1頁
C++中函數(shù)指針使用解析試題及答案_第2頁
C++中函數(shù)指針使用解析試題及答案_第3頁
C++中函數(shù)指針使用解析試題及答案_第4頁
C++中函數(shù)指針使用解析試題及答案_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C++中函數(shù)指針使用解析試題及答案姓名:____________________

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

1.下列關(guān)于函數(shù)指針的說法,錯誤的是()

A.函數(shù)指針可以指向任何類型的函數(shù)

B.函數(shù)指針的聲明方式是“返回類型(*指針名)(參數(shù)類型列表)”

C.使用函數(shù)指針可以避免函數(shù)調(diào)用的開銷

D.函數(shù)指針與普通指針不同,不能指向函數(shù)的地址

2.以下關(guān)于函數(shù)指針初始化的代碼,正確的是()

A.int(*pFunc)(int)=&func;

B.int(*pFunc)(int)=func;

C.int(*pFunc)(int)=func();

D.int(*pFunc)(int)=newfunc();

3.以下關(guān)于函數(shù)指針作為函數(shù)參數(shù)的代碼,正確的是()

A.voidfunc1(int(*pFunc)(int));

B.voidfunc1(intpFunc(int));

C.voidfunc1(int(*pFunc)(int,int));

D.voidfunc1(intpFunc(int,int));

4.以下關(guān)于函數(shù)指針與數(shù)組的關(guān)系,錯誤的是()

A.函數(shù)指針可以作為數(shù)組的元素

B.數(shù)組名可以作為函數(shù)指針

C.函數(shù)指針的長度與數(shù)組長度無關(guān)

D.數(shù)組名可以作為函數(shù)指針,但不能作為函數(shù)的返回值

5.以下關(guān)于函數(shù)指針與函數(shù)指針數(shù)組的區(qū)別,錯誤的是()

A.函數(shù)指針是一個指針,函數(shù)指針數(shù)組是一個指針數(shù)組

B.函數(shù)指針數(shù)組的每個元素都可以指向不同的函數(shù)

C.函數(shù)指針數(shù)組的聲明方式是“返回類型(*指針數(shù)組名)[大小]”

D.函數(shù)指針與函數(shù)指針數(shù)組都可以作為函數(shù)的參數(shù)

6.以下關(guān)于函數(shù)指針作為函數(shù)返回值的代碼,正確的是()

A.int(*func1)(int)=func2;

B.intfunc1(intx){returnfunc2(x);}

C.intfunc1(intx){return(*func2)(x);}

D.int(*func1)(int)=func2();

7.以下關(guān)于函數(shù)指針與函數(shù)指針數(shù)組的區(qū)別,正確的是()

A.函數(shù)指針與函數(shù)指針數(shù)組都是指針類型

B.函數(shù)指針數(shù)組的每個元素都可以指向不同的函數(shù)

C.函數(shù)指針數(shù)組的聲明方式是“返回類型(*指針數(shù)組名)[大小]”

D.函數(shù)指針與函數(shù)指針數(shù)組都可以作為函數(shù)的參數(shù)

8.以下關(guān)于函數(shù)指針的運算,錯誤的是()

A.函數(shù)指針可以與整數(shù)相加或相減

B.函數(shù)指針可以與另一個函數(shù)指針相加

C.函數(shù)指針可以與整數(shù)相乘或相除

D.函數(shù)指針可以與整數(shù)進行比較

9.以下關(guān)于函數(shù)指針的聲明,正確的是()

A.int(*pFunc)(int,int);

B.intpFunc(int,int);

C.int(*pFunc)(int,int)=func;

D.intpFunc(int,int)=func();

10.以下關(guān)于函數(shù)指針作為函數(shù)參數(shù)的代碼,正確的是()

A.voidfunc1(int(*pFunc)(int));

B.voidfunc1(intpFunc(int));

C.voidfunc1(int(*pFunc)(int,int));

D.voidfunc1(intpFunc(int,int));

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

1.下列關(guān)于函數(shù)指針的用途,正確的有()

A.實現(xiàn)函數(shù)回調(diào)

B.實現(xiàn)函數(shù)指針數(shù)組

C.實現(xiàn)函數(shù)指針作為函數(shù)參數(shù)

D.實現(xiàn)函數(shù)指針作為函數(shù)返回值

E.實現(xiàn)函數(shù)指針與函數(shù)指針數(shù)組的轉(zhuǎn)換

2.以下關(guān)于函數(shù)指針的聲明,正確的有()

A.int(*pFunc)(int);

B.void(*pFunc)(int,int);

C.double(*pFunc)(double);

D.char(*pFunc)(char,char);

E.int(*pFunc)(int,int,int);

3.以下關(guān)于函數(shù)指針的初始化,正確的有()

A.int(*pFunc)(int)=func;

B.void(*pFunc)(int,int)=func;

C.double(*pFunc)(double)=func;

D.char(*pFunc)(char,char)=func;

E.int(*pFunc)(int,int,int)=func;

4.以下關(guān)于函數(shù)指針作為函數(shù)參數(shù)的代碼,正確的有()

A.voidfunc1(int(*pFunc)(int));

B.voidfunc1(intpFunc(int));

C.voidfunc1(int(*pFunc)(int,int));

D.voidfunc1(intpFunc(int,int));

E.voidfunc1(int(*pFunc)(int,int,int));

5.以下關(guān)于函數(shù)指針數(shù)組的聲明,正確的有()

A.int(*pFuncArray[10])(int);

B.void(*pFuncArray[5])(int,int);

C.double(*pFuncArray[3])(double);

D.char(*pFuncArray[2])(char,char);

E.int(*pFuncArray[4])(int,int,int);

6.以下關(guān)于函數(shù)指針數(shù)組的初始化,正確的有()

A.int(*pFuncArray[10])(int)={func1,func2,func3,...};

B.void(*pFuncArray[5])(int,int)={func1,func2,func3,...};

C.double(*pFuncArray[3])(double)={func1,func2,func3,...};

D.char(*pFuncArray[2])(char,char)={func1,func2,func3,...};

E.int(*pFuncArray[4])(int,int,int)={func1,func2,func3,...};

7.以下關(guān)于函數(shù)指針與函數(shù)指針數(shù)組的區(qū)別,正確的有()

A.函數(shù)指針是一個指針,函數(shù)指針數(shù)組是一個指針數(shù)組

B.函數(shù)指針數(shù)組的每個元素都可以指向不同的函數(shù)

C.函數(shù)指針數(shù)組的聲明方式是“返回類型(*指針數(shù)組名)[大小]”

D.函數(shù)指針與函數(shù)指針數(shù)組都可以作為函數(shù)的參數(shù)

E.函數(shù)指針與函數(shù)指針數(shù)組在內(nèi)存中的存儲方式不同

8.以下關(guān)于函數(shù)指針的運算,正確的有()

A.函數(shù)指針可以與整數(shù)相加或相減

B.函數(shù)指針可以與另一個函數(shù)指針相加

C.函數(shù)指針可以與整數(shù)相乘或相除

D.函數(shù)指針可以與整數(shù)進行比較

E.函數(shù)指針可以與函數(shù)指針數(shù)組相加

9.以下關(guān)于函數(shù)指針的聲明,正確的有()

A.int(*pFunc)(int);

B.void(*pFunc)(int,int);

C.double(*pFunc)(double);

D.char(*pFunc)(char,char);

E.int(*pFunc)(int,int,int);

10.以下關(guān)于函數(shù)指針作為函數(shù)參數(shù)的代碼,正確的有()

A.voidfunc1(int(*pFunc)(int));

B.voidfunc1(intpFunc(int));

C.voidfunc1(int(*pFunc)(int,int));

D.voidfunc1(intpFunc(int,int));

E.voidfunc1(int(*pFunc)(int,int,int));

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

1.函數(shù)指針可以指向任何類型的函數(shù),包括構(gòu)造函數(shù)和析構(gòu)函數(shù)。()

2.函數(shù)指針的聲明中,參數(shù)類型列表可以省略,只要返回類型存在即可。()

3.使用函數(shù)指針可以提高代碼的可讀性和可維護性。()

4.函數(shù)指針的初始化必須使用取地址運算符&。()

5.函數(shù)指針可以作為函數(shù)的參數(shù)傳遞,以便在不同的上下文中調(diào)用不同的函數(shù)。()

6.函數(shù)指針數(shù)組的每個元素都可以指向同一個函數(shù)的不同調(diào)用。()

7.函數(shù)指針可以作為函數(shù)的返回值,實現(xiàn)回調(diào)機制。()

8.函數(shù)指針與整數(shù)之間可以進行算術(shù)運算。()

9.函數(shù)指針的聲明和定義必須完全一致,包括返回類型和參數(shù)類型。()

10.函數(shù)指針可以作為全局變量,在程序的任何地方使用。()

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

1.簡述函數(shù)指針的概念及其在C++中的作用。

2.如何聲明一個指向函數(shù)的指針?

3.解釋函數(shù)指針與普通指針的區(qū)別。

4.說明函數(shù)指針作為函數(shù)參數(shù)的意義。

5.如何使用函數(shù)指針實現(xiàn)函數(shù)回調(diào)?

6.請舉例說明函數(shù)指針數(shù)組的應(yīng)用場景。

試卷答案如下

一、單項選擇題

1.D

解析思路:函數(shù)指針可以指向任何類型的函數(shù),包括構(gòu)造函數(shù)和析構(gòu)函數(shù),因此選項A正確。函數(shù)指針的聲明方式確實為“返回類型(*指針名)(參數(shù)類型列表)”,因此選項B正確。使用函數(shù)指針可以避免函數(shù)調(diào)用的開銷,提高效率,因此選項C正確。函數(shù)指針與普通指針不同,可以指向函數(shù)的地址,因此選項D錯誤。

2.B

解析思路:函數(shù)指針的初始化應(yīng)該直接指向函數(shù)本身,而不需要使用取地址運算符&,因此選項A錯誤。選項B正確,直接將函數(shù)名賦值給函數(shù)指針。選項C錯誤,不能將函數(shù)的返回值賦給函數(shù)指針。選項D錯誤,new操作符用于動態(tài)分配內(nèi)存,不適用于函數(shù)指針。

3.A

解析思路:函數(shù)指針作為函數(shù)參數(shù)時,需要聲明為指向函數(shù)的指針類型,因此選項A正確。選項B錯誤,不能將函數(shù)指針作為普通參數(shù)傳遞。選項C錯誤,函數(shù)指針的參數(shù)類型列表需要與函數(shù)本身一致。選項D錯誤,不能將函數(shù)指針作為普通參數(shù)傳遞。

4.D

解析思路:數(shù)組名可以作為函數(shù)指針,但不能作為函數(shù)的返回值,因此選項A錯誤。選項B錯誤,數(shù)組名可以作為函數(shù)指針。選項C錯誤,數(shù)組名可以作為函數(shù)指針。選項D正確,數(shù)組名可以作為函數(shù)指針。

5.B

解析思路:函數(shù)指針數(shù)組的每個元素都可以指向不同的函數(shù),因此選項A錯誤。選項B正確,函數(shù)指針數(shù)組的每個元素都可以指向不同的函數(shù)。選項C錯誤,函數(shù)指針數(shù)組的聲明方式是“返回類型(*指針數(shù)組名)[大小]”。選項D錯誤,函數(shù)指針與函數(shù)指針數(shù)組都可以作為函數(shù)的參數(shù)。

6.A

解析思路:函數(shù)指針作為函數(shù)返回值時,需要聲明為指向函數(shù)的指針類型,因此選項A正確。選項B錯誤,不能將函數(shù)的返回值賦給函數(shù)指針。選項C錯誤,不能將函數(shù)的返回值賦給函數(shù)指針。選項D錯誤,new操作符用于動態(tài)分配內(nèi)存,不適用于函數(shù)指針。

7.B

解析思路:函數(shù)指針與函數(shù)指針數(shù)組都是指針類型,因此選項A錯誤。選項B正確,函數(shù)指針數(shù)組的每個元素都可以指向不同的函數(shù)。選項C正確,函數(shù)指針數(shù)組的聲明方式是“返回類型(*指針數(shù)組名)[大小]”。選項D錯誤,函數(shù)指針與函數(shù)指針數(shù)組都可以作為函數(shù)的參數(shù)。

8.A

解析思路:函數(shù)指針可以與整數(shù)相加或相減,因此選項A正確。選項B錯誤,函數(shù)指針不能與另一個函數(shù)指針相加。選項C錯誤,函數(shù)指針不能與整數(shù)相乘或相除。選項D錯誤,函數(shù)指針不能與整數(shù)進行比較。

9.A

解析思路:函數(shù)指針的聲明中,參數(shù)類型列表可以省略,只要返回類型存在即可,因此選項A正確。選項B錯誤,參數(shù)類型列表不能省略。選項C正確,參數(shù)類型列表可以省略。選項D錯誤,參數(shù)類型列表可以省略。

10.A

解析思路:函數(shù)指針作為函數(shù)參數(shù)時,需要聲明為指向函數(shù)的指針類型,因此選項A正確。選項B錯誤,不能將函數(shù)指針作為普通參數(shù)傳遞。選項C錯誤,函數(shù)指針的參數(shù)類型列表需要與函數(shù)本身一致。選項D錯誤,不能將函數(shù)指針作為普通參數(shù)傳遞。

二、多項選擇題

1.ABCD

解析思路:函數(shù)指針可以用于實現(xiàn)函數(shù)回調(diào)、函數(shù)指針數(shù)組、函數(shù)指針作為函數(shù)參數(shù)和函數(shù)指針作為函數(shù)返回值,因此選項A、B、C、D都正確。

2.ABCD

解析思路:函數(shù)指針的聲明中,返回類型和參數(shù)類型可以不同,因此選項A、B、C、D都正確。

3.ABCD

解析思路:函數(shù)指針的初始化可以直接將函數(shù)名賦值給函數(shù)指針,因此選項A、B、C、D都正確。

4.ABCD

解析思路:函數(shù)指針作為函數(shù)參數(shù)時,需要聲明為指向函數(shù)的指針類型,因此選項A、B、C、D都正確。

5.ABCDE

解析思路:函數(shù)指針數(shù)組的聲明中,返回類型和參數(shù)類型可以不同,因此選項A、B、C、D、E都正確。

6.ABCDE

解析思路:函數(shù)指針數(shù)組的初始化可以直接將函數(shù)名賦值給函數(shù)指針數(shù)組,因此選項A、B、C、D、E都正確。

7.ABCDE

解析思路:函數(shù)指針與函數(shù)指針數(shù)組都是指針類型,函數(shù)指針數(shù)組的每個元素都可以指向不同的函數(shù),聲明方式也一致,因此選項A、B、C、D、E都正確。

8.ABCD

解析思路:函數(shù)指針可以與整數(shù)相加或相減,因此選項A、B、C、D都正確。

9.A

溫馨提示

  • 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

提交評論