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

📅  最后修改于: 2021-06-28 20:21:02             🧑  作者: 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;
}

(A) -5
(B) -4
(C) 5
(D) 3答案: (A)
说明:对值f1(a,b)的函数调用不会产生任何效果,因为值是按值传递的。

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