Bird
Raised Fist0
Cprogramming~10 mins

Arithmetic operators - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Arithmetic operators
Start
↓
Initialize variables
↓
Apply +, -, *, /, %
↓
Store results
↓
Print results
↓
End
This flow shows how arithmetic operators take variables, perform calculations, store results, and then output them.
Execution Sample
C
int a = 10;
int b = 3;
int sum = a + b;
int diff = a - b;
int prod = a * b;
int div = a / b;
int mod = a % b;
printf("%d %d %d %d %d", sum, diff, prod, div, mod);
This code calculates sum, difference, product, division, and remainder of two integers and prints the results.
Execution Table
StepOperationExpressionResultExplanation
1Additionsum = a + b1310 + 3 equals 13
2Subtractiondiff = a - b710 - 3 equals 7
3Multiplicationprod = a * b3010 * 3 equals 30
4Divisiondiv = a / b3Integer division 10 / 3 equals 3 (fraction discarded)
5Modulomod = a % b1Remainder of 10 divided by 3 is 1
6Printprintf(...)13 7 30 3 1Outputs all results separated by spaces
7End--Program finishes
💡 All arithmetic operations completed and results printed
Variable Tracker
VariableInitialAfter Step 1After Step 2After Step 3After Step 4After Step 5Final
a10101010101010
b3333333
sumundefined131313131313
diffundefinedundefined77777
produndefinedundefinedundefined30303030
divundefinedundefinedundefinedundefined333
modundefinedundefinedundefinedundefinedundefined11
Key Moments - 3 Insights
Why does division of 10 / 3 give 3 instead of 3.333?
In C, dividing two integers results in integer division, which discards the decimal part. See execution_table step 4 where div = 3.
What does the modulo operator (%) do?
Modulo gives the remainder after division. In step 5, 10 % 3 equals 1 because 3 goes into 10 three times with remainder 1.
Are the original variables 'a' and 'b' changed by the operations?
No, 'a' and 'b' keep their initial values throughout. Only new variables store results, as shown in variable_tracker.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 3, what is the value of 'prod'?
A7
B13
C30
D3
💡 Hint
Check the 'Result' column for step 3 in execution_table.
At which step does the modulo operation happen?
AStep 2
BStep 5
CStep 4
DStep 1
💡 Hint
Look for the '%' operator in the 'Operation' column in execution_table.
If 'a' was 9 instead of 10, what would be the new value of 'mod'?
A0
B1
C2
D3
💡 Hint
Modulo is remainder of division; 9 % 3 equals 0, but check carefully.
Concept Snapshot
Arithmetic operators in C:
+ addition
- subtraction
* multiplication
/ integer division (fraction discarded)
% modulo (remainder)
Use with integers to calculate and store results.
Full Transcript
This example shows how arithmetic operators work in C. Variables a and b are set to 10 and 3. Then sum, difference, product, division, and modulo are calculated step-by-step. Division discards decimals because both operands are integers. Modulo gives the remainder after division. The original variables stay unchanged. Finally, all results are printed together.

Practice

(1/5)
1. Which arithmetic operator in C gives the remainder of a division?
easy
A. The multiplication operator (*)
B. The division operator (/)
C. The modulus operator (%)
D. The subtraction operator (-)

Solution

  1. Step 1: Understand the modulus operator

    The modulus operator (%) returns the remainder after division of two integers.
  2. Step 2: Compare with other operators

    Division (/) returns the quotient, multiplication (*) multiplies, subtraction (-) subtracts.
  3. Final Answer:

    The modulus operator (%) -> Option C
  4. Quick Check:

    Remainder = % operator [OK]
Hint: Remainder means modulus (%) operator [OK]
Common Mistakes:
  • Confusing division (/) with modulus (%)
  • Thinking multiplication (*) gives remainder
  • Using subtraction (-) for remainder
2. Which of the following is the correct syntax to multiply two integers a and b in C?
easy
A. a x b;
B. a * b;
C. a . b;
D. a & b;

Solution

  1. Step 1: Recall multiplication operator in C

    The multiplication operator in C is the asterisk symbol (*).
  2. Step 2: Check each option

    a * b; uses '*', which is correct. Options B, C, D use invalid symbols for multiplication.
  3. Final Answer:

    a * b; -> Option B
  4. Quick Check:

    Multiply with * operator [OK]
Hint: Use * for multiplication in C [OK]
Common Mistakes:
  • Using 'x' instead of '*' for multiplication
  • Using '.' or '&' mistakenly
  • Missing semicolon at end
3. What is the output of this C code?
int a = 7, b = 3;
printf("%d", a / b);
medium
A. 1
B. 2.333333
C. 3
D. 2

Solution

  1. Step 1: Understand integer division in C

    Both a and b are integers, so a / b performs integer division, which discards the decimal part.
  2. Step 2: Calculate 7 / 3 using integer division

    7 divided by 3 is 2.333..., but integer division returns 2.
  3. Final Answer:

    2 -> Option D
  4. Quick Check:

    Integer division truncates decimals [OK]
Hint: Integer division drops decimals, result is integer [OK]
Common Mistakes:
  • Expecting floating-point result
  • Confusing remainder with division result
  • Using wrong format specifier in printf
4. Find the error in this C code snippet:
int x = 10;
int y = 3;
int z = x / y.0;
printf("%d", z);
medium
A. Using a floating-point number in integer division
B. Incorrect format specifier in printf
C. Missing semicolon after variable declaration
D. Division by zero error

Solution

  1. Step 1: Analyze the division expression

    The expression x / y.0 uses y.0 which attempts a floating-point literal but causes invalid syntax, as x and y are integers.
  2. Step 2: Understand the syntax error

    Using y.0 causes a compilation error due to invalid syntax in the integer division context.
  3. Final Answer:

    Using a floating-point number in integer division -> Option A
  4. Quick Check:

    Integer division must use integers only [OK]
Hint: Integer division needs integer operands only [OK]
Common Mistakes:
  • Thinking printf format is wrong
  • Ignoring the decimal in y.0
  • Assuming division by zero
5. You want to calculate the average of two integers a and b in C and get a floating-point result. Which code snippet correctly does this?
hard
A. float avg = (a + b) / 2.0;
B. float avg = (a + b) / 2;
C. int avg = (a + b) / 2.0;
D. float avg = a / b + 2;

Solution

  1. Step 1: Understand integer vs floating-point division

    Dividing by 2 (integer) causes integer division, losing decimals. Dividing by 2.0 (double) forces floating-point division.
  2. Step 2: Check each option for correct average calculation

    float avg = (a + b) / 2; does integer division then converts to float, losing decimals. float avg = (a + b) / 2.0; divides by 2.0, giving float result. int avg = (a + b) / 2.0; stores float result in int, losing decimals. float avg = a / b + 2; is incorrect formula.
  3. Final Answer:

    float avg = (a + b) / 2.0; -> Option A
  4. Quick Check:

    Divide by 2.0 for float average [OK]
Hint: Divide by 2.0 to get float average [OK]
Common Mistakes:
  • Dividing by integer 2 causing integer division
  • Storing float result in int variable
  • Wrong formula for average
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