01 #include <iostream>
02 using namespace std;
03
04 int n;
05 int a[1000];
06
07 int f(int x)
08 {
09 int ret = 0;
10 for (; x; x &= x - 1) ret++;
11 return ret;
12 }
13
14 int g(int x)
15 {
16 return x & -x;
17 }
18
19 int main()
20 {
21 cin >> n;
22 for (int i = 0; i < n; i++) cin >> a[i];
23 for (int i = 0; i < n; i++)
24 cout << f(a[i]) + g(a[i]) << ' ';
25 cout << endl;
26 return 0;
27 }
输入的 n 等于 1001 时,程序不会发生下标越界。( )
输入的 a[i] 必须全为正整数,否则程序将陷入死循环。( )
当输入为“5 2 11 9 16 10”时,输出为“3 4 3 17 5”。( )
当输入为“1 511998”时,输出为“18”。( )
将源代码中 g 函数的定义(14-17 行)移到 main 函数的后面,程序可以正常编译运行。( )
当输入为“2 -65536 2147483647”时,输出为( )。
“65532 33”
“65552 32”
“65535 34”
“65554 33”