#CS40904. 阅读程序9-树和图4

阅读程序9-树和图4

阅读程序

注意:切勿用电脑直接运行代码得出答案,请用大脑+笔+纸运行代码答题,否则是在浪费你的时间。

第9节:树和图

第4题【NOIP】2018

#include <stdio.h>
int n, d[100];
bool v[100];
int main() {
	scanf("%d", &n);
	for (int i = 0; i < n; ++i) {
07		scanf("%d", d + i);
		v[i] = false;
	}
	int cnt = 0;
	for (int i = 0; i < n; ++i) {
12		if (!v[i]) {
			for (int j = i; !v[j]; j = d[j]) {
				v[j] = true;
			}
			++cnt;
		}
	}
	printf("%d\n", cnt);
	return 0;
}

●判断题

(1)将第7行的d+i换成&d[i],程序运行不受影响。

{{ select(4-1) }}

  • 正确
  • 错误

(2)第12行的!v[i]与v[i]==false语句意思一致。

{{ select(4-2) }}

  • 正确
  • 错误

(3)程序的输出结果cnt至少等于1。

{{ select(4-3) }}

  • 正确
  • 错误

(4)若输人的数组d中有重复的数字,则程序会进入死循环。

{{ select(4-4) }}

  • 正确
  • 错误

●选择题

(5)若输入数字为5 1 2 3 4 5,则输出为()

{{ select(4-5) }}

  • 0
  • 1
  • 2
  • 5

(6)若输入数字为10 7 1 4 3 2 5 9 8 0 6,则输出为( )。

{{ select(4-6) }}

  • 3
  • 6
  • 7
  • 8