## C Programming Arithmetic Operators Tutorial

Learn C Programming Arithmetic Operators MCQ Questions and Answers on Basics to attend job placement exams, interview questions, college viva and Lab Tests

C language comes with Arithmetic Operators like Plus, Minus, Multiplication, Division and Modulo Division. One more operator ‘=’, also called Assignment operator is also present.

C Programming Arithmetic Operators are used to work with integers and real numbers.

Study **C basics and keywords** before this tutorial.

## Arithmetic Operators

SNO | Operator | Description |

1 | + | Addition Operator |

2 | – | Subtraction Operator |

3 | * | Multiplication Operator |

4 | / | Multiplication Operator |

5 | % | Modulo Division Operator |

### Arithmetic Operators in C

**Example 1:**

int main() { int a=5, b=10; int c; // = is Assignment operator c = a + b; printf("%d ", c); c = a - b; printf("%d ", c); c = a*b; printf("%d ", c); c = b/a; printf("%d ",c); c = a%b; //modulo division or remainder operator printf("%d", c); return 0; } //output: 15 -5 50 2 5

Assignment Operator allows only right side value to be assigned to the left side variable. In the above program, left side variable ‘C’ gets the value of right side operation like addition, subtraction etc.

**Note**: Modulo division operator works only with whole numbers like integers.

**Note**: Arithmetic operators can also be applied on char variables as characters are converted to their respective ASCII codes before arithmetic operation.

### Integer and Float Conversions

When you are working with integers and float (Real) numbers, some number conversions are applied.

- Result of int and int is integer only. Use
**%d**format specifier. Use an**int**variable to hold data. - Result of float and float is float only. Use
**%f**format specifier. Use a**float**variable to hold data. - Result of int and float is float only. Use
**%f**format specifier. Use a**float**variable to hold data. - If you use
**%d**instead of**%f,**precision data will be lost. - If you are working with
**long, double and long double data types**, result of an arithmetic operation contains**higher data type value**. For example, arithmetic operation with short and int is always int.

**Example 1**:

int main() { int a=5, b=10; float c = 12.5f, d = 10.5f; //int + int printf("%d, ", a+b); //float + float printf("%f, ", c+d); //int + float printf("%f, ", a + c); //int + float printf("%d", a + c); //%d truncates extra data i.e precision return 0; } //output: 15, 23, 17.500000, 17

## Arithmetic Operators

**Example 2**:

SNO | Arithmetic Operation | Result |

1. | 9/2 | 4 |

2. | 9/2.0 | 4.5 |

3. | 9.0/2 | 4.5 |

4. | 9.0/2.0 | 4.5 |

5. | 2/9 | 0 |

6. | 2/9.0 | 0.22 |

7. | 2.0/9 | 0.22 |

8. | 2.0/9.0 | 0.22 |

**Note**: To avoid losing of precision data with division operator, **multiply **the numerator or denominator with **1.0f or 1.0** double value. Use parantheses ( ) operator to group all numerator or denominator expressions.

int main() { int a=10, b=4; float c = (1.0f * a) / b; //multiply with 1.0f or 1.0 printf("%f", c); return 0; } //output: 2.500000

## C Operator Precedence or Priority or Hierarchy

Each operator in C has a precedence or priority or hierarchy. Operator precedence is useful to evaluate arithmetic expressions with operators of different priority. Operator priority decides which operator and operands should be evaluated first.

**Note**: Constants on the left and right side of operator are called **Operands**.

**Example 1**:

int main() { int a=2, b=3, c=8; int d=0; d = a + b * c; printf("%d", d); return 9; } //output: // 2 + (3*8) // 2 + 24 // 26 is the output //'*' operator has higher priority // wrong = (a+b)*c

### C Operator Precedence Chart

Priority | Operator | Description |

1st | *, /, % | Multiplication, Division, Modulo Division |

2nd | +, – | Addition, Subtraction |

3rd | = | Assignment |

**Example 2**:

int main() { float abc = 5 + 10 / 2 * 5 - 2 % 5; printf("Result=%f", abc); return 0; } //Evaluation steps //10 / 2 * 5 left to right processing //5 + 25 - 2 left to right processing // START // 5 + (10 / 2) * 5 - 2 % 5 // 5 + 5 * 5 - 2 % 5 // 5 + 25 - 2 % 5 // 5 + 25 - 2 // 30 - 2 // 28 //END

## C Operator Associativity

C operator associativity deals with the problem of associating an operand to either left operator or right operator. When two equal priority operators are encountered in an expression, this Operator associativity is used to solve deadlock. Usually arithmetic operators follow Left to Right Associativity. Equals to ‘=’ operator follows Right to Left Associativity.

**Example 1**:

int d = 3 + 4 + 5;

Now as per Left to Associativity of arithmetic operators, 4 belongs to the left side + or first + operator. So the expression becomes (3+4) + 5. Next, the result of expression is added to 5 like (7)+5.

Now as per Right to Left Associativity of Equals to Operator, right side value is assigned to left side variable. So the variable d now holds a value of 12.

**Example 2**:

float fd = 3 + 12 / 5;

In the code above, there are two operators + and /. As Division / operator has higher priority, operand 12 is associated with /. instead of + on the left side. So 12/5 evaluates to 2. fd = 3 + 2 = 5 now.

learn C Programming Syntax Basics in this multipart tutorial which are useful for students in the last minute before exam. C Programming Language was invented by Dennis Ritchie in Bell Laboratories. Now Nokia owns Bell Laboratories and experiments are still going on.

## C Programming Syntax Basics Part 1

We shall learn about basic structure of a C Program and predefined Keywords in this C Programming Syntax Basics Tutorial Part 1. You can **set up a Turbo C Compiler on your Windows Machine** easily.

### Online Tests on C Basics

## Structure of a C Program

Every C program contains a function or method called **main(). **All functions end with **Round Brackets** or **Paranthesis** **( )**. Inside Paratheses, arguments can be received or passed. Code of a Function is surrounded by **Curly Brackets** or **Braces { }**.

#include <stdio.h> void main() { /*This is a multi-line comment. It is not compiled or checked for Syntax*/ printf("Hello C.."); }

### Output

Hello C..

### Observations

**VOID**is a return type. VOID means nothing is being returned.**main() { }**is a compulsory function in any C Program.- void and main should be typed in
**lowercase**completely. **/**symbol is called Forward Slash or simply Slash.*****symbol is called**STAR**.**/* */**is a multiline comment. Comments are useful for analysing code logic flow in very big projects. Comments make others easily understand your program or project.**printf**() is a function which is passing one argument “Helllo C”.- “Hello C” is a string literal here.
- Code statements or lines end with
**Semicolon ;** - Putting a return type before a function name is not mandatory in a C Compiler. If you use a C++ Compiler to compile c programs, you must specify a return type.
**#include**includes an already written header file**stdio.h**which contains code for**printf**function. Without predefined functions, life becomes difficult to write everything every time on our own. Also the code without including files becomes clumsy to maintain and understand.

## Keywords in C Language

There are a total of 32 keywords in C Language which can not be used for the names of variables and functions. Find the C Programming Keyword list below. Students need to remember these keywords just like that to attempt questions asked in their exams.

Keyword | Meaning |

auto | Defines local life time for a variable |

break | Breaks a current loop in general |

case | Defines branch control point |

char | Basic data type, character literal |

const | Defines a Constant, unmodified variable |

continue | control goes to the loop beginning |

default | control point used in switch construct in general |

do | do while loop |

double | Floating point data type bigger than float type |

else | Usually followed by if construct. If conditon fails, branch to else block |

enum | Used to define a group of int constants like array |

extern | Used to define a variable or function with type and the definition may exist some where |

float | Floating point data type |

for | For Loop |

goto | Transfers execution control to defined Label |

if | A conditional statement |

int | Basic integer data type |

long | Integer data type bigger than int |

register | Tells to store the variable in RAM register |

return | ends execution immediately |

short | Type Modifier |

signed | Type Modifier |

sizeof | used to get the size of a variable. Eg. sizeof(integerType) |

static | used to create a variable with broad scope |

struct | Used to define a custom data type kind of thing |

switch | switch branch control |

typedef | used to create new type |

union | used in grouping of variables of same type |

unsigned | Modifiere used to increase positive max value |

void | empty data type or return type |

volatile | Used to create a variable with a value changed by any external process |

while | while loop with a condition |