设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/29 16:14:45
![设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两](/uploads/image/f/7257128-32-8.jpg?t=%E8%AE%BE%E5%8F%98%E9%87%8Fx%E4%B8%BAfloat%E5%9E%8B%E4%B8%94%E5%B7%B2%E7%BB%8F%E8%B5%8B%E5%80%BC%2C%E5%88%99%E4%BB%A5%E4%B8%8B%E8%AF%AD%E5%8F%A5%E4%B8%AD%E8%83%BD%E5%A4%9F%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%E9%9D%A2%E4%B8%A4)
该题应该选择B答案,因为求余运算符两边的操作数只能是整形变量,不能为float型.另外替你分析一下其他选项:A:++是自增运算符,即x的值先加1后再使用x的值,该值正确.B:略.C:符合运算符,x*=
答案是Bx*100+0.5是float型,强制转成int型后,会保留整数,而去掉小数*100实现了保留2位小数,+0.5是对第3位四舍五入给你看个实例
这个一般编译器会给你警告,但还是会实现强制转换,也就是b的值是8935,
C(f*100+0.5)得到的是放大100倍的一个小数,且如果千分位上大于等于5将自动在个位数加1这样只要取得这个小数的整数部分就可以实现将小数点后第3位四舍五入,保留小数点后两位的所以:(int)(
等于1了,因为x,y是int型,所以x/y=0,然后加1,然后转换为double型.不过结果后面肯定有很多0.因为是double型的.1.0000000
(a*100+0.5)=468.35/100.0=4.6835,再让它变为整型的数去掉后面的小数点.等于4.
floatx,y=3.14;这一句只是对y赋值了floatx=y=3.14;这一句直接就是语法错误,没有这种写法,定义变量的时候不可以这么写,因为y是未定义的写成floatx=3.14,y=3.14;
B.%f%f%f中间没逗号,所以输入不能有逗号
答案A改变了数值,显然不对;答案B第三位舍入了可得到的浮点数2位以后没舍掉;答案C先放大百倍接着对三位进行了舍入取整数保证了小数部分舍弃再除百得到两位小数;答案D先除了改变了小数点前的整数值显然错误,
floatx=3.2;printf("%f,%f",x,++x);
double,一个表达式中的最终结果的数据类型按照最高位的数据类型为准!再问:数据类型为(double)?再答:是的,就是double,就是双精度型。
**a=10,x=18.18**用scanf函数从键盘获取数据时,键盘输入的内容只替换引号内%d%f等等其他的都不动,当然\n是不用输入的,它只是起换行的作用.要注意空格数哦,空格也是不能出错的,
1、选择CA只给y赋值了,x没有赋值B同AD没有这种写法.2、B
答案C(int)(x*100+0.5)把float型数据(x*100+0.5)强转成int,这样就可以去掉小数点,+0.5就是为了四舍五入例如x=4.256,则(4.256*100+0.5)=426.
这是错误的如果对几个变量赋以同一个初值,不能写成:inta=b=c=3;而应写成:inta=3,b=3,c=3;初始化不是在编译阶段完成的,而是在程序运行时执行本函数时赋以初值的.相当于有一个赋值语句
就是C因为为了保证小数点后两位,所以必须先乘以100.排除D.第三位四舍五入,就得用类型转换.
1/a过后(1/a)就是0了所以你b=0.0
B.错误n
运行了,说float可能损失精度,运行有错误.然后我换成double,都是4.2,4.2