Bird
Raised Fist0
Cprogramming~10 mins

Return values in C - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Return values
Function called
↓
Execute function body
↓
Return statement reached
↓
Return value sent back
↓
Function call replaced by return value
When a function is called, it runs its code and sends back a value using return, which replaces the function call.
Execution Sample
C
int add(int a, int b) {
    return a + b;
}

int main() {
    int result = add(2, 3);
    return 0;
}
This code defines a function that adds two numbers and returns the sum, which is stored in 'result'.
Execution Table
StepActionVariablesReturn ValueNotes
1Call add(2, 3)a=2, b=3N/AFunction starts with parameters a=2, b=3
2Calculate a + ba=2, b=3N/ASum is 5
3Return 5a=2, b=35Return value 5 sent back to caller
4Assign return to resultresult=5N/AVariable 'result' now holds 5
5End mainresult=5N/AProgram ends
💡 Function returns value 5, which is assigned to 'result', then program ends.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
aN/A222N/A
bN/A333N/A
resultundefinedundefinedundefinedundefined5
Key Moments - 2 Insights
Why does the function stop running after the return statement?
Because return immediately sends the value back and exits the function, no code after return runs (see Step 3 in execution_table).
What happens to the return value after the function finishes?
The return value replaces the function call in the calling code and can be stored in a variable like 'result' (see Step 4).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the return value at Step 3?
A5
B2
C3
DUndefined
💡 Hint
Check the 'Return Value' column at Step 3 in the execution_table.
At which step is the variable 'result' assigned a value?
AStep 2
BStep 4
CStep 3
DStep 5
💡 Hint
Look at the 'Variables' and 'Notes' columns in the execution_table for when 'result' changes.
If the return statement was missing, what would happen to the return value?
AIt would be 0 by default
BThe function would return 5 anyway
CThe function would return garbage or undefined
DThe program would crash
💡 Hint
In C, missing return in non-void functions leads to undefined return value.
Concept Snapshot
Return values in C:
- Use 'return' to send a value back from a function.
- The function stops running after return.
- The returned value replaces the function call.
- Store it in a variable to use later.
- Missing return in non-void functions causes undefined behavior.
Full Transcript
This example shows how a function in C returns a value. When 'add' is called with 2 and 3, it calculates the sum and returns 5. The return statement ends the function immediately. The returned 5 replaces the function call in 'main' and is stored in 'result'. Variables 'a' and 'b' hold the input values during the function execution. Beginners often wonder why code after return doesn't run; it doesn't because return exits the function. Also, the return value is what the caller receives and can use. If a return is missing in a function that should return a value, the result is unpredictable.

Practice

(1/5)
1. What does the return statement do in a C function?
easy
A. It sends a value back to the place where the function was called.
B. It prints a value on the screen.
C. It declares a new variable inside the function.
D. It pauses the program execution.

Solution

  1. Step 1: Understand the purpose of return

    The return statement sends a value from the function back to the caller.
  2. Step 2: Differentiate from other actions

    Printing, declaring variables, or pausing are not what return does.
  3. Final Answer:

    It sends a value back to the place where the function was called. -> Option A
  4. Quick Check:

    Return sends value back [OK]
Hint: Return sends value back to caller, not print or pause [OK]
Common Mistakes:
  • Thinking return prints output
  • Confusing return with variable declaration
  • Assuming return pauses program
2. Which of the following is the correct syntax for a function that returns an integer in C?
easy
A. int myFunction() { return 5; }
B. void myFunction() { return 5; }
C. int myFunction() { print(5); }
D. myFunction() int { return 5; }

Solution

  1. Step 1: Check function return type and return statement

    The function declares int return type and returns an integer value 5.
  2. Step 2: Identify incorrect options

    void myFunction() { return 5; } returns a value but declares void (no return). int myFunction() { print(5); } uses print which is invalid in C. myFunction() int { return 5; } has wrong syntax.
  3. Final Answer:

    int myFunction() { return 5; } -> Option A
  4. Quick Check:

    Return type matches returned value [OK]
Hint: Return type must match returned value type [OK]
Common Mistakes:
  • Using void but returning a value
  • Using print instead of return
  • Wrong function syntax
3. What is the output of this C program?
int add(int a, int b) {
    return a + b;
}

int main() {
    int result = add(3, 4);
    printf("%d", result);
    return 0;
}
medium
A. 34
B. 7
C. 0
D. Error

Solution

  1. Step 1: Understand the add function

    The function adds two integers and returns their sum.
  2. Step 2: Calculate the sum of 3 and 4

    3 + 4 equals 7, which is stored in result and printed.
  3. Final Answer:

    7 -> Option B
  4. Quick Check:

    3 + 4 = 7 [OK]
Hint: Add returns sum; printed result is sum [OK]
Common Mistakes:
  • Concatenating numbers as strings
  • Confusing return with print
  • Expecting zero or error output
4. Identify the error in this C function:
int multiply(int x, int y) {
    int product = x * y;
}
medium
A. Variables x and y are not declared.
B. Incorrect multiplication operator.
C. Function name should be void.
D. Missing return statement to return the product.

Solution

  1. Step 1: Check function return type and body

    The function declares it returns an int but does not return any value.
  2. Step 2: Identify missing return statement

    It calculates product but never returns it, causing undefined behavior.
  3. Final Answer:

    Missing return statement to return the product. -> Option D
  4. Quick Check:

    Return missing in non-void function [OK]
Hint: Non-void functions must return a value [OK]
Common Mistakes:
  • Forgetting to return value in non-void function
  • Thinking multiplication operator is wrong
  • Assuming variables are undeclared
5. You want to write a function that returns the maximum of three integers. Which of the following implementations correctly returns the maximum value?
hard
A. int maxOfThree(int a, int b, int c) { if (a > b && a > c) return a; else if (b > a && b > c) return b; else return c; }
B. int maxOfThree(int a, int b, int c) { return a > b > c ? a : b > c ? b : c; }
C. int maxOfThree(int a, int b, int c) { int max = a; if (b > max) max = b; if (c > max) max = c; return max; }
D. int maxOfThree(int a, int b, int c) { if (a > b) return a; else if (b > c) return b; else return c; }

Solution

  1. Step 1: Analyze int maxOfThree(int a, int b, int c) { if (a > b && a > c) return a; else if (b > a && b > c) return b; else return c; } logic

    This version correctly checks if b is greater than both a and c in the else-if condition, fixing the missing cases in the original version.
  2. Step 2: Analyze int maxOfThree(int a, int b, int c) { int max = a; if (b > max) max = b; if (c > max) max = c; return max; } logic

    This compares all values step-by-step and returns the correct maximum.
  3. Step 3: Analyze options C and D

    int maxOfThree(int a, int b, int c) { return a > b > c ? a : b > c ? b : c; } uses invalid chained comparison. int maxOfThree(int a, int b, int c) { if (a > b) return a; else if (b > c) return b; else return c; } misses some cases like when a is not greater than b but b is not greater than c.
  4. Final Answer:

    int maxOfThree(int a, int b, int c) { int max = a; if (b > max) max = b; if (c > max) max = c; return max; } -> Option C
  5. Quick Check:

    Stepwise max update returns correct max [OK]
Hint: Compare stepwise and return max variable [OK]
Common Mistakes:
  • Using chained comparisons incorrectly
  • Missing some comparison cases
  • Returning before checking all values
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard