Bird
Raised Fist0
C++programming~20 mins

Assignment operators in C++ - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Assignment Operator Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of compound assignment with multiplication
What is the output of this C++ code snippet?
C++
#include <iostream>
int main() {
    int a = 5;
    a *= 3 + 2;
    std::cout << a << std::endl;
    return 0;
}
ASyntax error
B25
C15
D10
Attempts:
2 left
💡 Hint
Remember operator precedence: multiplication assignment and addition.
❓ Predict Output
intermediate
2:00remaining
Result of chained assignment
What is the value of variable c after running this code?
C++
#include <iostream>
int main() {
    int a, b, c;
    a = b = c = 7;
    c += 3;
    std::cout << c << std::endl;
    return 0;
}
A7
B3
C10
D0
Attempts:
2 left
💡 Hint
Look at the chained assignment and then the addition assignment.
❓ Predict Output
advanced
2:00remaining
Effect of bitwise assignment operator
What is the output of this C++ program?
C++
#include <iostream>
int main() {
    unsigned int x = 12; // binary 1100
    x >>= 2;
    std::cout << x << std::endl;
    return 0;
}
A3
B48
C6
DSyntax error
Attempts:
2 left
💡 Hint
Right shift operator divides by powers of two.
❓ Predict Output
advanced
2:00remaining
Output of combined assignment with logical operators
What is the output of this code snippet?
C++
#include <iostream>
int main() {
    int a = 5;
    a &= 3;
    std::cout << a << std::endl;
    return 0;
}
A0
B7
C1
D2
Attempts:
2 left
💡 Hint
Use bitwise AND on the binary forms of 5 and 3.
🧠 Conceptual
expert
2:00remaining
Understanding behavior of assignment in expressions
Consider this code snippet. What is the value of y after execution?
C++
#include <iostream>
int main() {
    int x = 4;
    int y = (x += 3) * 2;
    std::cout << y << std::endl;
    return 0;
}
A14
B10
C8
D7
Attempts:
2 left
💡 Hint
Remember that assignment expressions return the assigned value.

Practice

(1/5)
1. Which of the following assignment operators adds the right value to the left variable and stores the result back in the left variable?
easy
A. +=
B. =
C. -=
D. *=

Solution

  1. Step 1: Understand the meaning of +=

    The operator += adds the right side value to the left side variable and updates the variable with the new value.
  2. Step 2: Compare with other operators

    = assigns a value, -= subtracts, and *= multiplies. Only += adds and assigns.
  3. Final Answer:

    += -> Option A
  4. Quick Check:

    Add and assign = += [OK]
Hint: Remember: += means add then assign [OK]
Common Mistakes:
  • Confusing = with +=
  • Thinking -= adds values
  • Mixing *= with addition
2. Which of the following is the correct syntax to multiply variable x by 5 and store the result back in x?
easy
A. x =* 5;
B. x *= 5;
C. x = 5*;
D. x = 5 *;

Solution

  1. Step 1: Identify the correct assignment operator syntax

    The operator to multiply and assign is *=, so x *= 5; is correct.
  2. Step 2: Check other options for syntax errors

    x =* 5; and x = 5*; are invalid syntax. x = 5 *; is incomplete.
  3. Final Answer:

    x *= 5; -> Option B
  4. Quick Check:

    Multiply and assign = *= [OK]
Hint: Use operator before = for combined assignment [OK]
Common Mistakes:
  • Placing * after = instead of before
  • Leaving incomplete expressions
  • Confusing with simple assignment =
3. What is the output of the following code?
int a = 10;
a += 5;
a -= 3;
std::cout << a;
medium
A. 12
B. 15
C. 8
D. 10

Solution

  1. Step 1: Calculate a += 5;

    Starting with a = 10, adding 5 gives a = 15.
  2. Step 2: Calculate a -= 3;

    Subtracting 3 from 15 gives a = 12.
  3. Final Answer:

    12 -> Option A
  4. Quick Check:

    10 + 5 - 3 = 12 [OK]
Hint: Apply each assignment step by step [OK]
Common Mistakes:
  • Adding and subtracting in wrong order
  • Confusing += and -= effects
  • Ignoring the updated value after first operation
4. Identify the error in the following code snippet:
int x = 7;
x =+ 3;
std::cout << x;
medium
A. Syntax error due to incorrect operator
B. x will be 10
C. x will be 3
D. No error, output is 10

Solution

  1. Step 1: Analyze x =+ 3;

    This is not the addition assignment +=. Instead, =+ means assign positive 3 to x.
  2. Step 2: Determine the value of x after assignment

    x becomes 3, not 10, because =+ is just assignment with unary plus.
  3. Final Answer:

    3 -> Option C
  4. Quick Check:

    =+ is assignment, not addition [OK]
Hint: Watch for =+ vs += difference [OK]
Common Mistakes:
  • Confusing =+ with += operator
  • Expecting addition instead of assignment
  • Assuming output is sum without checking syntax
5. Given int n = 20;, which code snippet correctly divides n by 4 and then subtracts 2 from the result, updating n accordingly?
hard
A. n = n - 2 / 4;
B. n -= 2; n /= 4;
C. n = (n - 2) / 4;
D. n /= 4; n -= 2;

Solution

  1. Step 1: Understand the required operations order

    First divide n by 4, then subtract 2 from the result, updating n each time.
  2. Step 2: Check each option

    n /= 4; n -= 2; does n /= 4; then n -= 2;, matching the requirement. n -= 2; n /= 4; reverses order. n = (n - 2) / 4; subtracts first due to parentheses (18 / 4 = 4). n = n - 2 / 4; subtracts incorrectly.
  3. Step 3: Confirm correct update

    n /= 4; n -= 2; updates n stepwise as requested.
  4. Final Answer:

    n /= 4; n -= 2; -> Option D
  5. Quick Check:

    Divide then subtract = n /= 4; n -= 2; [OK]
Hint: Follow operation order exactly [OK]
Common Mistakes:
  • Reversing operation order
  • Misunderstanding combined expressions
  • Incorrect operator precedence assumptions
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