若有如下程序: float sub(int a,int b) { return(a*b); } main() {int i=1,j=2,k=3; printf("%4.0f\n",sub((int)sub(k+j,j),

admin2013-06-11  34

问题 若有如下程序:    float sub(int a,int b)    {  return(a*b);  }    main()    {int i=1,j=2,k=3;     printf("%4.0f\n",sub((int)sub(k+j,j),k+i));    }    则程序运行后的输出结果是(  )。

选项 A、40
B、32
C、16
D、编译出错

答案1

解析 因为函数sub()只是简单地返回两个参数的乘积,所以表达式sub((int)sub(k+j,j),k+i)展开后就是:(int)((k+j) *j)*(k+i)=((3+2)*2)*(3+1)=10*4=40。所以程序运行后的输出结果是40,应该选择A。
转载请注明原文地址:https://jikaoti.com/ti/pdn0FFFM
0

最新回复(0)