Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
2 views

C Programming Operators

The document provides an overview of formatted input-output in C programming, detailing how to use printf and scanf functions for displaying and receiving data. It covers various operators in C, including arithmetic, relational, logical, bitwise, assignment, increment/decrement, conditional, and miscellaneous operators, along with their syntax and examples. Additionally, it discusses operator precedence and how it affects expression evaluation.

Uploaded by

pramitsaha152
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

C Programming Operators

The document provides an overview of formatted input-output in C programming, detailing how to use printf and scanf functions for displaying and receiving data. It covers various operators in C, including arithmetic, relational, logical, bitwise, assignment, increment/decrement, conditional, and miscellaneous operators, along with their syntax and examples. Additionally, it discusses operator precedence and how it affects expression evaluation.

Uploaded by

pramitsaha152
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

FORMATTED INPUT-OUTPUT

Data can be entered & displayed in a particular format. Through format specifications, better
presentation of results can be obtained.

Variations in Output for integer & floats:


#include<stdio.h>
int main()
{
printf("Case 1:%6d\n",9876);
/* Prints the number right justified within 6 columns */
printf("Case 2:%3d\n",9876);
/* Prints the number to be right justified to 3 columns but, there are 4 digits so number is not
right justified */
printf("Case 3:%.2f\n",987.6543);
/* Prints the number rounded to two decimal places */
printf("Case 4:%.f\n",987.6543);
/* Prints the number rounded to 0 decimal place, i.e, rounded to integer */
printf("Case 5:%e\n",987.6543);
/* Prints the number in exponential notation (scientific notation) */
return 0;
}
Output
Case 1: 9876
Case 2:9876
Case 3:987.65
Case 4:988
Case 5:9.876543e+002

Variations in Input for integer and floats:


#include <stdio.h>
int main()
{
int a,b;
float c,d;
printf("Enter two intgers: ");
/*Two integers can be taken from user at once as below*/
scanf("%d%d",&a,&b);
printf("Enter intger and floating point numbers: ");
/*Integer and floating point number can be taken at once from user as below*/
scanf("%d%f",&a,&c);
return 0;
}

Similarly, any number of inputs can be taken at once from user.

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);

3. For a typical program, the input is taken using.


A. scanf
B. Files
C. Command-line
D. None of the mentioned
4. What is the output of this C code?

#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

5. What is the output of this C code?

#include <stdio.h>
int main()
{
int i = 10, j = 3;
printf("%d %d %d", i, j);
}

A. Compile time error


B. 10 3
C. 10 3 some garbage value
D. Undefined behavior

6. What is the output of this C code?

#include <stdio.h>
int main()
{ int i = 10, j = 3, k = 3;
printf("%d %d ", i, j, k);
}

A. Compile time error


B. 10 3 3
C. 10 3
D. 10 3 somegarbage value
7. The syntax to print a % using printf statement can be done by.
A. %
B. %
C. ‘%’
D. %%

8. What is the output of this C code?

#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

9. What is the output of this C code?

#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

12. Which of the following is NOT a delimiter for an input in scanf?


A. Enter
B. Space
C. Tab
D. None of the mentioned
OPERATORS
An operator is a symbol that tells the compiler to perform specific mathematical or logical
manipulations. C language is rich in built-in operators and provides the following types of
operators:

• Arithmetic Operators

• Relational Operators

• Logical Operators

• Bitwise Operators

• Assignment Operators

• Increment and decrement 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:

Operator Description Example

+ Adds two operands A + B will give 30

- Subtracts second operand from the first A – B will give -10

* Multiplies both operands A * B will give 200

/ Divides numerator by de-numerator B / A will give 2


Modulus Operator and remainder of after an integer
% B % A will give 0
division
++ Increments operator increases integer value by one A++ will give 11

-- Decrements operator decreases integer value by one A–will give 9

Relational Operators:

These operators are used to compare the value of two variables.

Following table shows all the relational operators supported by C language. Assume variable A
holds 10 and variable B holds 20, then:

Operator Description Example

== 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 values of two operands are equal or not, if (A != B) is true.


values are not equal then condition becomes 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

Called Logical AND operator. If both the operands are (A && B) is


&&
nonzero, then condition becomes true. false.

Called Logical OR Operator. If any of the two operands is


|| (A || B) is true.
non-zero, then condition becomes true.
Called Logical NOT Operator. Use to reverses the logical
!(A && B) is
! state of its operand. If a condition is true then Logical NOT
true.
operator will make false.

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).

The truth tables for &, |, and ^ are as follows:

p q p&q p|q p^q

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:

Operator Description Example

& 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 OR Operator copies a bit if it exists in either (A | B) will give 61,


operand. which is 0011 1101

^ 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.

There are following assignment operators supported by C language:

Operator Description Example

= Simple assignment operator, Assigns values from right side C = A + B will


operands to left side operand assign value of A +
B into C

+= Add AND assignment operator, It adds right operand to the C += A is


left operand and assign the result to left operand equivalent to C = C
+A
-= Subtract AND assignment operator, It subtracts right C -= A is
operand from the left operand and assign the result to left equivalent to C = C
operand –A

*= Multiply AND assignment operator, It multiplies right C *= A is


operand with the left operand and assign the result to left equivalent to C = C
operand *A

/= Divide AND assignment operator, It divides left operand C /= A is


with the right operand and assign the result to left operand equivalent to C = C
/A

%= Modulus AND assignment operator, It takes modulus using C %= A is


two operands and assign the result to left operand equivalent to C = C
%A

<<= Left shift AND assignment operator C <<= 2 is same as


C = C << 2

>>= Right shift AND assignment operator C >>= 2 is same as


C = C >> 2

&= Bitwise AND assignment operator C &= 2 is same as


C=C&2

^= bitwise exclusive OR and assignment operator C ^= 2 is same as C


=C^2

|= bitwise inclusive OR and assignment operator C |= 2 is same as C


=C|2
INCREMENT AND DECREMENT OPERATOR

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:

Let a=5 and b=10

a++; //a becomes 6

a--; //a becomes 5

++a; //a becomes 6

--a; //a becomes 5

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;

printf(“%d\n”,c++); //this statement displays 2 then, only c incremented by 1 to 3.

Printf(“%d”,++c); //this statement increments 1 to c then, only c is displayed.

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.

Syntax of conditional operators;

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.

Let us understand this with the help of a few examples:

int x, y ;

scanf ( “%d”, &x ) ;

y = ( x> 5 ? 3 : 4 ) ;

This statement will store 3 in y if x is greater than 5, otherwise it will store 4 in y.

The equivalent if statement will be,

if ( x > 5 )

y=3;

else

y=4;

Misc Operators:

There are few other operators supported by c language.

Operator Description Example

sizeof() It is a unary operator which is used in sizeof(a), where a is integer, will


finding the size of data type, constant, return 4.
arrays, structure etc.
& Returns the address of a variable. &a; will give actual address of
the variable.

* Pointer to a variable. *a; will pointer to a variable.

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.

Category Operator Associativity

Postfix () [] -> . ++ - - Left to right

Unary + - ! ~ ++ - - (type)* &sizeof Right to left

Multiplicative */% Left to right

Additive +- Left to right

Shift <<>> Left to right

Relational <<= >>= Left to right

Equality == != Left to right

Bitwise AND & Left to right

Bitwise XOR ^ Left to right

Bitwise OR | Left to right

Logical AND && Left to right


Logical OR || Left to right

Conditional ?: Right to left

Assignment = += -= *= /= %=>>= <<= &= ^= |= Right to left

Comma , Left to right

You might also like