问题 4451 --位与运算(阅读程序)

4451: 位与运算(阅读程序)★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 313  解决: 187
[提交][状态][命题人:]

题目描述

#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”时,输出为    )。

A65532 33”   B65552 32”   C65535 34”   D65554 33

提示

来源

 

[提交][状态]