1.a为double变量,并且a=(5/2+0.5+(int)1.87*2),那么printf("%f",a)显示的值是:4.500000
①先看5/2,分子分母都是int类型,结果所得为int类型,故结果省去小数,结果为2.
②再看(int)1.87*2,(int)为强制转换,需要注意的是强制转换为int类型是不会四舍五入的,直接省略小数部分,且强制转换的优先级高于运算符,故结果为1*2=2.
③printf函数以%f的形式也就是单精度,运算精度约在10进制七位,故整数位加小数位共七位
2.函数调用不可以做为另一个函数的形参,但可以做为实参。
3.执行语句int a=1,b=2,c=3;if(a=c)b++;else b--;后,变量b的值为:3
①注意if(a=c)这句,=为赋值符,==为逻辑符,C语言中规定0为假,非零为真,故此语句为真,执行b++,故结果为3.