Рубрики

ВОРОТА | GATE-CS-2015 (набор 1) | Вопрос 21

Результатом следующей программы на 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
(D) 3

Ответ: (А)
Объяснение: вызов функции для f1 (a, b) не будет иметь никакого эффекта, поскольку значения передаются по значению.

Вызов функции f2 (& b, & c) меняет значения b и c. Таким образом, b становится 6, а c становится 5. Значение cab становится 5-4-6, что равно -5.
Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | GATE-CS-2015 (набор 1) | Вопрос 21

0.00 (0%) 0 votes