Bird
Raised Fist0
C++programming~10 mins

Passing parameters by reference in C++ - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a function parameter that passes an integer by reference.

C++
void increment([1] int &num) {
    num++;
}
Drag options to blanks, or click blank then click option'
Avolatile
Bconst
Csigned
Dunsigned
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting the & symbol to pass by reference
Using pointer syntax instead of reference
2fill in blank
medium

Complete the code to call the function swap passing two integers by reference.

C++
void swap(int &a, int &b) {
    int temp = a;
    a = b;
    b = temp;
}

int main() {
    int x = 5, y = 10;
    swap([1], y);
    return 0;
}
Drag options to blanks, or click blank then click option'
Ax
B&x
C*x
Dint x
Attempts:
3 left
💡 Hint
Common Mistakes
Using &x in the function call, which is incorrect for references
Using *x which is for pointers
3fill in blank
hard

Fix the error in the function declaration to correctly pass a string by reference.

C++
#include <string>

void printName([1] std::string name) {
    std::cout << name << std::endl;
}
Drag options to blanks, or click blank then click option'
Aconst std::string &
Bstd::string *
Cstd::string &
Dstd::string
Attempts:
3 left
💡 Hint
Common Mistakes
Passing by value causes unnecessary copying
Using pointer syntax when reference is preferred
4fill in blank
hard

Fill both blanks to create a function that doubles an integer passed by reference and call it correctly.

C++
void doubleValue([1] int &num) {
    num *= 2;
}

int main() {
    int val = 7;
    doubleValue([2]);
    return 0;
}
Drag options to blanks, or click blank then click option'
Aint
Bval
Cconst
D&val
Attempts:
3 left
💡 Hint
Common Mistakes
Using &val in the call which is incorrect for references
Adding const incorrectly in the parameter
5fill in blank
hard

Fill all three blanks to create a function that swaps two integers by reference and call it correctly.

C++
void swap([1] int &a, [2] int &b) {
    int temp = a;
    a = b;
    b = temp;
}

int main() {
    int x = 3, y = 4;
    swap([3], y);
    return 0;
}
Drag options to blanks, or click blank then click option'
Aint
Bconst
Cx
D&x
Attempts:
3 left
💡 Hint
Common Mistakes
Using const in parameters which prevents modification
Passing &x in the function call which is incorrect

Practice

(1/5)
1.

What does passing a parameter by reference in C++ allow a function to do?

easy
A. Only read the variable without access to its value
B. Create a copy of the variable inside the function
C. Prevent the variable from being changed
D. Modify the original variable passed to the function

Solution

  1. Step 1: Understand passing by reference

    Passing by reference means the function receives the actual variable's address, not a copy.
  2. Step 2: Effect on the original variable

    Since the function works with the original variable, any changes inside the function affect it directly.
  3. Final Answer:

    Modify the original variable passed to the function -> Option D
  4. Quick Check:

    Passing by reference = modify original [OK]
Hint: Reference means function can change original variable [OK]
Common Mistakes:
  • Thinking it creates a copy instead of using original
  • Confusing with passing by value
  • Assuming it prevents changes
2.

Which of the following is the correct syntax to pass an integer num by reference to a function update?

void update(??? num) { num = 10; }
easy
A. int &num
B. int *num
C. int num
D. int &&num

Solution

  1. Step 1: Identify reference syntax in C++

    To pass by reference, use & after the type in the parameter list.
  2. Step 2: Match syntax to options

    int &num uses int &num, which is the correct way to pass by reference.
  3. Final Answer:

    int &num -> Option A
  4. Quick Check:

    Reference parameter uses & after type [OK]
Hint: Use & after type to pass by reference [OK]
Common Mistakes:
  • Using pointer syntax (*) instead of reference (&)
  • Omitting & and passing by value
  • Confusing rvalue reference (&&) with normal reference
3.

What is the output of the following code?

void addOne(int &x) {
    x = x + 1;
}

int main() {
    int a = 5;
    addOne(a);
    std::cout << a << std::endl;
    return 0;
}
medium
A. Compilation error
B. 5
C. 6
D. Undefined behavior

Solution

  1. Step 1: Understand function behavior

    The function addOne takes x by reference and increments it by 1.
  2. Step 2: Trace the variable a

    Initially, a is 5. After calling addOne(a), a becomes 6.
  3. Final Answer:

    6 -> Option C
  4. Quick Check:

    Reference parameter increments original variable [OK]
Hint: Reference changes original variable value [OK]
Common Mistakes:
  • Thinking original variable stays unchanged
  • Confusing reference with pointer syntax
  • Expecting compilation error due to missing &
4.

Identify the error in this code snippet:

void swap(int &a, int &b) {
    int temp = a;
    a = b;
    b = temp;
}

int main() {
    int x = 10, y = 20;
    swap(x, y);
    std::cout << x << ", " << y << std::endl;
    return 0;
}
medium
A. Missing & in function parameters
B. No error, code works correctly
C. Incorrect swapping logic
D. Missing return type in main

Solution

  1. Step 1: Check function parameter syntax

    The function swap correctly uses references int &a and int &b.
  2. Step 2: Verify swapping logic and main function

    The swapping logic uses a temporary variable correctly. The main function has proper return type and prints swapped values.
  3. Final Answer:

    No error, code works correctly -> Option B
  4. Quick Check:

    Correct reference swap function = no error [OK]
Hint: Check reference syntax and logic carefully [OK]
Common Mistakes:
  • Assuming swap logic is wrong
  • Confusing pointers with references
  • Thinking main lacks return type
5.

Given this function that doubles the value of an integer passed by reference, what will be the output of the program?

void doubleValue(int &num) {
    num *= 2;
}

int main() {
    int values[] = {1, 2, 3};
    for (int i = 0; i < 3; i++) {
        doubleValue(values[i]);
    }
    for (int v : values) {
        std::cout << v << " ";
    }
    return 0;
}
hard
A. 2 4 6
B. 1 2 3
C. Compilation error due to reference in array
D. 0 0 0

Solution

  1. Step 1: Understand passing array elements by reference

    Each element values[i] is passed by reference to doubleValue, so the original array elements are modified.
  2. Step 2: Trace the loop and doubling effect

    Loop runs 3 times, doubling each element: 1->2, 2->4, 3->6.
  3. Final Answer:

    2 4 6 -> Option A
  4. Quick Check:

    Reference parameter doubles original array elements [OK]
Hint: Array elements passed by reference get changed directly [OK]
Common Mistakes:
  • Thinking array elements are copied, not changed
  • Expecting compilation error with references and arrays
  • Ignoring loop effect on all elements
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