1) Данный код демонстрирует работу рекурсивной функции `rec`. При вызове `rec(3)` функция сначала выводит переданное число, затем вызывает саму себя с аргументом, уменьшенным на единицу (если число больше нуля), и после завершения рекурсивного вывода снова выводит исходное число. Это приводит к симметричному выводу чисел.
2) Подсказки:
- Обрати внимание на порядок операций `printf` и рекурсивного вызова. Это классический пример рекурсии с действием до и после рекурсивного шага.
- Попробуй мысленно "развернуть" выполнение функции для `rec(3)`, записывая значения `n` на каждом уровне рекурсии и отслеживая, когда срабатывает каждый `printf`.