C Programming Operators
C Programming Operators
Data can be entered & displayed in a particular format. Through format specifications, better
presentation of results can be obtained.
EXERCISE:
1. To print out a and b given below, which of the following printf() statement will you use?
#include<stdio.h>
float a=3.14;
double b=3.14;
A. printf("%f %lf", a, b);
B. printf("%Lf %f", a, b);
C. printf("%Lf %Lf", a, b);
D. printf("%f %Lf", a, b);
2. To scan a and b given below, which of the following scanf() statement will you use?
#include<stdio.h>
float a;
double b;
A. scanf("%f %f", &a, &b);
B. scanf("%Lf %Lf", &a, &b);
C. scanf("%f %Lf", &a, &b);
D. scanf("%f %lf", &a, &b);
#include <stdio.h>
int main()
{ int i = 10, j = 2;
printf("%d\n", printf("%d %d ", i, j));
}
A. Compile time error
B. 10 2 4
C. 10 2 2
D. 10 2 5
#include <stdio.h>
int main()
{
int i = 10, j = 3;
printf("%d %d %d", i, j);
}
#include <stdio.h>
int main()
{ int i = 10, j = 3, k = 3;
printf("%d %d ", i, j, k);
}
#include <stdio.h>
int main()
{ int n;
scanf("%d", n);
printf("%d\n", n);
return 0;
}
A. Compilation error
B. Undefined behavior
C. Whatever user types
D. Depends on the standard
#include <stdio.h>
int main()
{ short int i;
scanf("%hd", &i);
printf("%hd", i);
return 0;
}
A. Compilation error
B. Undefined behavior
C. Whatever user types
D. None of the mentioned
10. In a call to printf() function the format specifier %b can be used to print binary equivalent of
an integer.
A. True
B. False
11. Point out the error in the program?
#include<stdio.h>
int main()
{
char ch;
int i;
scanf("%c", &i);
scanf("%d", &ch);
printf("%c %d", ch, i);
return 0;
}
A. Error: suspicious char to in conversion in scanf()
B. Error: we may not get input for second scanf() statement
C. No error
D. None of above
• Arithmetic Operators
• Relational Operators
• Logical Operators
• Bitwise Operators
• Assignment Operators
• Conditional operators
• Misc Operators
Arithmetic operator:
These are used to perform mathematical calculations like addition, subtraction, multiplication,
division and modulus.
Following table shows all the arithmetic operators supported by C language. Assume variable A
holds 10 and variable B holds 20 then:
Relational Operators:
Following table shows all the relational operators supported by C language. Assume variable A
holds 10 and variable B holds 20, then:
== Checks if the values of two operands are equal or not, if yes (A == B) is not
then condition becomes true. true.
> Checks if the value of left operand is greater than the value (A > B) is not
of right operand, if yes then condition becomes true. true.
< Checks if the value of left operand is less than the value of (A < B) is true.
right operand, if yes then condition becomes true.
>= Checks if the value of left operand is greater than or equal to (A >= B) is not
the value of right operand, if yes then condition becomes true.
true.
<= Checks if the value of left operand is less than or equal to the (A <= B) is true.
value of right operand, if yes then condition becomes true.
Logical Operators:
These operators are used to perform logical operations on the given two variables.
Following table shows all the logical operators supported by C language. Assume variable A
holds 1 and variable B holds 0, then:
Operator Description Example
Bitwise Operators
Bitwise operator works on bits and performs bit-by-bit operation. Bitwise operators are used in bit
level programming. These operators can operate upon int and char but not on float and double.
Showbits( ) function can be used to display the binary representation of any integer or character
value.
Bit wise operators in C language are; & (bitwise AND), | (bitwise OR), ~ (bitwise OR), ^ (XOR),
<< (left shift) and >> (right shift).
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1
The Bitwise operators supported by C language are explained in the following table. Assume
variable A holds 60 (00111100) and variable B holds 13 (00001101), then:
& Binary AND Operator copies a bit to the result if it (A & B) will give 12,
exists in both operands. which is 0000 1100
^ Binary XOR Operator copies the bit if it is set in (A ^ B) will give 49,
one operand but not both. which is 0011 0001
~ Binary Ones Complement Operator is unary and has (~A ) will give -61, which
the effect of ‘flipping’ bits. is 1100 0011 in 2’s
complement form.
<< Binary Left Shift Operator. The left operands value A << 2 will give 240
is moved left by the number of bits specified by the which is 1111 0000
right operand.
>> Binary Right Shift Operator. The left operands A >> 2 will give 15
value is moved right by the number of bits specified which is 0000 1111
by the right operand.
Assignment Operators:
In C programs, values for the variables are assigned using assignment operators.
In C, ++ and – are called increment and decrement operators respectively. Both of these operators
are unary operators, i.e, used on single operand. ++ adds 1 to operand and – subtracts 1 to operand
respectively. For example:
When i++ is used as prefix(like: ++var), ++var will increment the value of var and then return it
but, if ++ is used as postfix(like: var++), operator will return the value of operand first and then
only increment it. This can be demonstrated by an example:
#include <stdio.h>
int main()
int c=2,d=2;
Return 0;
Output
4
Conditional Operators (? :)
Conditional operators are used in decision making in C programming, i.e, executes different
statements according to test condition whether it is either true or false.
conditional_expression?expression1:expression2
If the test condition is true (that is, if its value is non-zero), expression1 is returned and if false
expression2 is returned.
int x, y ;
y = ( x> 5 ? 3 : 4 ) ;
if ( x > 5 )
y=3;
else
y=4;
Misc Operators:
Operators Precedence in C
Operator precedence determines the grouping of terms in an expression. This affects how an
expression is evaluated. Certain operators have higher precedence than others; for example, the
multiplication operator has higher precedence than the addition operator.
For example x = 7 + 3 * 2; here, x is assigned 13, not 20 because operator * has higher precedence
than +, so it first gets multiplied with 3*2 and then adds into 7.
Here, operators with the highest precedence appear at the top of the table, those with the lowest
appear at the bottom. Within an expression, higher precedence operators will be evaluated first.