有以下程序 float fun(int x,int y) {return(x+y);} main() { int a=2,b=5,c=8; printf(“%3.Of\n”,fun((int)fun(a+c,b),a-c));

admin2010-01-10  10

问题 有以下程序    float fun(int x,int y)    {return(x+y);}    main()    { int a=2,b=5,c=8;    printf(“%3.Of\n”,fun((int)fun(a+c,b),a-c));    }    程序运行后的输出结果是

选项 A、编译出错
B、9
C、21
D、9

答案2

解析 fun()函数是将传进来的两个整型参数相加,把和作为函数值返回,注意返回值为float型。在主函数调用了两次fun()函数,第一次调用时把表达式“a+c”和变量“b”的值求和,得到15转换为15.0作为函数的返回值。第二次调用把第一次调用的返回值通过强制类型转换成int型15,再和表达式“a-c”相加,得到结果9,转换成float型作为函数值返回。由于输出格式符为“%3.of输出时没有小数位,故输出为9。
转载请注明原文地址:https://jikaoti.com/ti/OKI0FFFM
0

最新回复(0)