问题 单项选择题

有以下程序:
int fun1 (double a) return a * =a;
int fun2 ( double x, double y )
double a=0,b=0;
a = fun1 (x) ;b = fun1 (y); return(int) (a + b); main()
doublew;w=fun2(1.1,2.0);……
程序执行后变量w中的值是( )。

A) 5.21
B) 5
C) 5.0
D) 0.0

答案

参考答案:C

解析: 程序调用函数fun2时,通过fun2调用函数fun1,第一次调用fun1返回的值为1,然后将1赋值给a,由于a为double型,系统自动将1转换为1.000000赋给变量a,以此类推可得b的值为4.000000;然后通过return(int)(a+b);将a+b的值强制转换为int型返给主函数,由于w为double型,所以返回的整型值5被转换为double型,故输出结果为5.0。

填空题
单项选择题