设x,y为float型变量*x=10赋值
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/10 01:15:35
答案A在算术运算中:系统会自动的将低优先级的数向高优先级的数转换赋值运算时:赋值运算符右边的值需要转换为左边变量的类型,左边变量的类型即赋值表达式结果的类型
该题应该选择B答案,因为求余运算符两边的操作数只能是整形变量,不能为float型.另外替你分析一下其他选项:A:++是自增运算符,即x的值先加1后再使用x的值,该值正确.B:略.C:符合运算符,x*=
答案是Bx*100+0.5是float型,强制转成int型后,会保留整数,而去掉小数*100实现了保留2位小数,+0.5是对第3位四舍五入给你看个实例
#includeintmain(){\x05floaty;\x05intx=-3;\x05y=x%2;//y的值是-1\x05printf("%f\n",y);//输出-1printf("%d\n",
y值仍然为3t=++x||++y;等效于t=(++x||++y);逻辑运算符||,左侧为非零,右侧就不用判断了,整体肯定为1再问:t=++x||++y这个看不懂啊再答:t=++x||++y整体上是个赋
开始x和y都赋值为2t=++x||++y注意到后边这个是取“或”,因此当程序执行了++x时,判断为真(不为0即为真)后边的++y就没有执行,如果你把x的值改为-1时,再执行t=++x||++y后,y就
4++的运算级高于+
B自增自减运算符是对变量的值加一或是减一,很明显,B不满足.
floatx,y=3.14;这一句只是对y赋值了floatx=y=3.14;这一句直接就是语法错误,没有这种写法,定义变量的时候不可以这么写,因为y是未定义的写成floatx=3.14,y=3.14;
很高兴为你解决问题哈~作为一个从事软件开发的人员,你这种问题在我曾经也是犯过错误的哈在数值类型里面有个优先级关系:一般来讲,占位越长或者精度越高的数据类型的等级越高,当你做运算的时候,系统会自动的将低
答案A改变了数值,显然不对;答案B第三位舍入了可得到的浮点数2位以后没舍掉;答案C先放大百倍接着对三位进行了舍入取整数保证了小数部分舍弃再除百得到两位小数;答案D先除了改变了小数点前的整数值显然错误,
floatx=3.2;printf("%f,%f",x,++x);
答案C(int)(x*100+0.5)把float型数据(x*100+0.5)强转成int,这样就可以去掉小数点,+0.5就是为了四舍五入例如x=4.256,则(4.256*100+0.5)=426.
就是C因为为了保证小数点后两位,所以必须先乘以100.排除D.第三位四舍五入,就得用类型转换.
上面有一点小错误,自加不能与表达式用在一起,因此y=5*6=30,第二个y的值为:y=(30-1)*(30-1-1)=29*28=812
x/y=12.5/5.0=2.5int(x/y)=int(2.5)=2(int)x/y=12/5.0=2.4结果:2.5+2-2.4=2.1
Bx+2运算后是一个具体数值而不是变量,++符需要它的左值或右值是一个变量,因此必然产生编译错误
B取余运算只能是2个整数来运算
运行了,说float可能损失精度,运行有错误.然后我换成double,都是4.2,4.2