Bird
Raised Fist0
C++programming~20 mins

Function calling in C++ - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Function Calling Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of nested function calls
What is the output of this C++ code when the main function runs?
C++
#include <iostream>

int add(int a, int b) {
    return a + b;
}

int multiply(int x, int y) {
    return x * y;
}

int main() {
    int result = multiply(add(2, 3), 4);
    std::cout << result << std::endl;
    return 0;
}
A10
B24
C20
D14
Attempts:
2 left
💡 Hint
Remember to evaluate the inner function call first before the outer one.
❓ Predict Output
intermediate
2:00remaining
Function call with default arguments
What will be printed when this program runs?
C++
#include <iostream>
#include <string>

void greet(std::string name = "Guest") {
    std::cout << "Hello, " << name << "!" << std::endl;
}

int main() {
    greet();
    greet("Alice");
    return 0;
}
AHello, Alice!\nHello, Guest!
BHello, !\nHello, Alice!
CHello, Guest!\nHello, Guest!
DHello, Guest!\nHello, Alice!
Attempts:
2 left
💡 Hint
Check what happens when you call greet() without arguments.
🔧 Debug
advanced
2:00remaining
Identify the error in function call
What error will this code produce when compiled?
C++
#include <iostream>

void printSum(int a, int b) {
    std::cout << a + b << std::endl;
}

int main() {
    printSum(5);
    return 0;
}
AOutput: 5
BCompilation error: too few arguments to function 'printSum'
CRuntime error: segmentation fault
DOutput: 0
Attempts:
2 left
💡 Hint
Check how many arguments the function expects versus how many are given.
❓ Predict Output
advanced
2:00remaining
Function call with reference parameter
What is the output of this program?
C++
#include <iostream>

void increment(int &num) {
    num += 1;
}

int main() {
    int x = 10;
    increment(x);
    std::cout << x << std::endl;
    return 0;
}
A11
B10
CCompilation error
DRuntime error
Attempts:
2 left
💡 Hint
The function changes the original variable by reference.
🧠 Conceptual
expert
3:00remaining
Understanding function call stack behavior
Consider this code snippet. What is the value of result after main finishes?
C++
#include <iostream>

int factorial(int n) {
    if (n <= 1) return 1;
    return n * factorial(n - 1);
}

int main() {
    int result = factorial(4);
    return 0;
}
A24
B10
C120
D1
Attempts:
2 left
💡 Hint
Recall how factorial is calculated recursively.

Practice

(1/5)
1. What does calling a function in C++ do?
easy
A. Runs the code inside the function
B. Deletes the function
C. Creates a new function
D. Changes the function name

Solution

  1. Step 1: Understand what a function call means

    Calling a function means telling the program to run the code inside that function.
  2. Step 2: Identify the effect of calling a function

    When called, the function's instructions execute, performing its task.
  3. Final Answer:

    Runs the code inside the function -> Option A
  4. Quick Check:

    Function call = run function code [OK]
Hint: Function call runs its code block immediately [OK]
Common Mistakes:
  • Thinking calling creates or deletes functions
  • Confusing function call with function definition
  • Assuming function call changes function name
2. Which of the following is the correct way to call a function named printMessage in C++?
easy
A. printMessage();
B. printMessage;
C. call printMessage();
D. function printMessage();

Solution

  1. Step 1: Recall the syntax for calling a function

    In C++, to call a function, write its name followed by parentheses and a semicolon.
  2. Step 2: Check each option

    printMessage(); uses the correct syntax: printMessage();. Others are incorrect or invalid syntax.
  3. Final Answer:

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

    Function call syntax = name + () + ; [OK]
Hint: Function calls always end with parentheses and semicolon [OK]
Common Mistakes:
  • Omitting parentheses when calling functions
  • Adding keywords like 'call' or 'function' incorrectly
  • Missing semicolon at the end
3. What is the output of this C++ code?
void greet() {
    std::cout << "Hello!" << std::endl;
}

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

Solution

  1. Step 1: Understand what the function greet() does

    The function prints "Hello!" followed by a new line.
  2. Step 2: See what main() does

    Main calls greet(), so "Hello!" is printed to the screen.
  3. Final Answer:

    Hello! -> Option D
  4. Quick Check:

    Function call prints "Hello!" [OK]
Hint: Function call runs its print statements [OK]
Common Mistakes:
  • Expecting function name printed instead of output
  • Thinking no output because no return value
  • Assuming compilation error without syntax issues
4. Identify the error in this code snippet:
void sayHi() {
    std::cout << "Hi!" << std::endl;
}

int main() {
    sayHi;
    return 0;
}
medium
A. Function sayHi is not defined
B. Missing parentheses when calling sayHi
C. Missing semicolon after sayHi
D. Incorrect return type in main

Solution

  1. Step 1: Check how sayHi is called

    In main(), sayHi is written without parentheses, so it is not called.
  2. Step 2: Understand correct function call syntax

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

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

    Function call needs parentheses [OK]
Hint: Always use () to call a function [OK]
Common Mistakes:
  • Forgetting parentheses on function calls
  • Thinking function name alone calls it
  • Ignoring compiler errors about function usage
5. Given this function:
int add(int a, int b) {
    return a + b;
}

What is the correct way to call add to get the sum of 5 and 3 and store it in result?
hard
A. int result = add(5 + 3);
B. int result = add(5);
C. int result = add(5, 3);
D. int result = add();

Solution

  1. Step 1: Check the function parameters

    The function add requires two integers as input: a and b.
  2. Step 2: Match the call with two arguments

    int result = add(5, 3); passes both 5 and 3 correctly. Others pass wrong number or format of arguments.
  3. Final Answer:

    int result = add(5, 3); -> Option C
  4. Quick Check:

    Function call needs correct number of arguments [OK]
Hint: Match function parameters count exactly when calling [OK]
Common Mistakes:
  • Passing fewer or more arguments than function needs
  • Passing expressions without commas for multiple args
  • Calling function without any arguments when required
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