问题 单项选择题

若有如下程序:
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.0

D.编译出错

答案

参考答案:A

解析: 因为函数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。

单项选择题
问答题 简答题