GESP 三级 · GESP 202309 C++ 三级 第 13 题

选择题 · 答案 B · 考点:位运算

← 整套速查表 GESP 三级 全部真题

题目

在下列代码的横线处填写( ),可以使得输出是“20 10”。

#include <iostream>
using namespace std;

int main() {
    int a = 10, b = 20;
    a = (a << 8) | b;
    ______  // 在此处填入代码
    cout << a << " " << b << endl;
    return 0;
}
答案:B

考点

位运算 讲解 →位运算 真题汇总 →

解题思维

看到位运算打包拆包 → 先取高位赋给 b,再清高位留低位给 a

常见错误

顺序颠倒会先污染 a 再取位,导致高低位数值互换或丢失

详细解析(节选)

考点:位运算(左移、右移、按位或、按位与)|二进制打包拆包

解析

执行 a = (a << 8) | b 后,a 的高 8 位是 10,低 8 位是 20。要输出“20 10”,需将高位 10 取出赋给 b,再将低位 20 保留给 a。

同考点真题

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