18. 有以下函数定义: int fun(,double a ,double b) { return a*b; }

1个回答

  • 首先说18题,这个函数是由返回值的,所以只有D不是赋值操作.24题:因为最后一句:

    printf("%d/N",SUB(a++,b++));中的SUB不是函数而是预编译.它使SUB(a++,B++)在编译时变为:(a++)*b++,.所以这时的就是:3*45=12

    25题:fun中的i,M为static变量,也就是静态变量,所以在函数Fun内是一直记录的,也就是知道程序结束才消失,而你主函数main中在第一次调用fun时结束时,fun中的i=3,m=8,所以这时返回值为8,而当第二次调用时fun内i=3,m=8.结束时:i=12,m=17.所以返回值为17