Рубрики

ВОРОТА | GATE-CS-2014- (Set-3) | Вопрос 28

Какие из следующих утверждений являются правильными?

1) Static allocation of all data areas by a compiler
   makes it impossible to implement recursion.
2) Automatic garbage collection is essential 
   to implement recursion.
3) Dynamic allocation of activation records is 
   essential to implement recursion.
4) Both heap and stack are essential to implement
   recursion.

(A) 1 и 2 только
(B) только 2 и 3
(C) только 3 и 4
(D) 1 и 3 только

Ответ: (D)
Объяснение: 1) Статическое распределение всех областей данных компилятором делает невозможным реализацию рекурсии.
Правда, для стека вызовов функций требуется динамическое выделение памяти, поскольку число рекурсивных функций неизвестно.

2) Автоматическая сборка мусора необходима для реализации рекурсии.
Ложь, автоматическая сборка мусора не обязательна.

3) Динамическое размещение записей активации важно для реализации рекурсии.
Правда, так как количество вызовов или количество записей активации не известно заранее для рекурсивных функций.

4) Куча и стек необходимы для реализации рекурсии.
Куча не нужна для вызовов функций. Обычно используется для динамического выделения памяти пользователем (или программистом).

См. Расположение памяти программ на C для деталей.
Тест на этот вопрос

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

ВОРОТА | GATE-CS-2014- (Set-3) | Вопрос 28

0.00 (0%) 0 votes