1. C-Programming
Walchand Institute of Technology (RC1131), Solapur Page 1
Handout#3
Assignment/Program Statement:
Write a C program using variables, constants, data types, expressions and applying
type casting and type conversion rules.
Learning Objectives:
Students will be able to
- explain basic concepts of C such as variables, constants, data types
- write C code using variables, constants, data types, expressions
- apply type casting and type conversion rules in C
Theory:
What is Program?
A program is a sequence of instructions (called programming statements),
executing one after another - usually in a sequential manner
Variable:
In programming, a variable is a container (storage area) to hold data.
To indicate the storage area, each variable should be given a unique name
(identifier).
Variable names are just the symbolic representation of a memory location.
For example: int marks = 65;
In this example, "marks" is a variable of integer type. The variable is holding
value 65.
The value of a variable can be changed, hence the name 'variable'.
In C programming, you have to declare a variable before you can use it.
65
marks
Memory Representation
2. C-Programming
Walchand Institute of Technology (RC1131), Solapur Page 2
Constants/Literals:
A constant is a value or an identifier whose value cannot be altered in a
program.
For example:
const double PI = 3.14
Here, PI is a constant. Basically what it means is that, PI and 3.14 is same
for this program.
Following are the types of constants
1) Integer constants
2) Floating-point constants
3) Character constants
4) String constants
[Reference: http://www.programiz.com/c-programming/c-variables-constants ]
Data Types in C:
Data types simply refer to the type and size of data associated with variables
and functions.
The type of a variable determines how much space it occupies in storage and
how the bit pattern stored is interpreted.
C language supports 2 different type of data types – (1) Primary
(Fundamental) data types and (2) Derived data types
(1) Primary data types:
o These are fundamental data types in C namely integer(int),
floating(float), character(char) and void.
(2) Derived data types
o Derived data types are like arrays, pointers, structures and
enumeration.
[Reference: http://www.tutorialspoint.com/cprogramming/c_data_types.htm ,
http://www.programiz.com/c-programming/c-data-types and
http://www.studytonight.com/c/datatype-in-c.php ]
3. C-Programming
Walchand Institute of Technology (RC1131), Solapur Page 3
Operators in C:
An operator is a symbol that tells the compiler to perform specific
mathematical or logical functions.
C language provides the following types of operators -
1. Arithmetic Operators
2. Relational Operators
3. Logical Operators
4. Bitwise Operators
5. Assignment Operators
6. Misc Operators
[1] Arithmetic Operators:
The following table shows all the arithmetic operators supported by the C
language.
Operator Description Example
+ Adds two operands. A + B = 30
− Subtracts second operand from the first. A − B = 10
∗ Multiplies both operands. A ∗ B =
200
∕ Divides numerator by de-numerator. B ∕ A = 2
% Modulus Operator and remainder of after an integer
division.
B % A = 0
++ Increment operator increases the integer value by one. A++ = 11
-- Decrement operator decreases the integer value by one. A-- = 9
Assume variable A holds 10 and variable B holds 20.
Program:
#include<stdio.h>
void main()
{
4. C-Programming
Walchand Institute of Technology (RC1131), Solapur Page 4
int A = 10, B =20, C;
C = A + B;
printf(“n C=%d”, C);
}
Output: C=30
[2] Relational Operators:
The following table shows all the relational operators supported by C.
Operator Description Example
== Checks if the values of two operands are equal or
not. If yes, then the condition becomes true.
(A == B) is not
true.
!= Checks if the values of two operands are equal or
not. If the values are not equal, then the
condition becomes true.
(A != B) is true.
> Checks if the value of left operand is greater than
the value of right operand. If yes, then the
condition becomes true.
(A > B) is not true.
< Checks if the value of left operand is less than
the value of right operand. If yes, then the
condition becomes true.
(A < B) is true.
>= Checks if the value of left operand is greater than
or equal to the value of right operand. If yes,
then the condition becomes true.
(A >= B) is not
true.
<= Checks if the value of left operand is less than or
equal to the value of right operand. If yes, then
the condition becomes true.
(A <= B) is true.
[3] Logical Operators:
Following table shows all the logical operators supported by C language.
5. C-Programming
Walchand Institute of Technology (RC1131), Solapur Page 5
Operator Description Example
&& Called Logical AND operator. If both the operands are
non-zero, then the condition becomes true.
(A && B)
is false.
|| Called Logical OR Operator. If any of the two operands
is non-zero, then the condition becomes true.
(A || B) is
true.
! Called Logical NOT Operator. It is used to reverse the
logical state of its operand. If a condition is true, then
Logical NOT operator will make it false.
!(A && B)
is true.
[Reference: http://www.tutorialspoint.com/cprogramming/c_operators.htm ]
Type Conversion and Type casting in C
Type conversion occurs when the expression has data of mixed data types.
Examples of such expression include converting an integer value in to a float
value, or assigning the value of the expression to a variable with different
data type.
For example: int sum=17, count=5;
float mean;
mean = sum/count;
In type conversion, the data type is promoted from lower to higher because
converting higher to lower involves loss of precision and value.
Forced Conversion:
Forced conversion occurs when we are converting the value of the larger
data type to the value of the smaller data type or smaller data type to the
larger data type.
For example, consider the following assignment statement
int a;
float b;
a=5.5;
b=100;
6. C-Programming
Walchand Institute of Technology (RC1131), Solapur Page 6
Case-1: a=5.5 ; a is declared as int so the float value 5.5 cannot be stored in
a. In such a case float is demoted to an int and then its value is stored. Hence
5 is stored in a.
Case-2: b=100; since b is a float variable 100 is promoted to 100.000000
and then stored in b.
In general, the value of the expression is promoted or demoted depending on the
type of variable on left hand side of =.
Consider the following statement
int count = 5;
float sum = 17.5, mean;
mean = sum / count;
In the above statement, one operand is int where as other is float. During
evaluation of the expression the int would be promoted to floats and the
result of the expression would be a float. And result float value is assigned to
float mean variable. If mean declared as int then result will be demoted to int
type.
Forced conversion may decrease the precision.
Type casting is the preferred method of forced conversion
[Reference: http://datastructuresprogramming.blogspot.in/2010/02/type-
conversion-and-type-casting-in-c.html]
Type Casting (or) Explicit Type conversion:
Explicit type conversions can be forced in any expression, with a unary
operator called a cast.
Type casting is a way to convert a variable from one data type to another
data type.
Syntax:
(type-name) expression;
Example:
int n=5.5;
7. C-Programming
Walchand Institute of Technology (RC1131), Solapur Page 7
float x;
x=(float)n;
printf(“n X=%f”,x);
The above statement will convert the value of n to a float value before assigning to
x but n is not altered.
Program:
main() {
int sum = 17, count = 5;
float mean;
mean = (float) sum / count;
printf("n Mean = %f ", mean );
}
Output: Mean = 3.000000 /*without typecasting*/
Output: Mean = 3.400000 /*with typecasting*/
Conclusion:
Thus C programs, using variables, constants, data types, expressions and applying
type casting and type conversion rules, is implemented.
Learning Outcomes:
At the end of this assignment, students are able to
- explain basic concepts of C such as variables, constants, data types
- write C code using variables, constants, data types, expressions
- apply type casting and type conversion rules in C