A-A+
有以下程序 include<stdi0-h> intfuna(inta intb){ ret
问题详情
有以下程序 include<stdi0-h> intfuna(inta,intb){ retuma+b;} intfunb(inta,intb){returna-b;} intSSS(int(*t)0,intx,intY){return((*t)(x,y));} main(){ intx; x=sss(funa,9,3); x+=sss(funb,8,3); printf(%dkn,x);} 程序运行后的输出结果是
A.17
B.23
C.24
D.22
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:A
函数funa的功能计算两个数据的和,funb的功能计算两个数据的差,函数sss中利用指向函数的指针作为函数的参数,可以往调用的时候,根据接收的函数地址来决定调用那一个函数。土函数中调用x=sss(funa,9,3),将funa函数的地址传递给t,因此sss函数成为求两个数据的和12,继续将funb函数地址传给t,求两个数据差为5,和s累加后结果为17。