📜  门| GATE CS 2019 |第 64 题

📅  最后修改于: 2021-09-26 04:28:57             🧑  作者: Mango

考虑以下 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
这个问题的测验