1.D的话得(int)3.14或(int)(3.14) B里面的+是正号的意思,-a则是取负数。
2.靠近0取整,10.0/4.0等于2.5,而要赋给一个整型变量,则2.5靠近0取整也就是2。printf输出10/4的话是2。
3.一般叫局部变量,也是很多书都这么采用的。不排除有某些翻译成内部变量。
1. +a可能难理解一点,你可以理解-a么?-1,那么+1就是1,可以理解为0+a
强制转换应该写成(int)3.14
2.10.0/4.0得到的是2.5,然后强制转换成int赋值给x,因此x是2,没有四舍五入的说法,除非用math.h里的函数
10/4 结果是2
3.应该是局部变量吧,概念性的问题
1. B的问题,+和-单独像选项中一样使用的时候就和数学上的正负转换类似,不过这里是+号是乘以1,-号是乘以-1。D,强制转换是(int)3.14。楼上大哥讲的有点问题,如果a是-1,那么+a还是-1,-a的话是1。
2. 因为10.0/4.0是按照浮点数进行计算,结果是2.5,然后赋值给X,被四舍五入为3。相当于(int)2.5。而计算10/4的时候是按照整型进行计算,结果只取整数,所以是2
3. 局部变量,这个内部变量的说法好像没在什么正式的说法中看到过
强制类型转换的标准定义是:(类型名)(表达式);参考谭浩强C程序设计第三版56页。虽然int(3.14)在VC中可以正确识别,但是不一定符合C的语言语法!
而+a我的理解是取正值!因为你可以使用printf("%d",-a);来输出a的相反数!
(int)3.14
2,不是
内部