正在载入在线练习界面,本页内容可直接阅读…

AK CSP › CSP-S 2019 第一轮真题 › 第5题

CSP-S 2019 第一轮 第5题:设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小

单项选择 · 程序基本概念与数据类型 · 答案 B

题目

设变量 $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\):

  1. x * 100 得到 123.6,把原来的第三位小数移到十分位。
  2. 加 0.5 得到 124.1。
  3. (int) 去掉小数部分,得到 124,完成四舍五入。
  4. 除以 100.0,得到 1.24。

其他选项中,A 缺少取整操作;C 放大、缩小的方向反了;D 按运算优先级相当于 x*100 + 0.005。

注意:严格来说,题目缺少“x 非负”的条件,B 对负数不一定正确。另外,这里是数值舍入;若只是要求输出时显示两位小数,可以用 printf("%.2f", x);。

真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1 京公网安备11010502062986号