Courseiva

PCEP Control Flow, Loops, Lists and Logic Practice Question

A developer writes a recursive function to compute factorial, but it causes a RecursionError. Which of the following is the most likely cause?

⚠ Common exam trap

Python Institute often tests the concept that a missing base case is the direct cause of infinite recursion and RecursionError, not other common mistakes like incorrect return types or parameter issues.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

✓

The function lacks a base case to stop recursion

A recursive function must have a base case that stops further recursive calls. Without it, the function calls itself indefinitely until the recursion limit is exceeded, raising a RecursionError. In Python, the default recursion limit is 1000, and exceeding it triggers this error.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • ✗

    The function returns a string instead of an integer

    Why it's wrong here

    Returning a string causes a TypeError when arithmetic is attempted, not a RecursionError, which arises from exceeding the interpreter's recursion depth limit. It is tempting because type errors are frequent in recursive code, and this would be the cause if the function returned before recursing.

  • ✓

    The function lacks a base case to stop recursion

    Why this is correct

    Without a base case, the factorial function calls itself indefinitely, exhausting the call stack until Python raises RecursionError. This satisfies the stem's scenario, since the missing terminating condition is the direct cause of unbounded recursive calls.

  • ✗

    The function modifies a global variable incorrectly

    Why it's wrong here

    Global variable modification does not consume stack frames, so it cannot trigger a RecursionError. It is tempting because incorrect global state is a common bug class, and this would be the culprit if the function produced wrong results while still terminating normally.

  • ✗

    The function uses too many parameters

    Why it's wrong here

    Parameter count affects neither stack depth growth nor the interpreter's recursion limit, so it cannot produce a RecursionError. It is tempting because excessive parameters often indicate poor design, and this would matter if the issue were readability or argument-passing errors rather than runaway recursion.

About these practice questions

Courseiva writes every PCEP question from scratch — 482 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This PCEP practice question is part of Courseiva's free Python Institute certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the PCEP exam.