考虑下面的C程序:
#include
int main() {
int a[] = {2, 4, 6, 8, 10};
int i, sum = 0, *b = a + 4;
for (i = 0; i < 5; i++ )
sum = sum + (*b - i) - *(b - i);
printf("%d\n", sum);
return 0;
}
上面的C程序的输出是__________。
注意:这是数值类型的问题。
(A) 10
(B) 8
(C) 6
(D) 3答案: (A)
解释:
#include
int main() {
int a[] = {2, 4, 6, 8, 10};
int i, sum = 0, *b = a + 4;
for (i = 0; i < 5; i++ )
sum = sum + (*b - i) - *(b - i);
printf("%d\n", sum);
return 0;
}
给定,“ for”循环将从i = 0到4。
i = 0
sum = 0+ 10 – 10 = 0
i = 1
sum = 0 + 9 – 8 = 1
i = 2
sum = 1 + 8 – 6 = 3
i = 3
sum = 3 + 7 – 4 = 6
i = 4
sum = 6 + 6 – 2 = 10
现在,循环终止并显示总和(即10)的值。
因此,以上C程序的输出为10 。
这个问题的测验