有以下程序 #include int funa(int a,int b) {return a+b;} int funb(int a, int b) { return a-b; } int sss(int

admin2019-12-17  22

问题 有以下程序
    #include
    int funa(int a,int b)
    {return a+b;}
    int funb(int a,  int b)
    {  return a-b;  }
    int sss(int:  (*t)(),int x,int y)
    {return((*t)(x,y));)
    main()  {
    int x;
    x=sss(funa,9,3);
    x+=sss(funb,8,3  );
    printf("%d\n",x);}
    程序运行后的输出结果是

选项 A、1 7
B、23
C、24
D、22

答案A

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

最新回复(0)