#P2123. 程序阅读题.7

程序阅读题.7

  1. 阅读下面程序,根据输入数据,分析运行结果
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int a,ans=0;
	cin>>a;
	
	while(a){
		a = a&(a-1);
		ans ++;
	}
	
	cout<<ans;

	return 0;
}

运行程序,输入 11 ,程序会输出:{{ input(1) }}

运行程序,输入 43 ,程序会输出:{{ input(2) }}

运行程序,输入 127 ,程序会输出:{{ input(3) }}

运行程序,输入 1234 ,程序会输出:{{ input(4) }}

  1. 阅读程序,完成判断题

img

(1) 第 16 行输出 ans 时,ans 的值一定大于 i。{{ select(5) }}

  • 正确
  • 错误

(2) 程序输出的 ans 小于等于 n 。{{ select(6) }}

  • 正确
  • 错误

(3)若将 12 行的 “<” 改成 “!=”,则程序的输出结果不会改变。{{ select(7) }}

  • 正确
  • 错误

(4)当程序执行到第 16 行的时候,若 ans-i>2 ,则 a[i+1] <= a[i]。{{ select(8) }}

  • 正确
  • 错误

(5)若输入的 a 数组是一个严格单调递增的数列,则此程序的时间复杂度是( ){{ select(9) }}

  • O(lnn\ln n)
  • O(n2n^2)
  • O(nlnnn \ln n)
  • O(n)

(6) 最坏情况下,此程序的时间复杂度是( )。{{ select(10) }}

  • O(n2n^2)
  • O(lnn\ln n)
  • O(n)
  • O(nlnnn \ln n)