请帮我解释下这几道C语言选择题?
11.2若有以下说明和定义:#include<stdio.h>main(){int(*a)(int*),*b(a),w[10],c...}intfun(int*c){.....
11.2 若有以下说明和定义:
#include<stdio.h>
main()
{ int(*a)(int*),*b(a),w[10],c
.
.
.
}
int fun(int *c){...}
则以下选项中能正确调用fun函数的是:
A a=fun;a(w); B a=fun;(*a)(&c); C b=fun;*b(w); D fun(b);
答案:B
不懂
11.4 有以下程序:
#include<stdio.h>
long fib(int n)
{ if(n>2) return(fib(n-1)+fib(n-2));
else return(2);
}
main()
{ printf("%ld\n",fib(6));
}
程序的输出结果是:
A 8 B 30 C 16 D 2
答案:C 此函数中如何递归?
11.9 以下程序的输出结果是:
#include<stdio.h>
funa(int a,int b) {return a+b;}
funb(int a,int b) {return a-b;}
sub(int(*t)(),int x,int y) {return(*t)(x,y);}
main()
{ int x,(*p)(int,int);
p=funa;
x=sub(p,9,3);x+=sub(funb,8,3);
printf("%d\n",x);
}
答案:17 里面的函数如何递归? 展开
#include<stdio.h>
main()
{ int(*a)(int*),*b(a),w[10],c
.
.
.
}
int fun(int *c){...}
则以下选项中能正确调用fun函数的是:
A a=fun;a(w); B a=fun;(*a)(&c); C b=fun;*b(w); D fun(b);
答案:B
不懂
11.4 有以下程序:
#include<stdio.h>
long fib(int n)
{ if(n>2) return(fib(n-1)+fib(n-2));
else return(2);
}
main()
{ printf("%ld\n",fib(6));
}
程序的输出结果是:
A 8 B 30 C 16 D 2
答案:C 此函数中如何递归?
11.9 以下程序的输出结果是:
#include<stdio.h>
funa(int a,int b) {return a+b;}
funb(int a,int b) {return a-b;}
sub(int(*t)(),int x,int y) {return(*t)(x,y);}
main()
{ int x,(*p)(int,int);
p=funa;
x=sub(p,9,3);x+=sub(funb,8,3);
printf("%d\n",x);
}
答案:17 里面的函数如何递归? 展开
4个回答
展开全部
第一题:
a是一个函数指针。a=fun,a指向了fun,*a具有和fun一样的功能。fun本身的参数是一个int型指针,&c取c的地址,相当于一个指向c指针!(*a)(&c)是对的!
第二题:
类似菲波纳耶数列,2,2,4,6,10,16~~~~~~~~。n〉2时,每个数是前两项之和,第一项和第二项都是2!
第三题:
int x,(*p)(int,int);//p是函数指针,
p=funa;//p指向funa
x=sub(p,9,3);//p现在和funa功能相同,根据sub的功能定义,调用p指向的函数处理9和3,结果为12
x+=sub(funb,8,3);//直接用的funb,调用funb,处理8-3,结果是5
printf("%d\n",x);//x为17
这个没使用递归!!!!!!!!!!!!!!!!!!!
a是一个函数指针。a=fun,a指向了fun,*a具有和fun一样的功能。fun本身的参数是一个int型指针,&c取c的地址,相当于一个指向c指针!(*a)(&c)是对的!
第二题:
类似菲波纳耶数列,2,2,4,6,10,16~~~~~~~~。n〉2时,每个数是前两项之和,第一项和第二项都是2!
第三题:
int x,(*p)(int,int);//p是函数指针,
p=funa;//p指向funa
x=sub(p,9,3);//p现在和funa功能相同,根据sub的功能定义,调用p指向的函数处理9和3,结果为12
x+=sub(funb,8,3);//直接用的funb,调用funb,处理8-3,结果是5
printf("%d\n",x);//x为17
这个没使用递归!!!!!!!!!!!!!!!!!!!
展开全部
第1题:
a是一个函数指针。a=fun,a指向了fun,*a具有和fun一样的功能。fun本身的参数是一个int型指针,&c取c的地址,相当于一个指向c指针!(*a)(&c)是对的!
第2题:
类似菲波纳耶数列,2,2,4,6,10,16~~~~~~~~。n〉2时,每个数是前两项之和,第一项和第二项都是2!
第3题:
int x,(*p)(int,int);//p是函数指针,
p=funa;//p指向funa
x=sub(p,9,3);//p现在和funa功能相同,根据sub的功能定义,调用p指向的函数处理9和3,结果为12
x+=sub(funb,8,3);//直接用的funb,调用funb,处理8-3,结果是5
printf("%d\n",x);//x为17
a是一个函数指针。a=fun,a指向了fun,*a具有和fun一样的功能。fun本身的参数是一个int型指针,&c取c的地址,相当于一个指向c指针!(*a)(&c)是对的!
第2题:
类似菲波纳耶数列,2,2,4,6,10,16~~~~~~~~。n〉2时,每个数是前两项之和,第一项和第二项都是2!
第3题:
int x,(*p)(int,int);//p是函数指针,
p=funa;//p指向funa
x=sub(p,9,3);//p现在和funa功能相同,根据sub的功能定义,调用p指向的函数处理9和3,结果为12
x+=sub(funb,8,3);//直接用的funb,调用funb,处理8-3,结果是5
printf("%d\n",x);//x为17
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
找一本好点的C语言书看看吧,一两次是很难彻底明白指针的,多看,多练就自然运用自如了,怕,永远学不会哦。大多数C语言学习者都是这么过来的。
zfy500说的非常正确。
zfy500说的非常正确。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
(*a)(&c) 看见指针就头疼。。。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询