考虑以下 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 程序的输出是 __________ 。
注意:这是数字类型问题。
(一) 10
(乙) 8
(三) 6
(四) 3答案:(一)
解释:
#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 。
这个问题的测验