Bird
Raised Fist0
Cprogramming~10 mins

Function calling - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Function calling
Start main()
↓
Call function foo()
↓
Execute foo() body
↓
Return from foo()
↓
Continue main()
↓
End main()
The program starts in main(), calls another function, runs that function's code, then returns to main() to finish.
Execution Sample
C
int foo() {
    return 5;
}

int main() {
    int x = foo();
    return 0;
}
Calls function foo() from main(), foo() returns 5, which is stored in x.
Execution Table
StepFunctionActionVariable ChangesReturn Value
1mainStart main()x: uninitializedN/A
2mainCall foo()x: uninitializedN/A
3fooExecute return 5;N/A5
4mainAssign foo() return to xx: 5N/A
5mainReturn 0 and endx: 50
💡 main() returns 0, program ends
Variable Tracker
VariableStartAfter Step 4Final
xuninitialized55
Key Moments - 3 Insights
Why does the program jump to foo() when main() calls it?
When main() calls foo() (see Step 2 in execution_table), the program pauses main() and runs foo() code next.
How does the value 5 get back to main()?
foo() returns 5 (Step 3), which main() receives and stores in x (Step 4).
What happens after foo() finishes?
After foo() returns, the program continues running main() from where it left off (Step 4).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of x after Step 4?
Auninitialized
B0
C5
DN/A
💡 Hint
Check the 'Variable Changes' column at Step 4 in execution_table.
At which step does foo() return a value to main()?
AStep 2
BStep 3
CStep 4
DStep 5
💡 Hint
Look for the step where 'Return Value' is 5 in execution_table.
If foo() returned 10 instead of 5, what would x be after Step 4?
A10
B5
C0
Duninitialized
💡 Hint
Variable x gets the return value from foo() as shown in variable_tracker and execution_table.
Concept Snapshot
Function calling in C:
- main() starts program
- main() calls another function by name
- Program jumps to called function
- Called function runs and returns value
- Program resumes main() with returned value
- Use return to send data back
Full Transcript
This example shows how a function call works in C. The program starts in main(). When main() calls foo(), the program pauses main() and runs foo() code. foo() returns a value (5), which main() receives and stores in variable x. After foo() finishes, the program continues running main() from where it left off. This process lets us organize code into reusable parts and pass data between them.

Practice

(1/5)
1. What does it mean to call a function in C?
easy
A. Execute the code inside the function by using its name and parentheses
B. Define the function with its code block
C. Declare the function prototype
D. Write comments about the function

Solution

  1. Step 1: Understand function calling

    Calling a function means running the code inside it by using its name followed by parentheses.
  2. Step 2: Differentiate from defining or declaring

    Defining or declaring a function is writing it, not running it. Calling is executing it.
  3. Final Answer:

    Execute the code inside the function by using its name and parentheses -> Option A
  4. Quick Check:

    Function call = run code by name() [OK]
Hint: Calling means running code by writing functionName() [OK]
Common Mistakes:
  • Confusing calling with defining the function
  • Thinking calling means declaring the function prototype
  • Believing calling is writing comments
2. Which of the following is the correct syntax to call a function named printMessage in C?
easy
A. printMessage();
B. call printMessage;
C. printMessage;
D. function printMessage();

Solution

  1. Step 1: Recall function call syntax

    In C, calling a function requires its name followed by parentheses and a semicolon.
  2. Step 2: Check each option

    printMessage(); uses correct syntax: function name + parentheses + semicolon. Others are invalid syntax.
  3. Final Answer:

    printMessage(); -> Option A
  4. Quick Check:

    Function call syntax = name() [OK]
Hint: Function call always ends with (); [OK]
Common Mistakes:
  • Omitting parentheses when calling
  • Using keywords like 'call' which don't exist in C
  • Missing semicolon at the end
3. What will be the output of this C program?
void greet() {
    printf("Hello!\n");
}

int main() {
    greet();
    return 0;
}
medium
A. Compilation error
B. Hello!
C. No output
D. greet()

Solution

  1. Step 1: Understand function greet()

    The function greet() prints "Hello!" followed by a newline.
  2. Step 2: Check main() function call

    Main calls greet(), so the program prints "Hello!" on the screen.
  3. Final Answer:

    Hello! -> Option B
  4. Quick Check:

    Calling greet() prints Hello! [OK]
Hint: Calling greet() prints its message exactly [OK]
Common Mistakes:
  • Thinking function name prints output
  • Assuming no output without explicit main print
  • Confusing function call with declaration
4. Identify the error in this code snippet:
void sayHi() {
    printf("Hi!\n");
}

int main() {
    sayHi;
    return 0;
}
medium
A. printf statement is incorrect
B. Missing semicolon after sayHi
C. Function sayHi is not declared
D. Missing parentheses when calling sayHi

Solution

  1. Step 1: Check function call syntax

    In main(), sayHi is written without parentheses, so it is not a function call.
  2. Step 2: Correct function call

    To call sayHi, it must be written as sayHi(); with parentheses.
  3. Final Answer:

    Missing parentheses when calling sayHi -> Option D
  4. Quick Check:

    Function call needs () [OK]
Hint: Always use () to call a function [OK]
Common Mistakes:
  • Omitting parentheses when calling functions
  • Confusing function name with variable
  • Assuming semicolon alone calls function
5. Given the function below, how would you call multiply to multiply 4 and 5 and print the result?
int multiply(int a, int b) {
    return a * b;
}

int main() {
    // Your code here
    return 0;
}
hard
A. int result = multiply(4, 5);
B. multiply(4, 5);
C. printf("%d", multiply(4, 5));
D. print(multiply(4, 5));

Solution

  1. Step 1: Understand multiply function

    It returns the product of two integers.
  2. Step 2: Call multiply and print result

    To show output, call multiply(4, 5) inside printf with %d format.
  3. Final Answer:

    printf("%d", multiply(4, 5)); -> Option C
  4. Quick Check:

    Use printf to display function return [OK]
Hint: Use printf to show returned value from function [OK]
Common Mistakes:
  • Calling multiply without printing result
  • Using print() instead of printf() in C
  • Assigning result but not printing
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