设变量x为float型且已被赋值,且下列语句中能将x中的数值保留到小数点后两位
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 16:42:25
![设变量x为float型且已被赋值,且下列语句中能将x中的数值保留到小数点后两位](/uploads/image/f/7257129-33-9.jpg?t=%E8%AE%BE%E5%8F%98%E9%87%8Fx%E4%B8%BAfloat%E5%9E%8B%E4%B8%94%E5%B7%B2%E8%A2%AB%E8%B5%8B%E5%80%BC%2C%E4%B8%94%E4%B8%8B%E5%88%97%E8%AF%AD%E5%8F%A5%E4%B8%AD%E8%83%BD%E5%B0%86x%E4%B8%AD%E7%9A%84%E6%95%B0%E5%80%BC%E4%BF%9D%E7%95%99%E5%88%B0%E5%B0%8F%E6%95%B0%E7%82%B9%E5%90%8E%E4%B8%A4%E4%BD%8D)
答案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",
因为B是正确的.n是浮点数,乘100+0.5后,若原先小数第三位>=5,则+0.5后就向前进位了;否则不进位,赋给整型m后,小数部分丢弃,达到了四舍五入的目的;再除以100是恢复原数的大小.比如:n=
C(f*100+0.5)得到的是放大100倍的一个小数,且如果千分位上大于等于5将自动在个位数加1这样只要取得这个小数的整数部分就可以实现将小数点后第3位四舍五入,保留小数点后两位的所以:(int)(
不要误导人家好吧正确的解应该是:从右向左没错,但是C_Study_Room的计算是错误的!x+2计算完之后x的值仍为10此时,应该是x+=12(即:x=x+12),此时x的值为22,原等式此时可以简化
等于1了,因为x,y是int型,所以x/y=0,然后加1,然后转换为double型.不过结果后面肯定有很多0.因为是double型的.1.0000000
(a*100+0.5)=468.35/100.0=4.6835,再让它变为整型的数去掉后面的小数点.等于4.
答案A改变了数值,显然不对;答案B第三位舍入了可得到的浮点数2位以后没舍掉;答案C先放大百倍接着对三位进行了舍入取整数保证了小数部分舍弃再除百得到两位小数;答案D先除了改变了小数点前的整数值显然错误,
floatx=3.2;printf("%f,%f",x,++x);
**a=10,x=18.18**用scanf函数从键盘获取数据时,键盘输入的内容只替换引号内%d%f等等其他的都不动,当然\n是不用输入的,它只是起换行的作用.要注意空格数哦,空格也是不能出错的,
答案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.第三位四舍五入,就得用类型转换.
答案A、其值为0,!((x
是否是式子抄错了.D如果是:!(x
1/a过后(1/a)就是0了所以你b=0.0
B.错误n
运行了,说float可能损失精度,运行有错误.然后我换成double,都是4.2,4.2