正在载入在线练习界面,本页内容可直接阅读…
AK CSP › CSP-S 2019 第一轮真题 › 第5题
CSP-S 2019 第一轮 第5题:设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小
题目
设变量 $x$ 为 float 型且已赋值,则以下语句中能将 $x$ 中的数值保留到小数点后两位,并将第三位四舍五入的是()
选项
- A. x= (x*100+0. 5)/100.0;
- B. x=(int) (x*100+0. 5)/100.0;
- C. x=(x/100+0. 5)*100.0;
- D. x=x*100+0. 5/100. 0;
答案
B
题解
选 B(这类题通常默认 \(x\ge 0\))。
``c x = (int)(x * 100 + 0.5) / 100.0; ``
它的做法是“先放大,加 0.5 后取整,再缩小”。例如 \(x=1.236\):
x * 100得到123.6,把原来的第三位小数移到十分位。- 加
0.5得到124.1。 (int)去掉小数部分,得到124,完成四舍五入。- 除以
100.0,得到1.24。
其他选项中,A 缺少取整操作;C 放大、缩小的方向反了;D 按运算优先级相当于 x*100 + 0.005。
注意:严格来说,题目缺少“x 非负”的条件,B 对负数不一定正确。另外,这里是数值舍入;若只是要求输出时显示两位小数,可以用 printf("%.2f", x);。
真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1
京公网安备11010502062986号