模拟卷三位运算阅读与完善程序

阅读程序,回答问题(子集枚举)。

阅读与完善程序 阅读1 · CSP-S 提高级 初赛 模拟试卷(三)
#include <iostream>
using namespace std;
int main() {
    int n = 5, total = 0;
    for (int mask = 0; mask < (1 << n); mask++) {
        int bits = 0;
        for (int i = 0; i < n; i++)
            if (mask & (1 << i)) bits++;
        if (bits == 2) total++;
    }
    cout << total << endl;
    return 0;
}
  • (1) 程序输出结果是______。(4 分)
  • (2) 该程序实际统计的是______。(4 分)
  • (3) 若将判断改为 if (bits == n),程序输出结果是______。(5 分)
答案解析
(1)统计恰好 2 个二进制位为 1 的掩码数 = C(5,2)=10,输出 10。(2)从 5 个元素中选取 2 个的组合数(子集枚举思想)。(3)bits==n 即 5 位全 1,只有 mask=31 一个,输出 1。

同知识点练习

本题收录于「CSP-S 提高级 初赛 模拟试卷(三)」,共 25 道题,全部提供答案与解析。可进入在线练习系统按知识点随机组卷、自动批改并归集错题。

进入在线练习 查看完整试卷 本类全部题目