Bird
Raised Fist0
Cprogramming~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
1:30remaining
Output of compound assignment with addition
What is the output of this C code snippet?
C
int main() {
    int a = 5;
    a += 3;
    printf("%d", a);
    return 0;
}
A8
B3
C0
D5
Attempts:
2 left
πŸ’‘ Hint
The += operator adds the right value to the left variable.
❓ Predict Output
intermediate
1:30remaining
Result of bitwise AND assignment
What will be printed by this C program?
C
int main() {
    int x = 12;  // binary 1100
    x &= 5;      // binary 0101
    printf("%d", x);
    return 0;
}
A12
B5
C4
D1
Attempts:
2 left
πŸ’‘ Hint
Bitwise AND compares each bit of two numbers and returns 1 only if both bits are 1.
❓ Predict Output
advanced
2:00remaining
Output of chained assignment with multiplication
What is the output of this code?
C
int main() {
    int a = 2, b = 3, c = 4;
    a *= b *= c;
    printf("%d %d %d", a, b, c);
    return 0;
}
A6 12 4
B24 12 4
C8 12 4
D24 7 4
Attempts:
2 left
πŸ’‘ Hint
Remember that assignment operators return the assigned value and evaluate right to left.
❓ Predict Output
advanced
1:30remaining
Effect of division assignment on float variable
What will this program print?
C
int main() {
    float f = 10.0f;
    f /= 4;
    printf("%.2f", f);
    return 0;
}
A2.50
B2.00
C2.40
D2.45
Attempts:
2 left
πŸ’‘ Hint
Division assignment divides the variable by the right value and stores the result.
❓ Predict Output
expert
2:00remaining
Final value after multiple compound assignments
What is the final value of variable x after running this code?
C
int main() {
    int x = 1;
    x += 2;
    x *= 3;
    x -= 4;
    x /= 2;
    printf("%d", x);
    return 0;
}
A3
B0
C1
D2
Attempts:
2 left
πŸ’‘ Hint
Apply each assignment operator step by step in order.

Practice

(1/5)
1. Which of the following assignment operators adds the right operand to the left operand and then assigns the result to the left operand?
easy
A. -=
B. +=
C. *=
D. /=

Solution

  1. Step 1: Understand the meaning of += operator

    The operator += adds the value on the right to the variable on the left and stores the result back in the left variable.
  2. Step 2: Compare with other operators

    Other operators like -= subtract, *= multiply, and /= divide, so they do not add.
  3. Final Answer:

    += -> Option B
  4. Quick Check:

    += means add and assign [OK]
Hint: Remember '+=' means add then assign to left variable [OK]
Common Mistakes:
  • Confusing '+=' with '=' which just assigns
  • Mixing '+=' with '-=' or '*='
  • Thinking '+=' only adds without assignment
2. Which of the following is the correct syntax using the compound assignment operator to multiply variable x by 5 and assign the result back to x?
easy
A. x = x *5;
B. x =* 5;
C. x = *5;
D. x *= 5;

Solution

  1. Step 1: Identify correct compound assignment syntax

    The correct syntax for multiplying and assigning is 'x *= 5;'. It combines multiplication and assignment.
  2. Step 2: Check other options for syntax errors

    x =* 5; 'x =* 5;' is invalid syntax. x = *5; 'x = *5;' is invalid because '*5' is not a valid expression. x = x *5; 'x = x *5;' is correct but not a compound assignment operator.
  3. Final Answer:

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

    '*=' is multiply and assign operator [OK]
Hint: Use '*=' to multiply and assign in one step [OK]
Common Mistakes:
  • Writing '=*' instead of '*='
  • Forgetting space or semicolon
  • Using 'x = *5;' which is invalid
3. What is the output of the following code?
int a = 10;
a += 5;
a -= 3;
printf("%d", a);
medium
A. 8
B. 15
C. 12
D. 10

Solution

  1. Step 1: Calculate after first operation 'a += 5;'

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

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

    12 -> Option C
  4. Quick Check:

    10 + 5 - 3 = 12 [OK]
Hint: Apply each operator step-by-step to track value [OK]
Common Mistakes:
  • Adding and subtracting in wrong order
  • Confusing '+=' and '-=' effects
  • Ignoring initial value of variable
4. Identify the error in the following code snippet:
int x = 7;
x +== 3;
printf("%d", x);
medium
A. Syntax error due to '+==' operator
B. Runtime error due to invalid operation
C. No error, output is 10
D. Logical error, output is wrong

Solution

  1. Step 1: Check the operator '+==' in the code

    The operator '+==' does not exist in C. The correct operator for addition assignment is '+='.
  2. Step 2: Understand the effect of invalid operator

    Using '+==' causes a syntax error and the code will not compile.
  3. Final Answer:

    Syntax error due to '+==' operator -> Option A
  4. Quick Check:

    Invalid operator '+==' causes syntax error [OK]
Hint: Use '+=' not '+==' for addition assignment [OK]
Common Mistakes:
  • Typing '+==' instead of '+='
  • Assuming '+==' works like '=='
  • Ignoring compiler error messages
5. Given the code below, what is the final value of result?
int result = 20;
result /= 4;
result *= 3;
result %= 5;
result += 2;
printf("%d", result);
hard
A. 2
B. 3
C. 4
D. 1

Solution

  1. Step 1: Perform division assignment 'result /= 4;'

    Starting with result = 20, dividing by 4 gives result = 5.
  2. Step 2: Perform multiplication assignment 'result *= 3;'

    Multiplying 5 by 3 gives result = 15.
  3. Step 3: Perform modulus assignment 'result %= 5;'

    15 modulo 5 is 0, so result = 0.
  4. Step 4: Perform addition assignment 'result += 2;'

    Adding 2 to 0 gives result = 2.
  5. Final Answer:

    2 -> Option A
  6. Quick Check:

    20/4=5, 5*3=15, 15%5=0, 0+2=2 [OK]
Hint: Apply each operator in order carefully [OK]
Common Mistakes:
  • Skipping modulus step or calculating it wrong
  • Mixing up order of operations
  • Forgetting that %= gives remainder
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