问题 单项选择题

有以下程序

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()

{double w;w=fun2(1.1,2.0);......}

程序执行后变量W中的值是()。

A.5.21

B.5

C.5.0

D.0.0

答案

参考答案:C

解析:

评析:此题考核的是数值类型的定义与强制转换。本题在进行调用函数fun2()时,又对函数fun1()进行了调用,由于函数 fun1()定义为整型,所以第一次调用fun1()时返回的值为1,然后再将1赋值给a,此时由于a为double型,则系统自动类型转换,将1转换成了1.000000赋值给了变量a,以此类推,得b的值为4.000000,然后诵过“return(int)(a+b);”将a+b的值强制转换为int型5返回给主函数,此时又由w的类型为double,所以返回的整型值5又被转换为double型。故输出结果为5.0。

单项选择题
多项选择题