二级C语言函数指针应用分析试题及答案_第1页
二级C语言函数指针应用分析试题及答案_第2页
二级C语言函数指针应用分析试题及答案_第3页
二级C语言函数指针应用分析试题及答案_第4页
二级C语言函数指针应用分析试题及答案_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

二级C语言函数指针应用分析试题及答案姓名:____________________

一、单项选择题(每题2分,共10题)

1.以下关于函数指针的描述,错误的是:

A.函数指针可以指向任意类型的函数

B.函数指针可以指向静态函数

C.函数指针不能指向构造函数

D.函数指针可以指向全局函数

2.下列关于函数指针的定义,正确的是:

A.int(*ptr)();//函数返回整型

B.int(*ptr)(int);//函数返回整型,参数为整型

C.int(*ptr)(int,float);//函数返回整型,参数为整型和浮点型

D.int(*ptr)(int,int);//函数返回整型,参数为整型

3.以下关于函数指针的应用,正确的是:

A.可以用函数指针作为函数的参数

B.可以用函数指针作为数组的元素

C.可以用函数指针作为函数的返回值

D.以上都是

4.以下关于函数指针和普通指针的区别,错误的是:

A.函数指针指向函数,普通指针指向变量

B.函数指针不能作为函数的参数,普通指针可以

C.函数指针可以指向函数的返回值,普通指针不能

D.函数指针可以指向静态函数,普通指针不能

5.以下关于函数指针的赋值,正确的是:

A.int(*ptr)()=f;//正确

B.int(*ptr)();ptr=f;//正确

C.int(*ptr)(int);ptr=f;//正确

D.int(*ptr)(int,int);ptr=f;//正确

6.以下关于函数指针作为函数参数的例子,错误的是:

A.voidfunc(int(*ptr)(int));//正确

B.voidfunc(int(*ptr)());//正确

C.voidfunc(int(*ptr)(int,int));//正确

D.voidfunc(int(*ptr)());//错误,参数类型不匹配

7.以下关于函数指针的应用,正确的是:

A.可以用函数指针作为函数的参数,实现函数调用

B.可以用函数指针作为数组的元素,实现函数调用

C.可以用函数指针作为函数的返回值,实现函数调用

D.以上都是

8.以下关于函数指针作为数组的元素,正确的是:

A.int(*arr[10])(int);//正确

B.int(*arr[10])(int,int);//正确

C.int(*arr[10])(int,float);//正确

D.int(*arr[10])(int,int);//正确

9.以下关于函数指针的初始化,正确的是:

A.int(*ptr)()=f;//正确

B.int(*ptr)();ptr=f;//正确

C.int(*ptr)(int);ptr=f;//正确

D.int(*ptr)(int,int);ptr=f;//正确

10.以下关于函数指针作为函数的返回值,正确的是:

A.int(*func)(int);//正确

B.int(*func)(int,int);//正确

C.int(*func)(int,float);//正确

D.int(*func)();//正确

二、多项选择题(每题3分,共10题)

1.以下关于函数指针的用途,正确的有:

A.实现函数回调

B.实现函数指针数组

C.实现函数指针作为函数参数

D.实现函数指针作为函数返回值

2.以下关于函数指针的声明,正确的有:

A.int(*ptr)();//声明一个返回整型的函数指针

B.void(*ptr)(int,float);//声明一个返回void型,参数为整型和浮点型的函数指针

C.double(*ptr)();//声明一个返回double型的函数指针

D.char(*ptr)(char);//声明一个返回char型,参数为char型的函数指针

3.以下关于函数指针的赋值,正确的有:

A.int(*ptr)()=f;//将函数f的地址赋给ptr

B.void(*ptr)(int)=f;//将函数f的地址赋给ptr,f的返回类型为void

C.double(*ptr)()=f;//将函数f的地址赋给ptr,f的返回类型为double

D.char(*ptr)(char)=f;//将函数f的地址赋给ptr,f的返回类型为char

4.以下关于函数指针作为函数参数的例子,正确的有:

A.voidfunc(int(*ptr)(int));//正确,ptr作为参数传递

B.voidfunc(int(*ptr)());//正确,ptr作为参数传递

C.voidfunc(int(*ptr)(int,int));//正确,ptr作为参数传递

D.voidfunc(int(*ptr)());//错误,参数类型不匹配

5.以下关于函数指针数组的例子,正确的有:

A.int(*arr[10])(int);//正确,arr是一个包含10个函数指针的数组

B.int(*arr[10])(int,int);//正确,arr是一个包含10个函数指针的数组

C.int(*arr[10])(int,float);//正确,arr是一个包含10个函数指针的数组

D.int(*arr[10])(int,int);//正确,arr是一个包含10个函数指针的数组

6.以下关于函数指针作为函数返回值的例子,正确的有:

A.int(*func)(int);//正确,func返回一个指向整型函数的指针

B.int(*func)(int,int);//正确,func返回一个指向整型函数的指针

C.int(*func)(int,float);//正确,func返回一个指向整型函数的指针

D.int(*func)();//正确,func返回一个指向整型函数的指针

7.以下关于函数指针和函数指针数组的区别,正确的有:

A.函数指针指向一个函数,函数指针数组指向一个函数指针

B.函数指针数组可以存储多个函数指针,单个函数指针只能存储一个函数指针

C.函数指针数组可以作为函数参数传递,单个函数指针不能

