Bird
Raised Fist0
C++programming~20 mins

Why functions are needed in C++ - Challenge Your Understanding

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Function Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of code using functions for reuse
What is the output of this C++ code that uses a function to add two numbers?
C++
#include <iostream>
using namespace std;

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

int main() {
    cout << add(3, 4) << endl;
    cout << add(10, 20) << endl;
    return 0;
}
A7\n30
B34\n1020
C7 30
DCompilation error
Attempts:
2 left
💡 Hint
Look at what the add function returns and how cout prints it.
🧠 Conceptual
intermediate
1:30remaining
Why use functions in programming?
Which of the following is the main reason programmers use functions?
ATo make the program run faster by skipping code
BTo make the program use more memory
CTo repeat the same code many times without rewriting it
DTo confuse other programmers
Attempts:
2 left
💡 Hint
Think about how functions help avoid writing the same code again and again.
❓ Predict Output
advanced
2:00remaining
Output of code demonstrating function parameters and scope
What is the output of this C++ program that uses a function to modify a local variable?
C++
#include <iostream>
using namespace std;

void changeValue(int x) {
    x = 100;
}

int main() {
    int a = 10;
    changeValue(a);
    cout << a << endl;
    return 0;
}
A0
B100
CCompilation error
D10
Attempts:
2 left
💡 Hint
Remember that function parameters are passed by value by default in C++.
❓ Predict Output
advanced
1:30remaining
Output of code using function to avoid repetition
What will this C++ program print when run?
C++
#include <iostream>
using namespace std;

void printHello() {
    cout << "Hello!" << endl;
}

int main() {
    printHello();
    printHello();
    printHello();
    return 0;
}
AHello!\nHello!\nHello!
BHello! Hello! Hello!
CHello!\nHello!\nHello!\nHello!
DCompilation error
Attempts:
2 left
💡 Hint
Each call to printHello prints one line with Hello!
🧠 Conceptual
expert
2:00remaining
Why functions improve program structure
Which statement best explains how functions improve the structure of a program?
AFunctions increase the size of the program to make it more complex
BFunctions break a program into smaller parts, making it easier to understand and fix
CFunctions make programs run faster by skipping unnecessary code
DFunctions prevent the program from running if there is an error
Attempts:
2 left
💡 Hint
Think about how dividing work into smaller pieces helps with understanding.

Practice

(1/5)
1. Why do we use functions in C++ programs?
easy
A. To make the program run faster
B. To break big tasks into smaller, manageable parts
C. To avoid using variables
D. To write code without any rules

Solution

  1. Step 1: Understand the purpose of functions

    Functions help divide a big problem into smaller pieces that are easier to handle.
  2. Step 2: Compare options

    Only To break big tasks into smaller, manageable parts correctly states this main reason. Other options are incorrect or unrelated.
  3. Final Answer:

    To break big tasks into smaller, manageable parts -> Option B
  4. Quick Check:

    Functions simplify tasks = B [OK]
Hint: Functions split big jobs into small parts [OK]
Common Mistakes:
  • Thinking functions make code run faster
  • Believing functions remove the need for variables
  • Assuming functions ignore programming rules
2. Which of the following is the correct way to declare a function named add that returns an integer and takes two integers as parameters in C++?
easy
A. function add(int a, int b) int;
B. add int(int a, int b);
C. int add(a, b);
D. int add(int a, int b);

Solution

  1. Step 1: Recall C++ function declaration syntax

    The correct syntax is: return_type function_name(parameter_list); Here, return type is int, function name is add, parameters are two ints.
  2. Step 2: Check each option

    int add(int a, int b); matches the correct syntax. Others have wrong order or missing keywords.
  3. Final Answer:

    int add(int a, int b); -> Option D
  4. Quick Check:

    Return type + name + parameters = A [OK]
Hint: Function declaration: return_type name(parameters); [OK]
Common Mistakes:
  • Omitting return type
  • Wrong order of words
  • Missing parameter types
3. What will be the output of this C++ code?
#include <iostream>
int square(int x) {
    return x * x;
}

int main() {
    int result = square(4);
    std::cout << result;
    return 0;
}
medium
A. 16
B. 8
C. 4
D. Compilation error

Solution

  1. Step 1: Understand the function behavior

    The function square returns the input multiplied by itself.
  2. Step 2: Calculate the output for input 4

    square(4) = 4 * 4 = 16, so result is 16 and printed.
  3. Final Answer:

    16 -> Option A
  4. Quick Check:

    4 squared = 16 [OK]
Hint: Multiply input by itself for square [OK]
Common Mistakes:
  • Confusing multiplication with addition
  • Expecting the function to print instead of return
  • Assuming compilation error without reason
4. Identify the error in this function and fix it:
#include <iostream>
int multiply(int a, int b) {
    int product = a * b;
}

int main() {
    std::cout << multiply(3, 5);
    return 0;
}
medium
A. Add a return statement to return product
B. Change function name to multiplyNumbers
C. Remove parameters from function
D. Declare product as float

Solution

  1. Step 1: Check function return type and body

    The function is declared to return int but does not return any value.
  2. Step 2: Fix by adding return statement

    Adding return product; inside the function fixes the error.
  3. Final Answer:

    Add a return statement to return product -> Option A
  4. Quick Check:

    Function must return value if declared non-void [OK]
Hint: Non-void functions must return a value [OK]
Common Mistakes:
  • Forgetting to return a value
  • Changing function name unnecessarily
  • Changing parameter types without reason
5. You want to write a program that calculates the area of different shapes: circle, rectangle, and triangle. Why is it better to use separate functions for each shape's area calculation instead of writing all code in main()?
hard
A. Functions prevent the program from needing input
B. Functions make the program run without errors automatically
C. Functions allow reusing code and make the program easier to read and maintain
D. Functions reduce the number of variables needed

Solution

  1. Step 1: Understand the benefits of functions in complex programs

    Functions help organize code by separating tasks, making it easier to reuse and understand.
  2. Step 2: Apply this to shape area calculations

    Each shape has its own formula, so separate functions keep code clean and manageable.
  3. Final Answer:

    Functions allow reusing code and make the program easier to read and maintain -> Option C
  4. Quick Check:

    Functions improve clarity and reuse = D [OK]
Hint: Use functions to organize and reuse code [OK]
Common Mistakes:
  • Thinking functions fix all errors automatically
  • Believing functions reduce variables needed
  • Assuming functions remove need for input
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