Рубрики

ВОРОТА | GATE-IT-2004 | Вопрос 60

Каков вывод следующей программы?

#include <stdio.h>

int funcf (int x);

int funcg (int y);

  
main()
{

    int x = 5, y = 10, count;

    for (count = 1; count <= 2; ++count)

    {

        y += funcf(x) + funcg(x);

        printf ("%d ", y);

    }

}

  

funcf(int x)

{

    int y;

    y = funcg(x);

    return (y);

}

  

funcg(int x)

{

    static int y = 10;

    y += 1;

    return (y+x);

}

(А) 43 80
(Б) 42 74
(С) 33 37
(D) 32 32

Ответ: (А)
Объяснение: Счетчик = 1, и он идет до двух, поэтому следующий оператор будет выполнен дважды.

 y + = funcf ( x ) + funcg ( x ); 
 

1-й вызов — funcg (x); // y = 11 y + x = 16.

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

ВОРОТА | GATE-IT-2004 | Вопрос 60

0.00 (0%) 0 votes