#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;
}
判断题(正确的输出“T”,错误的输出"F",每题单独一行,一共五行)
(1)输入的n等于1001时,程序不会发生下标越界。 ( )
(2)输入的a[i]必须全为正整数,否则程序将陷入死循环。 ( )
(3)当输入为“5 2 11 9 16 10”时,输出为“3 4 3 17 5”。 ( )
(4)当输入为“1 511998”时,输出为“18”。 ( )
(5)将源代码中g函数的定义(14~17行)移到main函数的后面,程序可以正常编译运行。 ( )
单选题(输出正确的选项,单独一行)
(6)当输入为“2 -65536 2147483647”时,输出为( )。
A、“65532 33” B、“65552 32” C、“65535 34” D、“65554 33”