以下程序的输出结果是( )。 #include int funa(int a,int b){return a+b;} int funb(int a,int b){return a一b;} int sss(int(*t)(),jnt x,int y){re

admin2017-10-24  37

问题 以下程序的输出结果是(  )。
#include
int funa(int a,int b){return a+b;}
int funb(int a,int b){return a一b;}
int sss(int(*t)(),jnt x,int y){retern((*t)(x,y));}
main(){int x;
x=sss(funa,9,3);
x+=sss(funb,8,3);
printf(’’%d\n’’,x);}

选项 A、17
B、22
C、24
D、23

答案A

解析 题目中函数funa的功能计算两个数据的和,funb的功能计算两个数据的差,函数sss中利用指向函数的指针作为函数的参数,可以在调用的时候,根据接收的函数地址来决定调用哪一个函数。主函数中调用x=sss(funa,9,3),将funa函数的地址传递给t,因此sss函数成为求两个数据的和12,继续将funb函数地址传给t,求两个数据差为5,和x累加后结果为17,选项A正确。
转载请注明原文地址:https://kaotiyun.com/show/8bxp777K
0

最新回复(0)