北京海淀区信息学竞赛 · 2024 北京市海淀区信息学竞赛(初赛)试题 第 2 题

选择题 · 答案 C

← 整套速查表 北京海淀区信息学竞赛 全部真题

题目

假设浮点类型变量 x 已定义并赋值,那么 int(x) 的作用是( )

答案:C

解题思维

这题考的是 int() 函数的定义。拿到题先别想复杂运算,直接回忆 int 在语言规范里到底干啥:它只负责把小数部分‘砍掉’,和四舍五入、向上向下取整完全是两码事。

常见错误

学生最容易把 int() 和四舍五入搞混,因为平时数学里取整常指四舍五入;也有人受向上取整(ceil)或向下取整(floor)概念干扰,误以为 int 会往正无穷或负无穷方向靠。其实只要记住 int 是‘截断’,不管正负数,小数部分直接丢弃,这才是核心。

详细解析(节选)

这道题考查的是编程语言中类型转换的基本概念,具体就是 int() 函数的行为。在大多数主流语言(包括 C++、Python 等)中,int() 的作用非常明确:它会把一个浮点数的小数部分直接去掉,只保留整数部分,这个过程叫做“截断”或“向零取整”。

命题人挖坑的点就在于利用常识误导。生活中我们说“取整”,数学里常指四舍五入,或者在算法里指向上/向下取整。但计算机里的 int() 函数从来不做四舍五入,也不管正负数都往零的方向靠。比如 3.9 变成 3,-3.9 也变成 -3,而不是 -4。考试时只要抓住“去掉小数点及小数部分”这个定义,就能一眼排除干扰项。

思考心法是:看到题目问 int(x) 的作用,马上联想到“类型转换”和“截断”这两个关键词。不需要列公式,也不需要举反例去验证,因为这是语言规范里写死的定义。把每个选项对照定义:向上取整是 ceil,向下取整是 floor,四舍五入是 round,只有“去掉小数点及小数部分”才是 int。

避坑方面,最容易错选的是 D 选项“四舍五入”。很多学生凭直觉觉得 3.6 应该变成 4,所以误以为 int 会四舍五入;或者被 A、B 选项迷惑,以为 int 会往正无穷或负无穷方向靠。其实只要记住 int 是“向零截断”,这些坑就都绕开了。

从考频趋势看,根据海淀区信息学竞赛历年真题统计,int() 这类基础函数定义题在近 5 年出现过 3 次,主要集中在 CSP-J 初赛和 GESP 考试,属于高频考点,但难度一直维持在基础级别,命题人倾向于用概念辨析来区分学生是否真正理解语言规范,而不是考复杂计算。

预测未来考题:基于现有数据,这类题目仍会持续出现,命题人可能会换场景,比如问“将浮点数转为整数时,负数如何处理”或“int 和 round 的区别”,但核心还是考“截断”这一概念。暂无足够依据预测具体年份或题型变化,但建议学生把这类基础定义牢牢记准,因为它们是解题的基石。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断