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

A)void (*pf)(); pf=fun;
B)viod *pf(); pf=fun;
C)void *pf(); *pf=fun;
D)void (*pf)(int,char);pf=&fun;

请问D错在哪里?

A正确
B,C定义的不是函数指针;D类型错(应为char *),赋值也错(函数fun这个名字指的就是这个函数的地址)。
A是定义的void类型的函数指针,赋值时是把函数首地址(用fun表示)赋给pf这个函数指针。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-04-29

严格的说,这几个没有一个对的。D错的地方很明显,参数类型错了!

正确的应该是这样的

void (*pf)(int,char*s);pf=&fun; // pf=fun 也是对的。

本回答被提问者和网友采纳
第2个回答  2014-03-28
应该是char*

函数指针定义
int (*f) (int x); \/* 声明一个函数指针 *\/ f=func; \/* 将func函数的首地址赋给指针f *\/ 或者使用下面的方法将函数地址赋给函数指针:f = &func;赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。注2:函数括号...

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

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

设有以下函数 void fun(int n,char * s) {……} 则下面对函数指针的定...
(*pf) 加括号的用法就是在于声明时候pf先是指针 它是指向函数的指针 这就排除了 BC 函数的地址就是函数名 不用& D 如果去掉一个&也对,void (*pf)(int,char);pf=fun;

求2010年3月计算机二级C语言笔试复习资料
33. (33)设有以下函数: void fun(int n,char *s){……} 则下面对函数指针的定义和赋值均正确的是 A)void (*pf)(); pf=fun; B)void *pf(); pf=fun; C)void *pf(); *pf=fun; D)void (*pf)(int,char);pf=&fun; A B C D 34.(34)有以下程序 #include <stdio.h> int f(int n)...

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

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'); … } 以下叙述中正...

求09年3月份全国计算机等级考试二级c语言笔试试题的详细讲解
(12)若函数中有定义语句:int k;,则 A)系统将自动给k赋初值0 B)这时k中值无定义 C)系统将自动给k赋初值-1 D)这时k中无任何值(13)以下选项中,能用作数据常量的是 A)o115 B) 0118 C)1.5e1.5 D) 115L(14)设有定义:int x=2; ,以下表达式中,值不为6的是A) x*=x+1 B) x++,2*x C)x*...

我这有C语言的题,哪位大侠能解决一下,必有重谢!
8、以下程序的运行结果是( )。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();下面说法...

下半年计算机二级c语言基础试题
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 ",k); 已...

相似回答