Vous êtes sur la page 1sur 8

C Programming-Operator

C Programming
Operator
Topics Covered: 1. What is operator? List the different categories of operator in C 2. Arithmetic Operators 3. Integer Arithmetic 4. Real Arithmetic 5. Mixed mode arithmetic 6. Relational Operators 7. Logical Operators 8. Assignment Operator 9. Increment and Decrement Operator 10. Bitwise Operator 11. Special Operator 12. Comma Operator 13. sizeof Operator 14. Evaluation of Expression 15. Automatic type conversion 16. Casting a value 17. Operator precedence and associativity

What is operator? List the different categories of operator in C Operator is a symbol that tells computer to perform mathematical and logical task. C operators can be classified into following 8 categories: 1. Arithmetic Operators 2. Relational Operators 3. Logical Operators 4. Assignment Operators 5. Increment and Decrement Operators 6. Conditional Operators 7. Bitwise operators 8. Special Operators

Arithmetic Operators: C provides basic arithmetic operators *, +, -, /, and %. These all operators can work with only built-in data type (int, float, char, double, etc.) 1. Addition Operator: It has two format, one is unary plus and other is binary plus. Unary plus only works with only one operand. Unary plus was not supported in older version of C. e.g. a = +b; a = +20; Here a and b are two variables and it is simply known as operand and 20 is constant Another format is binary plus in which two operands are used e.g. a = b + c; a = 20 + 30; 2. Subtraction Operator: It has also two format, one is unary minus which multiply your operand with 1. e.g. a = -b; a = -30; If initially b value is 20 then a value is going to be 20 * -1 i.e. 20

By www.sharebca.com www.twitter.com/HARDIK_RATHOD follow me on twitter 07/09/13

Share BCA.Com A place to learn and share all about BCA Page 1 of 8

C Programming-Operator Another format is binary minus in which two operands are used e.g. a=bc a = 34 30 3. Multiplication Operator: It has only binary format means you can be used with only two operands. e.g. a=b*c a=5*3 Division Operator: Division operator has also only binary format means operator in between two operands. e.g. a=b/c a=6/3 Modulo Operator: Modulo operator is used to determine the remainder after division operation. Modulo operator cannot be used for the float value. If any of the operand is float then compilation error is generated. e.g. a=6%4 It will give the answer 2 since after dividing 6 by 4 we are getting 2 as remainder a = 7.8 % 4 It will give compilation error because 7.8 is float value. Also if we are using modulo operator for the negative value then sign of the answer is sign of the first operand. e.g. a = -10 % 3 = - 1 (Sign of 1st operand 10 is minus so answer is minus) a = - 10 % -3 = -1 (Sign of 1st operand 10 is minus so answer is minus) a = 10 % -3 = 1 (Sign of 1st operand 10 is plus so answer is plus)

4.

5.

Integer Arithmetic: When both the operands in as single arithmetic expression (such as a + b) are integers, then this expression is known as the Integer Expression and the operation is known as the Integer arithmetic. The result of the integer arithmetic is always the integer. e.g. 5 + 6 = 11 34 3 = 31 3*3=9 4/2=2 9/5=1 (Fractional part is truncated) 8%5=3 (remainder value) During the division operation in the result the fractional part is truncated. If one of the operand is negative then the direction of truncation is machine dependent e.g. -6 / 7 = 0 or -1 (Depend on the machine) Similarly in modulo operation if first operand (dividend) is negative then the result is negative other wise result is positive e.g. -14 % 3 = -2 -14 % -3 = -2 14 % -3 = 2

Real Arithmetic: If in arithmetic operation both the operand is real then the expression is known as the real expression and the operation is known as the real arithmetic In real arithmetic result is always the real. e.g. 4.5 + 443.3 = 447.8 We cannot use modulo operator with the real arithmetic.

Mixed mode arithmetic: Share BCA.Com A place to learn and share all about BCA Page 2 of 8

By www.sharebca.com www.twitter.com/HARDIK_RATHOD follow me on twitter 07/09/13

C Programming-Operator If in arithmetic operation one operand is integer and another is real then this expression is known as the mixed mode expression and operation is known as the mixed mode arithmetic. e.g. 4.5 + 45 = 49.5 In mixed mode arithmetic result is real

Relational Operators: Using the relational operators can do the comparison of two quantities. The expression containing the relational operator is known as the relational expression. e.g. a < b is relational expression The result of the relational operation is either true (1) or false (0). e.g. 10 < 20 is true 20 < 10 is false C supports six different relational operators: Operator < <= > >= == != Meaning Less than Less than or equal to Greater than Greater than or equal to Equal to Not equal to

Logical Operators: C provides following logical operators: Operator && || ! Meaning And Or Not

These operators are used when we want to check more than one condition e.g. a > b && a = = 10 The mean of above expression is that the value of the a should be greater than b and its value should be 10. An expression, which contains logical operators, is known as the logical expression or compound relational expression. The result of the logical expression is also either true or false.

