组合题

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 }

第1题 判断题

输入的 n 等于 1001 时,程序不会发生下标越界。( )

A 正确
B 错误
第2题 判断题

输入的 a[i] 必须全为正整数,否则程序将陷入死循环。( )

A 正确
B 错误
第3题 判断题

当输入为“5 2 11 9 16 10”时,输出为“3 4 3 17 5”。( )

A 正确
B 错误
第4题 判断题

当输入为“1 511998”时,输出为“18”。( )

A 正确
B 错误
第5题 判断题

将源代码中 g 函数的定义(14-17 行)移到 main 函数的后面,程序可以正常编译运行。( )

A 正确
B 错误
第6题 单选题

当输入为“2 -65536 2147483647”时,输出为( )。

A

“65532 33”

B

“65552 32”

C

“65535 34”

D

“65554 33”

赣ICP备20007335号-2