#445. CSP-J模拟套题2-17

CSP-J模拟套题2-17

  1. (阅读程序)
#include <iostream>

using namespace std;

int g(unsigned long long x){
    const unsigned long long m1 = 0x55555555;
    const unsigned long long m2 = 0x33333333;
    const unsigned long long m4 = 0x0f0f0f0f;
    const unsigned long long h01 = 0x01010101;
    x-=(x>>1)&m1;
    x=(x&m2)+((x>>2)&m2);
    x=(x+(x>>4))&m4;
    return (x*h01)>>24;
}
int main() 
{ 
    ios::sync_with_stdio(false);
    long long x;
    cin>>x;
    cout<<g(x)<<'\n';
}

假设数据满足 0 ≤ x ≤ 9 × 101810^{18},回答下列问题。

(判断题)

程序输入 0,程序输出 0。( )

{{ select(1) }}

程序输入 1,程序输出 1。( )

{{ select(2) }}

程序输出的最大值为 2402^{40}。( )

{{ select(3) }}

在本段程序中 g(-x) = g(~x + 1)(提示:考虑补码)。( )

{{ select(4) }}

(选择题)

假设某组输入用八进制表示为16,则程序输出( )

{{ select(5) }}

  • 0
  • 1
  • 2
  • 3

假设输入的数字用二进制表达为 10101101,则程序输出为( )

{{ select(6) }}

  • 5
  • 6
  • 7
  • 8

假设输入的数字是 x,则输出的数字( )

{{ select(7) }}

  • 小于 x
  • 等于 x
  • 大于 x
  • 以上皆有可能