Assignment Operator: Assignment operators are used to assign some value to the variable. There is only one assignment operator that is = e.g. a = 30; Above expression assign value 30 to a. Also assignment operator can be used for the shorthand assignment operators. It is used to perform arithmetic operation with the variable itself. Simple Expression a=a+1 a = a 23 a=a*4 a=a/5 a = a % 10 Shorthand Operators a += 1 a -= 23 a*=4 a /= 5 a %= 10

The advantages of shorthand operators are: 1. It is easy to write since we have to not write the operand two times. 2. It is easy to read 3. It is more efficient By www.sharebca.com www.twitter.com/HARDIK_RATHOD follow me on twitter 07/09/13 Share BCA.Com A place to learn and share all about BCA Page 3 of 8

C Programming-Operator

Increment and Decrement Operator: C provides two operator increment operator ( ++ ) and decrement operator (--). Increment operator is used to add 1 into the variable previous value. Decrement operator is used to subtract 1 from the variable previous value. e.g. i++ // If initially i value is 10 then after this instruction execution it becomes 11 i-// If initially i value is 10 then after this instruction execution it becomes 9 Increment operator has two formats: one is prefix and another is postfix operator. i++ and ++i When first one is used in assignment it first perform the assignment and then increment the value of i, while later one increment the value of i and then performs assignment. e.g i=10; a= i++; printf(i = %d \t a = %d\n,i,a); This statement print the output i = 11 a = 10 i=10; a= ++i; printf(i = %d \t a = %d\n,i,a); This statement print the output i = 11 a = 11 Same thing is true for the decrement operator.

Bitwise Operator: C provides special operators known as bitwise operators for manipulation (Calculation) of data at bit level. These operators are used for testing the bits, or shifting them right or left. These operators cant be used with the float or double. Operator & | ^ << >> ~ Meaning bitwise And bitwise Or bitwise exclusive or Shift left shift right 1s complement

Special Operator: C supports some other operators, which have some specific purpose and mean. Those operators are known as the special operator. Some special operators are comma operator, sizeof operator, address of operator (&), member selection operator (. and ->), pointer operator (*) Comma Operator: Comma operator is used to link the expression together and entire expression is evaluated from left to right and the right-most expression value is assigned to left side of the assignment operator. e.g v = (x= 10, y = 5, x + y); In above expression first x has assigned value 10, then y has assigned value 5, and then addition operation of x and y is performed and the result is assigned to the v.

sizeof Operator: It is operator, which gives the bytes occupied by the operand in memory. Your operand may be constant, variable or any other qualifier. e.g. m = sizeof(int); // Give the size of integer data type Share BCA.Com A place to learn and share all about BCA Page 4 of 8

By www.sharebca.com www.twitter.com/HARDIK_RATHOD follow me on twitter 07/09/13

C Programming-Operator k = sizeof(14); l = sizeof(p); // Give the no. of bytes occupied by simple value 14 // Give the no. of bytes occupied by variable p

This operator is generally used to determine the size of the array and the structure, which is not known to programmer.

Evaluation of Expression: In C program any mathematical expression is evaluated by the precedence of the operator. The priority of the *, / and % operators is higher so first those expressions are evaluated from left to right. Then next lower priority operators are + and which are also executed from left to right side. Automatic type conversion: C provides different data type and its arithmetic operation. If any expression two operands are different type then lower type is converted into higher type operand and the result is higher type. It is known as automatic type conversion. Following rules are applied during type conversion: 1. If one of the operand is long double then other operands will be converted into long double and result is long double. 2. Else if one of the operand is double, the other will be converted into double and the result is double. 3. Else if one of the operand is float, the other will converted to float and the result will be float. 4. Else if one of the operand is unsigned long int, the other will be converted to unsigned long int and the result will be unsigned long int. 5. Else if one of the operand is long int and the other is unsigned int then a. If unsigned int can be converted to long int, the unsigned int operand will be converted to long int and the result is long int. b. Else both operands will be converted to unsigned long int and the result will be unsigned long int. 6. Else if one of the operands is long int, the other will be converted to long int and the result will be long int. 7. Else if one of the operand is unsigned int, the other will be converted to unsigned int and the result will be unsigned int. After evaluating the mathematical expression, the result is converted to the type of the variable on the left side of the assignment operator (=). Following rules are applied during the assigning the right side value to left side. 1. When the float value is assigned to int, the fractional part is truncated. 2. When the double value is assigned to float, rounding of digit is performed. 3. When long int is assigned to the int, the excess (vFirini) bits are dropped (Deleted).

Casting a value: C compiler automatically performs the type conversion during evaluation of expression. But sometimes we want to force a type conversion in different way then the automatic conversion. For that we convert the variable from one type to another type during evaluation of expression. This is known as casting a value. The general format of the cast is: (type-name) expression By above format the given expression is converted into type specified in bracket. Here the typename should be standard C data type. e.g. x=2/3 Here we get the result 0 because 2 and 3 are integer so the result is integer. But by casting we can get the result 0.666667 x = (float) 2 /3 Here 2 is integer but converted into the float during evaluation by casting.

