📜  门| GATE-CS-2015(套装1)|问题 21

📅  最后修改于: 2021-09-25 07:25:47             🧑  作者: Mango

以下 C 程序的输出是 __________。

void f1 (int a, int b)
{
  int c;
  c=a; a=b; b=c;
}
void f2 (int *a, int *b)
{
  int c;
  c=*a; *a=*b;*b=c;
}
int main()
{
  int a=4, b=5, c=6;
  f1(a, b);
  f2(&b, &c);
  printf (“%d”, c-a-b);
  return 0;
}

(一) -5
(乙) -4
(三) 5
(四) 3答案:(一)
说明:对 f1(a, b) 的函数调用不会产生任何影响,因为值是按值传递的。

函数调用 f2(&b, &c) 交换 b 和 c 的值。所以 b 变为 6,c 变为 5。cab 的值变为 5-4-6,即 -5。
这个问题的测验