What is the purpose of the assignment operator (=) in C++?
The assignment operator (=) is used to copy the value from the right side to the variable on the left side.
Click to reveal answer
beginner
Explain the combined assignment operator += with an example.
The operator += adds the right side value to the left side variable and assigns the result back to the left variable. Example: int x = 5; x += 3; // x becomes 8
Click to reveal answer
beginner
List three compound assignment operators in C++ besides +=.
Three compound assignment operators are: - -= (subtract and assign) - *= (multiply and assign) - /= (divide and assign)
Click to reveal answer
intermediate
What happens if you write a = b = c; in C++?
This is called chained assignment. It assigns the value of c to b, then assigns b's value to a. Both a and b end up with the value of c.
Click to reveal answer
intermediate
Why should you be careful when using the assignment operator inside conditions?
Using assignment (=) inside conditions can cause bugs because it assigns a value instead of comparing. For comparison, use ==. For example, if (x = 5) assigns 5 to x and always evaluates true, which is usually unintended.
Click to reveal answer
What does the operator *= do in C++?
ADivides the left variable by the right and assigns the result
BSubtracts the right value from the left variable
CAdds the right value to the left variable
DMultiplies the left variable by the right and assigns the result
✗ Incorrect
The operator *= multiplies the left variable by the right value and stores the result back in the left variable.
What is the result of this code? int a = 2; a += 3;
Aa is 5
Ba is 6
Ca is 3
Da is 2
✗ Incorrect
The operator += adds 3 to a's current value 2, so a becomes 5.
Which operator is used to assign a value to a variable?
A=
B+=
C==
D!=
✗ Incorrect
The single equals sign (=) is the assignment operator in C++.
What does this code do? int x = 1, y = 2; x = y = 5;
AOnly x becomes 5
Bx and y both become 5
COnly y becomes 5
Dx becomes 2, y becomes 5
✗ Incorrect
The assignment is chained: y is assigned 5, then x is assigned y's value, so both become 5.
Why is this condition problematic? if (a = 10)
AIt compares a to 10
BIt checks if a is not equal to 10
CIt assigns 10 to a and always evaluates true
DIt causes a syntax error
✗ Incorrect
Using = assigns 10 to a, so the condition is always true, which is usually a mistake.
Explain how compound assignment operators work and give two examples.
Think about how they combine an operation and assignment in one step.
You got /2 concepts.
Describe what happens in chained assignments and why it might be useful.
Consider how values flow from right to left.
You got /3 concepts.
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
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.
Step 2: Compare with other operators
= assigns a value, -= subtracts, and *= multiplies. Only += adds and assigns.
Final Answer:
+= -> Option A
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
Step 1: Identify the correct assignment operator syntax
The operator to multiply and assign is *=, so x *= 5; is correct.
Step 2: Check other options for syntax errors
x =* 5; and x = 5*; are invalid syntax. x = 5 *; is incomplete.
Final Answer:
x *= 5; -> Option B
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
Step 1: Calculate a += 5;
Starting with a = 10, adding 5 gives a = 15.
Step 2: Calculate a -= 3;
Subtracting 3 from 15 gives a = 12.
Final Answer:
12 -> Option A
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
Step 1: Analyze x =+ 3;
This is not the addition assignment +=. Instead, =+ means assign positive 3 to x.
Step 2: Determine the value of x after assignment
x becomes 3, not 10, because =+ is just assignment with unary plus.
Final Answer:
3 -> Option C
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
Step 1: Understand the required operations order
First divide n by 4, then subtract 2 from the result, updating n each time.
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.
Step 3: Confirm correct update
n /= 4; n -= 2; updates n stepwise as requested.
Final Answer:
n /= 4; n -= 2; -> Option D
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 unknownstrongwhile earning +1 Grip toward your certificate.