考虑以下 C 程序片段,其中 i、j 和 n 是整数变量。
for (i = n, j = 0; i >0; i /= 2, j += i);
让 val(j) 表示在 for 循环终止后存储在变量 j 中的值。以下哪一项是正确的?
(A) val(j) = (登录)
(B) vaI(j) = (平方(n))
(C) val(j) = (n)
(D) val(j) = (nlogn)
(一) A
(乙)乙
(C)丙
(四)丁答案: (C)
解释:变量 j 初始为 0,j 的值是 i 的值之和。 i 初始化为 n 并在每次迭代中减半。
j = n/2 + n/4 + n/8 + .. + 1 = Θ(n)
请注意 for 循环后面的分号,因此正文中没有任何内容。
与 https://www.geeksforgeeks.org/c-language-set-6/ 的问题 1 相同
这个问题的测验