D.函数指针数组可以作为函数返回值,单个函数指针不能

8.以下关于函数指针作为函数参数的应用场景,正确的有:

A.实现函数回调机制

B.实现函数指针数组

C.实现函数指针作为函数返回值

D.实现函数指针作为全局变量

9.以下关于函数指针的声明和定义,正确的有:

A.int(*ptr)();//声明一个返回整型的函数指针

B.void(*ptr)(int,float);//声明一个返回void型,参数为整型和浮点型的函数指针

C.double(*ptr)();//声明一个返回double型的函数指针

D.char(*ptr)(char);//声明一个返回char型,参数为char型的函数指针

10.以下关于函数指针的初始化,正确的有:

A.int(*ptr)()=f;//将函数f的地址赋给ptr

B.void(*ptr)(int)=f;//将函数f的地址赋给ptr,f的返回类型为void

C.double(*ptr)()=f;//将函数f的地址赋给ptr,f的返回类型为double

D.char(*ptr)(char)=f;//将函数f的地址赋给ptr,f的返回类型为char

三、判断题(每题2分,共10题)

1.函数指针在声明时,必须指定函数的返回类型。()

2.函数指针可以指向构造函数。()

3.函数指针可以作为数组的元素。()

4.函数指针可以作为函数的返回值。()

5.函数指针可以指向静态函数。()

6.函数指针数组可以存储不同类型的函数指针。()

7.函数指针作为函数参数时,参数类型与函数指针指向的函数参数类型必须一致。()

8.函数指针可以作为全局变量使用。()

9.函数指针在声明时,参数类型可以省略。()

10.函数指针的赋值操作必须保证赋值后的指针指向的函数与声明时类型一致。()

四、简答题(每题5分,共6题)

1.简述函数指针的概念及其在C语言中的作用。

2.如何定义一个函数指针?

3.如何将一个函数的地址赋给一个函数指针?

4.函数指针作为函数参数时,应注意哪些问题?

5.如何使用函数指针实现函数回调?

6.简述函数指针数组和函数指针数组的应用场景。

试卷答案如下

一、单项选择题

1.C

解析思路:函数指针可以指向任意类型的函数,包括构造函数,但不能指向静态函数。

2.B

解析思路:函数指针定义时,括号内不指定参数类型表示返回类型,括号外指定参数类型表示参数类型。

3.D

解析思路:函数指针可以用作函数参数、数组元素和函数返回值。

4.B

解析思路:函数指针可以指向任意类型的函数,包括全局函数,而普通指针不能指向函数。

5.A

解析思路:函数指针初始化时,可以直接将函数名赋给指针,无需括号。

6.D

解析思路:函数指针作为函数参数时,参数类型应与函数指针指向的函数参数类型一致。

7.D

解析思路:函数指针可以用作函数参数、数组元素和函数返回值,实现函数回调。

8.A

解析思路:函数指针数组可以存储多个函数指针,每个指针指向一个函数。

9.A

解析思路:函数指针初始化时,可以直接将函数名赋给指针,无需括号。

10.D

解析思路:函数指针的赋值操作必须保证赋值后的指针指向的函数与声明时类型一致。

二、多项选择题

1.A,B,C,D

解析思路:函数指针的用途包括函数回调、函数指针数组、作为函数参数和返回值。

2.A,B,C,D

解析思路:函数指针的声明应包括返回类型和参数类型,括号的使用取决于返回类型是否指定。

3.A,B,C,D

解析思路:函数指针的赋值可以直接将函数名赋给指针,无需括号。

4.A,B,C

解析思路:函数指针作为函数参数时,参数类型应与函数指针指向的函数参数类型一致。

5.A,B,C,D

解析思路:函数指针数组可以存储多个函数指针,每个指针指向一个函数。

6.A,B,C,D

解析思路:函数指针作为函数返回值时,返回类型应与函数指针指向的函数返回类型一致。

7.A,B,C,D

解析思路:函数指针数组可以存储不同类型的函数指针,可以作为函数参数传递和返回。

8.A,B,C,D

解析思路:函数指针作为函数参数的应用场景包括函数回调、函数指针数组、作为函数返回值和全局变量。

9.A,B,C,D

解析思路:函数指针的声明应包括返回类型和参数类型,括号的使用取决于返回类型是否指定。

10.A,B,C,D

解析思路:函数指针的初始化必须保证赋值后的指针指向的函数与声明时类型一致。

三、判断题

1.×

解析思路:函数指针在声明时,返回类型必须指定。

2.×

解析思路:函数指针不能指向构造函数。

3.√

解析思路:函数指针可以作为数组的元素。

4.√

解析思路:函数指针可以作为函数的返回值。

5.√

解析思路:函数指针可以指向静态函数。

6.×

解析思路:函数指针数组可以存储相同类型的函数指针。

7.√

解析思路:函数指针作为函数参数时,参数类型应与函数指针指向的函数参数类型一致。

8.√

解析思路:函数指针可以作为全局变量使用。

9.×

解析思路:函数指针在声明时,参数类型不能省略。

10.√

解析思路:函数指针的赋值操作必须保证赋值后的指针指向的函数与声明时类型一致。

四、简答题

1.函数指针是一个指向函数的指针变量,它可以用来调用函数、传递函数作为参数或返回函数。在C语言中,函数指针的作用包括实现函数回调、函数指针数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论