char fun(char*); main(){ char*s="one",a[5]={0},{*f1)()=fun,ch; 调用 A(*f1)(a)B*f1(*s)Cfun(&a)哪个对

如题所述

ch;是不是你在别的地方复制的或者是你在抄这道题目时搞错了。我大概了解你这到题目的意思。这道题目应该是想通过函数指针调用函数fun。首先函数指针的定义就出错了。你题目里面的f1应该就是一个函数指针,但是它的定义应该这样char (*f1)(char *)=fun;
我首先来解释一下为什么这样定义吧。指针存放的是地址,那么函数指针也不例外了。而且你定义函数指针的时候要与你要调用的函数的形式一样,注意到没有上面我定义的时候返回值和形参的类型都相同。
定义好了函数指针那么现在就来帮它赋值,我们赋给函数指针的值要是地址,而函数名存放的就是函数在内存中的起始地址。所以我们只需要把函数名赋给函数指针就行了。
既然值都赋好了,我们下一步就应该调用它了。调用的时候应该这样f1(s);这里面的实参用s知道为什么吗?那是因为s也是一个字符型的指针变量和形参一样当然要这么调用了。
下面我就将程序写一遍吧
char fun(char *c);
{
...;(这是你要实现的fun函数的功能)
}
main()
{
char *s="one";
int a[5]=;(上面的程序这里都没有将数组的类型申明出来,肯定是有问题的,这里如果是char类型即(char a[5]=),那么下面的答案还有另外一种)
char (*f1)(char *)=fun;
char ch;(这个变量应该是用来接收fun函数返回的值的)
ch=f1(s);(这就是调用fun函数了,如果上面的a数组时char类型那么还有之中情况ch=f1(a))
}
如果是考察函数指针的运用我想应该就是这样的,我不知道是不是你的题目抄错了还是我理解错了。函数指针调用如果是这样的话是绝对没错的。所以最后的答案最终只有两种结果
ch=f1(s)或ch=f1(a);
温馨提示:内容为网友见解,仅供参考
无其他回答

...s="one",a[5]={0},{*f1)()=fun,ch; 调用 A(*f1)(a)B*f1(*s)Cfun...
main(){ char *s="one";int a[5]=;(上面的程序这里都没有将数组的类型申明出来,肯定是有问题的,这里如果是char类型即(char a[5]=),那么下面的答案还有另外一种)char (*f1)(char *)=fun;char ch;(这个变量应该是用来接收fun函数返回的值的)ch=f1(s);(这就是调用fun函数了,如果...

char fun(char*); main() { char *s="one",a[5]={0},(*f1)()=fun...
char fun(char*);main(){ char*s="one",a[5]={0},(*f1)()=fun,ch;……} 以下选项中对函数fun的正确调用语句是 A.(*f1)(A) ;B.*f1(*s);C.fun(&A) ;D.ch=*f1(s);请帮忙给出正确答案和分析,谢谢!我来回答 最佳答案heyu522014-08-28 正确答案:A 解析:函数fun(...

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

急求计算机二级考试的试题(C语言)
A)int a[5]={0,1,2,3,4,5}; B)char a[]={0,1,2,3,4,5}; C)char a={’A’,’B’,’C’}; D)int a[5]="0123"; (26)有以下程序 A int f1(int x,int y){return x>y?x:y;} int f2(int x,int y){return x>y?y:x;} main() { int a=4,b=3,c=5,d=2,e,f,g...

...void fun(char *w,int m) { char s,*p1,*p 读程序写结果?
fun函数从头尾向中间 交换对应字符位置 最终得到一个反序字符串 输出654321

c语言#include <stdio.h> void fun(char *s){
a作为参数传到fun()这个函数里。这样,fun()函数里的*s的值就是good 了

...main() { char s[12]='very good!'; printf('%d',strlen(s...
【答案】:10 strlen(s)函数的返回值为字符串s包含的字符个数<不计最后的'\\0')。

...int fun(char *s) {char *t=s; while(*t++); return(t-s); }...
计算字符串字节长度,相当于strlen。s是个字符串指针,传递给局部变量t,指针t递增至其指向的字符为结束符(ASCII值0),t地址减去s地址就是字符串长度了。

char fun(char *s){ return s;}函数的返回值是什么?
形参是一个指针 返回的是这个指针的值 但类型是char,实际返回的是这个指针的最低8位 所以实际上是一个无法确定的值,选A吧 正确的说法是,返回形参s中存放的地址最低8位的值 检查一下题,如果是char*fun(char*s),那么就是b了

急!!历年国家计算机二级c语言笔试真题答案。
A)9 B)_9 C)18 D)0 (17)若变量已正确定义,在if (W)printf(“%d\\n,k”);中,以下不可替代W的是 A)a<>b+c B)ch=getchar() C)a==b+c D)a++ (18)有以下程序 #include<stdio.h> main() {int a=1,b=0; if(!a) b++; else if(a==0)if(a)b+=2; else b+=3; printf(”%d...

相似回答