2021 年第 21 题阅读程序枚举与模拟普及-
程序(一):输入2 -65536 2147483647的输出
题目
阅读下面的程序,回答问题。 #include <iostream> using namespace std; int n; int a[1000]; int f(int x) { int ret = 0; for (; x; x &= x - 1) ret++; return ret; } int g(int x) { return x & -x; } int main() { cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; for (int i = 0; i < n; i++) cout << f(a[i]) + g(a[i]) << ' '; cout << endl; return 0; } 当输入为“2 -65536 2147483647”时,输出为( )。
考点拆解
程序阅读与结果判断
易错提醒
阅读程序题要按变量变化顺序手推,不要跳步
选择题要检查单位、边界和题目中的否定词