Рубрики

ВОРОТА | GATE-CS-2016 (набор 2) | Вопрос 47

Рассмотрим следующую программу:

int f(int *p, int n)

{

    if (n <= 1) return 0;

    else return max(f(p+1,n-1),p[0]-p[1]);

}

int main()

{

    int a[] = {3,5,2,6,4};

    printf("%d", f(a,5));

}

Примечание: max (x, y) возвращает максимум x и y. Значение, напечатанное этой программой:

(А) 2
(Б) 3
(С) 4
(D) 5

Ответ: (Б)
Объяснение:
Посмотрите на стек рекурсии данного кода на изображении ниже. Предполагая, что базовый адрес массива начинается с 1000, а целое число занимает 4 байта.

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

ВОРОТА | GATE-CS-2016 (набор 2) | Вопрос 47

0.00 (0%) 0 votes