有关C语言运算的问题

int a=5,b=2;则表达式b+=(float)(a+b)/2后b的值是多少

float(a+b)/2的值为3.5再加上一个b值为5.5,但是b是int类型的,所以最后b为5

你可以在编译器上试一试,我用eclipse试的结果是 5,可能是因为b的数据类型是int。
如果把代码改成:

    int a=5;
    float b=2;
    b+=(float)(a+b)/2;
    System.out.println(b);

这时的结果是5.5了

b += (float)(a+b)/2;
b += 3.500000;
b = 3.500000+2 = 5.500000;