有以下程序:int fun1 (double a){ return a * =a;}int fun2 ( double x, double y ){ double a=0,b=0; a = fun1 (x) ;b = fun1 (y); retu

admin2009-01-15  16

问题 有以下程序: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
D、0

答案4

解析 程序调用函数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。
转载请注明原文地址:https://kaotiyun.com/show/YLXp777K
0

最新回复(0)