单选题
有以下程序:
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。