By www.sharebca.com www.twitter.com/HARDIK_RATHOD follow me on twitter 07/09/13

Share BCA.Com A place to learn and share all about BCA Page 5 of 8

C Programming-Operator

Operator precedence and associativity: Each operator in has precedence and on the basis of that precedence expression is evaluated. e.g. 5+7*2 = 19 true = 24 false because the precedence of the multiplication is higher so first multiplication is performed than addition is performed In C programming language following operators are used and there precedence is based on their rank. Operator Description Rank () Function call 1 [] Array element 1 + Unary plus 2 Unary minus 2 ++ Increment 2 -Decrement 2 ! Logical not operator 2 & Address operator 2 sizeof Size of the variable 2 (type) Casting 2 * Multiplication 3 / Division 3 % Modulus 3 + Binary addition 4 Binary subtraction 4 << Left shift 5 >> Right shift 5 < Less than 6 <= Less than or equal to 6 > Greater than 6 >= Greater than or equal to 6 == Equal to 7 != Not equal to 7 & Bitwise end 8 ^ Bitwise exlusive or (XOR) 9 | Bitwise or (OR) 10 && Logical end 11 || Logical or 12 = Assignment 13 +=, -=, *=, /= Shorthand operator 14 , Comma opearator 15 Problems Write a program to input following item: Quantity sold Unit price Basic salary A sales person getting the 200 Rs. commissions on every item sold. Also he is getting the 2% bonus amount on the total selling amount at the end of month. At last print his commission, bonus amount and (basic salary + bonus + commission). Write a program to solve quadratic equation ax2 + bx + c = 0 In solving equation first determine the value of delta delta = b2 - 4ac If delta < 0 there is infinite number of solution. Share BCA.Com A place to learn and share all about BCA Page 6 of 8

1.

2.

By www.sharebca.com www.twitter.com/HARDIK_RATHOD follow me on twitter 07/09/13

C Programming-Operator If delta = 0 then solution = -b / 2a If delta > 0 then there is two solution solution1 = (-b + sqrt(delta))/2a solution2 = (-b sqrt(delta))/2a Write a program to calculate the depreciation from following equation: depreciation = (purchase price scrap value) / years of service Write a program to calculate the distance travel by the vehicle from following equation: distance = ut + (at2)/2 Where, u = initial speed t = time a = acceleration Write a program to calculate the simple interest and compound interest. Also determine the difference between two differences. simpleSimple interest = p * r * n / 100; Compound interest = p * (1 + r/100) n - p Write a program to convert Fahrenheit to Celsius and vice-versa f = 1.8 * c + 32; Write a program to calculate the area of triangle from the perimeter and length of the side. perimeter = a + b + c; (a, b, and c are three sides of the triangle) s = perimeter / 2; area = sqrt( s * (s a) * (s b) * (s c)); Write a program to calculate the area of triangle from the given base and height area = b * h /2; b = base and h = height

3. 4.

5.

6. 7.

8.

9.

10.

11.

Give the value of following arithmetic expression (It is possible your expression is invalid) I. 25/3 % 2 A. 0 II. 14 % 3 A. 2 III. 14 % -3 A. 2 IV. 14 % -3 A. 2 V. + 9 / 4 + 5 A. 7 VI. 15.25 + - 5.0 A. 10.25 VII. 7.5 % 3 A. Error VIII. (5/3) * 3 + 5 % 3 A. 5 IX. 14 % 3 + 7 % 2 A. 3 X. 21 % (int) 4.5 A. 1 Find the error in following expression and it there is no error then print the appropriate answer. I. x = y = z = 0.5, 2.0, -5.75 A. x = 0.5, y = 0.5, z = 0.5 II. m = ++a * 5; A. a value is incremented by 1 and then multiplied with 5 then assigned to m. III. y = sqrt(100); A. y = 10 IV. p *= x /y; A. first x/y then z is multiplied by x/y and assigned to z V. s = /5; A. Compilation error VI. a = 5++ - 20 * 2; A. 38 Determine the value of following expression if a=5, b=10 and c = -6 I. a > b && a < c A. 0 II. a < b && a > c A. 1 III. a = = c || b > a A. 1 IV. b > 15 && c < 0 || a > 0 A. 1 V. (a/2.0 = = 0.0 && b/2.0 != 0.0) || c< -10 A. 0 Out of the following option which option is wrong I. P+=++Q+ ++R Share BCA.Com A place to learn and share all about BCA Page 7 of 8

12.

By www.sharebca.com www.twitter.com/HARDIK_RATHOD follow me on twitter 07/09/13

C Programming-Operator II. P+=++Q+++R III. P+=(++Q)+(++R) IV. P+=++Q+(++R) What will be the output of the following statement? printf("%d",scanf("%d%d%d",&i,&j,&k)); Ans. Less than or equal to 3 (Depends on the how many value your computer has read successfully)

13.

By www.sharebca.com www.twitter.com/HARDIK_RATHOD follow me on twitter 07/09/13

Share BCA.Com A place to learn and share all about BCA Page 8 of 8

Vous aimerez peut-être aussi