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

AK CSP › NOIP 提高 2018 第一轮真题 › 第 10 题

NOIP 提高 2018 第一轮 第 10 题:为了统计一个非负整数的二进制形式中1的个数,代码如下:

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

题目

为了统计一个非负整数的二进制形式中 $1$ 的个数,代码如下:

int CountBit(int x)
{
	int ret = 0;
	while (x)
	{
		ret++;
		_;
	}
	return ret;
}

则空格内要填入的语句是( )。

选项

  • A. x >>= 1
  • B. x &= x - 1
  • C. x |= x >> 1
  • D. x <<= 1

答案

B

题解

考点定位

本题考「popcount」,对应大纲 2.1.2 位运算(难度【1】)。

解题过程

x &= x - 1 清最低位 1。

选 B。

易错提醒

① 与普及组同题;② Kernighan 算法。

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