设有以下函数 void fun(int n,char * s) {……} 则下面对函数指针的定义和赋值均是正确的是

A)void (*pf)(); pf=fun;
B)viod *pf(); pf=fun;
C)void *pf(); *pf=fun;
D)void (*pf)(int,char);pf=&fun;
麻烦附上讲解,谢谢

在C语言里面函数不严格要求声明所有参数,所以A对
A
(*pf) 加括号的用法就是在于声明时候pf先是指针 它是指向函数的指针
这就排除了 BC

函数的地址就是函数名 不用&
D 如果去掉一个&也对,void (*pf)(int,char);pf=fun;
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-03
函数原型:
void fun(int n,char * s)
返回值为void
参数列表为2个参数,一个int,一个char*
函数名暂不关心

函数指针一定要保持参数和返回值与指向的函数一致

所以
void (*func)(int, char*);
应该是这样的

对应只有D才对

至于fun &fun没有区别,函数的地址,取地址都是相同的
第2个回答  2011-07-03
答案D。B和C是返回值为指针的函数,显然不合适,A则是没有带参数,不然怎么将参数传递给调用函数呀!
第3个回答  2011-07-03
d, 这是一个带参数的函数,所以定义指向他的函数指针也必须带参数,所以d正确。

设有以下函数 void fun(int n,char * s) {……} 则下面对函数指针的定...
函数的地址就是函数名 不用& D 如果去掉一个&也对,void (*pf)(int,char);pf=fun;

设有以下函数: void fun(int n,char*s){…} 则下面对函数指针的定义和赋...
函数指针的定义格式为函数类型(*指针变量名)(形参列表);函数名和数组名一样代表了函数代码的首地址,因此在赋值时,直接将函数指针指向函数名就行了。所以选项A正确。

(33)设有以下函数 void fun(int n,char * s) {……} 则下面对函数指针的...
B,C定义的不是函数指针;D类型错(应为char *),赋值也错(函数fun这个名字指的就是这个函数的地址)。A是定义的void类型的函数指针,赋值时是把函数首地址(用fun表示)赋给pf这个函数指针。

求2010年3月计算机二级C语言笔试复习资料
A)定义语句int i,max中max未赋值 B)赋值语句max=MIN;中,不应该给max赋MIN值 C)语句if(max<x[i]) max=x[i];中判断条件设置错误 D)赋值语句max=MIN;放错了位置 A B C D 26. (26)有以下程序 #include <stdio.h> main() { int m=1,n=2,*p=&m,*q=&n,*r; r=p;p=q;q=r; printf("...

若有以下函数首部int fun(double x[10], int *n)则下面针对此函数的函...
【答案】:D 答案 D 解析 : 函数首部 int fun(double x[10],int *n) 表示这个函数的返回值是整型,其第 1 个形式参数是一个双精度的一维数组,第 2 个参数是一个整型指针。在 C 语言中,一维数组的名字表示的是一维数组的地址,所以选项D是正确的。

1. 若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能出栈的序列是...
void main(){ int b[10]=; int i,s=0; fun(b,8); for(i=6;i<10;i++) s+=b[i]; printf("%d\\n",s);} (1)函数fun的功能是( A )。27 (A) 将数组a的前n个元素逆置 (B) 对数组元素进行升序排列(C) 交换数组第一个元素和最后一个元素 (D) 对数组元素进行降序排列 (2)程序的运行...

2011年三月全国计算机二级c真题及答案
void fun(char *s) { while(*s) { if(*s%2) printf("%c",*s); s++; } } main() { char a[]="BYTE"; fun(a); printf("\\n"); } 程序运行后的输出结果是 A)BY B)BT C)YT D) YE (26)有以下程序段 #include main() { … while( getchar() !='\\n'); … } 以下叙述中正...

我这有C语言的题,哪位大侠能解决一下,必有重谢!
void fun(int *n){ static int m=2; *n*=m-1; m+=2;}void main(){ static int m=1; int i; for(i=1;i<4;i++) fun(&m); printf("%d\\n",m);}本题(1分)A:8B:10C:11D:15 A B C D 9、程序中对fun函数有如下说明:int *fun();下面说法正确的是( )。本题(1分)A:fun...

下半年计算机二级c语言基础试题
A. 定义函数 B. 定义常量和外部变量 C. 三种基本结构语句 D. 丰富的数据类型 【答案】A 【解析】C程序的模块化主要通过函数来实现。C语言允许对函数单独进行编译,从而可以实现模块化。答案选择A选项。 4. 有以下程序段: char ch; int k; ch='a'; k=12; print("%c,%d,",h,ch,k); printf("k=%d...

求C++高手!!!
请编写函数fun(int a[][N],该函数的功能是:使数组左下半三角元素中的值全部置成0。例如:a数组中的值为: ,则返回主程序后a数组中的值应为:。***12.下列程序定义了NXN的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。例如:若a数组...

相似回答