SlideShare a Scribd company logo
1 of 380
C Programming Language
11/8/2022 2
History of ‘C’
ALGOL International Group
BCPL
B
Traditional C
K & R C
ANSI C
ANSI / ISO C
Martin Richards
Ken Thompson
Dennits Ritchie
Kernighan and Ritchie
ANSI Committee
ISO Committee
1960
1967
1970
1972
1978
1989
1990
11/8/2022 3
TYPES OF ‘C’ COMPILER
1. Borland ‘C’ Compiler
2. Turbo ‘C’ Compiler
3. Microsoft ‘C’ Compiler
4. ANSI ‘C’ Compiler
Why are using ‘C’
• It is a Structured Programming Language
• High – Level Language
• Machine Independent Language
• It allows software developers to develop programs
without worrying about the hardware platforms where
they will be implemented
11/8/2022 4
Characteristics of C
We briefly list some of C's characteristics that define the language
 Small size
 Extensive use of function calls
 Loose typing -- unlike PASCAL
 Structured language
 Low level (Bitwise) programming readily available
 Pointer implementation - extensive use of pointers for memory, array,
structures and functions.
C has now become a widely used professional language for various reasons.
• It has high-level constructs.
• It can handle low-level activities.
• It produces efficient programs.
• It can be compiled on a variety of computers.
11/8/2022 5
Steps in Learning C
Character set
Constants, variable
And Data types
Control statements
Functions
Files
Structures and
Unions
Pointers
Arrays
Data Structures
Algorithms
Programs
11/8/2022 6
C’S Program Structure
Documentation section
Preprocessor section
Definition section
Global declaration section
main()
{
Declaration part;
Executable part;
}
Sub program section
{
Body of the subprogram
}
11/8/2022 7
C’s Character set
C Character set
Source Character
set
Execution
Character set
Alphabets
A to Z & a to z
Escape Sequences
a,b,t,n
Digits
0 to 9
Special Characters
+,-,<,>,@,&,$,#,!
11/8/2022 8
C TOKENS
C TOKENS
Keywords
Identifiers
Strings
Special Symbols
Constants
Operators
-15.5
100
main
amount
float
while
“ABC”
“YEAR”
+ - * /
[ ]
{ }
11/8/2022 9
C’s Identifiers
Program elements where
Identifiers are used
Variables
Functions
Arrays
Function parameters
Macros and macro parameters
Type definitions
Rules for Using Identifiers
 Only Letter, Digits and Underscore(_)
 1st character should be letter or _
 Both Upper/lower case can be used
 It can be of any length
 No space and Special symbol is used
 It cant be a keyword
11/8/2022 10
C’s keyword
 Basic Building Block of the Program
 These are the Reserved words
 These word’s cant be changed
C keywords
auto
break
case
char
const
continue
default
do
double
else
enum
extern
float
for
goto
if
int
long
register
return
short
signed
sizeof
static
struct
switch
typedef
union
unsigned
void
volatile
while
11/8/2022 11
Data Types
 This are the type of the data that are going to access within
the program.
C’s Data Type
Primary User defined Derived Empty
Char
Int
Float
Double
typedef
Arrays
Pointers
Structures
Union
Void
11/8/2022 12
C’s Data types cont.
Integer
Signed
Unsigned
Int (%d)
2 bytes,-32768 to 32767
Short int (%d)
1 bytes, -128 to 127
Long int (%ld)
4 bytes,
-2,147,483,648 to 2,147,483,647
Unsigned Int (%d)
2 bytes, 0 TO 65, 535
Unsigned shot int (%d)
1 bytes, 0 TO 255
Unsigned Long int (%ld)
4 bytes,
0 TO 4,294,967,295
The primary data types are further classified as below.
Integers are the whole numbers, both positive and negative.
11/8/2022 13
C’s Data types cont.
Float Type
Float (%f or %g)
4 bytes, 3.4E -38 to 3.4E +38
Double (%lf)
8 bytes, 1.7E -308 to 1.7E +308
Long Double (%lf)
10 bytes, 3.4E -4932 to 1.1E+4932
Float are the numbers which contain fractional parts, both
Positive and Negative.
11/8/2022 14
C’s Data types cont.
Character Type
Char (%c)
1 bytes, -128 to 127
Signed Char (%c)
1 bytes, -128 to 127
Unsigned Char (%c)
1 bytes, 0 to 255
Char are the characters which contain alpha-numeric character.
Characters are usually stored in 8 bits (one byte) of internal storage
The void is the Null Data type.
11/8/2022 15
C’s Variables
• A variable is a data name as well as identifier that may be
used to store a data value.
Rules for Naming the Variables
a) A variable can be of any combination of alphabets, digits and
underscore.
b) The first character of the variable can’t be digits.
c) The length of the variable can’t be exceeded by 8.(ANSI C – 32
Character)
d) No commas, blanks or special symbol are allowed within a variable
name.
e) Uppercase and lowercase are significant. That is, the variable Total is
not the same as total or TOTAL.
f) It should not be a keyword.
g) White space is not allowed.
11/8/2022 16
C’s Variables cont.
Variable Declaration
It tells the computer what the variable name and type of the data
Syntax data_type a1,a2,a3……..an;
Description data_type is the type of the data.
a1,a2,a3……an are the list of variables
Example int number;
char alpha;
float price;
11/8/2022 17
C’s Variables cont.
Initializing Variables
Initialization of variables can be done using assignment operator(=)
Syntax a1 = c1 ;(or)
data_type a1 = c1;
Description a1 is the variable
c1 is the constant
data_type is the type of the data
Example int a1 = 29;
float f1 = 34.45;
char c1 = ‘d’
11/8/2022 18
C’s constant
C constant
Numeric constant
Character constant
Integer constant
eg: roll_number = 12345;
Real constant
eg: pi = 3.14;
Single Character constant
eg: ch = ‘c’; ch = ‘3’;
String constant
eg: name = “palani”
The item whose values can’t be changed during execution of program are called constants
11/8/2022 19
C’s constant Conti…
Integer constant
eg: roll_number = 12345;
Hexadecimal constant
Eg. 0x23
Octal constant
Eg. 043
Decimal Constant
Eg. 35
Real Constant
eg: pi = 3.14;
Double Precision Constant
Single Precision Constant
11/8/2022 20
Rules for constructing Integer constants
1. An integer constant may be positive or negative (Default sign is
positive).
2. An integer constant should not have a decimal point.
3. No commas and blank spaces are allowed in an integer constant.
4. An integer constant, should not use exponent e.
The suffix u or U is used for denoting unsigned int constants, I or L is
used for denoting long int constants, and s is used for denoting short int
constants.
Positive integer Constants 123 4000 +7257
Negative integer Constants -78 -9876 -23
Unsigned integer Constants 1234u 5678u 21057u
Short integer Constants -5008s -23s 1234s
Long integer Constant -40880211 0210578L 0x52123L
Unsigned short integer Constants 1234us 5008us 8476us
Unsigned long integer Constants 1234567890u
l
9876543210u
l
11/8/2022 21
Real Constants are often called as Floating – point constants.
Real constants is classified as two types.
1. Fractional form.
2. Exponential form.
Rules for constructing real constants (fractional form)
1. A real constant may be positive or negative (Default sign in
positive
2. A real constant must have a decimal point.
3. No commas and blank spaces are allowed in a real
constant.
Example:
0.0001 -0.963 485.98
+123.456
727.01 0.987 -.8765 +001.05
11/8/2022 22
Rules for constructing Real Constants (Exponential
Form)
1. The mantissa part and the exponential part
should be separated by a letter e.
2. The mantissa part and the exponential part may
be positive or
negative (Default sign is positive)
3. The mantissa and the exponent part must have at
least one digit.
4. No commas and blank spaces are allowed in a
real constant.
Example:
+3.2e+5 3.4e5 -8.2e-5
-10.9e5 9.7e-10 0.0025e8
11/8/2022 23
Rules for constructing String Constants
1. A string constant may be a single alphabet or a digit, or a
special
character or sequence of alphabets or digits enclosed in
double
quotes.
2. Every string constant ends up with a NULL character,
which is
automatically assigned.
Example:
“w” “100” “Madhu” “ABC 123”
“Good_Morning” “s1000” “219.71”
“30-01-1978”
11/8/2022 24
C’ Delimiters
Symbol Name Meaning
# Hash Pre-processor directive
, comma Variable delimiters (to separate list of
variables)
: colon Label delimiters
; Semi colon Statement delimiters
() parenthesis Used in expressions or in functions
{} Curly braces Used in blocking ‘C’ structure
[] Square braces Used along with arrays
Delimiters are the symbols, which has some syntactic meaning and has
got significance.
11/8/2022 25
C’ Statements
Statements
Expression Statement Compound Statement Control Statement
Statement can be defined as set of declarations (or) sequence of action
All statements in ‘C’ ends with semicolon(;) except condition and
control statement
11/8/2022 26
C’ Statements
Statements
Assignment statement
name = “palani”;
number = 12;
Sex = ‘m’;
Null statement
;
11/8/2022 27
Expression Statement
1. An Expression is a combination of constant, variables, operators, and function calls written in
any form as per the syntax of the C language.
2. The values evaluated in these expressions can be stored in variables and used as a part for
evaluating larger expressions.
3. They are evaluated using an assignment statement of the form.
variable = expression;
4. For Example,
age = 21;
result = pow(2,2);
simple_interest = (p * n * r) / 100;
Algebraic Expression Equivalent C Expression
(mnp + qr – at) (m*n* p+q*r-s*t)
(a+b+c) (x+y+z) (a+b+c)*(x+y+z)
abc / x+y (a*b*c) / (x+y)
8a3 + 3a2 + 2a 8*a*a*a+3*a*a+2*a
(a-b)+(x-y) / mn ((a-b)+(x-y)) / (m*n)
8.8(a+b-c) + c / pq 8.8 * (a+b-c) + (c / (p*q))
11/8/2022 28
Compound
Statements
1. A group of valid C expression statements placed within an opening flower brace ‘{‘ and
closing flower brace ‘}’ is referred as a Compound Statements.
2. For Example,
{
X = (A + (B * 3) – C);
Y = A + B * 3;
Z = A * (B * 3 – C);
}
1. This statement normally executed sequentially as they appear in the program.
2. In some situations where we may have to change the order of execution of statements until
some specified conditions are met.
3. The control statement alter the execution of statements depending upon the conditions
specified inside the parenthesis.
4. For Example,
if (a == b) if ((x < y) && (y > z))
{ {
-------- -----------
-------- -----------
} }
Control Statements
11/8/2022 29
Constant Meaning
‘a’ Audible alert (bell)
‘b’ Back space
‘f’ Form feed
‘n’ New line
‘r’ Carriage return
‘t’ Horizontal tab
‘v’ Vertical tab
‘’’ Single quote
‘”’ Double quote
‘?’ Question mark
‘’ Backslash
‘0’ Null
ESCAPE SEQUENTIAL CHARACTER OR
BACKSLASH CHARACTER CONSTANTS
11/8/2022 30
Operators
An operator is a symbol that specifies an operation to be performed
on the operands
 Some operator needs two operands (binary)
 Eg: a+b;
‘+’ is an operator and ‘a’ and ‘b’ are the operands
 Some operator needs one operand (unary)
 Eg: ++a;
‘++’ is an operator and a is the operand
11/8/2022 31
Types of Operators
operators
Arithmetic operator
Relational operators
Logical operator
Assignment operator
Increment and Decrement Operator (Unary Op.)
Conditional operator (Ternary operator)
Bitwise operator
Special operator
11/8/2022 32
Arithmetic Operators
Operator Meaning Examples
+ Addition 1+2 = 3
- Subtraction 3 -2 = 1
* Multiplication 2*2 = 4
/ Division 2/2 = 1
% Modulo division 10/3= 1
This operators help us to carryout basic arithmetic operations such
addition, subtraction, multiplication, division
Operation Result Examples
Int/int int 2/2 = 1
Real/int real 7.0/2 = 3.5
Int/real real 7/2.0 = 3.5
Real/real real 7.0/2.0 = 3.5
11/8/2022 33
Relational Operator
• This are used to compare two or more operands.
• Operands can be variables, constants or expression.
• eg: comparison of two marks or two values.
Operator Meaning Example Return value
< is less than 5<6 1
<= is less than or equal to 4<=4 1
> is greater than 5>7 0
>= is greater than or equal to 7>=5 0
== equal to 6==6 1
!= not equal to 5!=5 0
11/8/2022 34
Logical Operator
Operator Meaning Example Return value
&& Logical And (9>2) && (6>4) 1
|| Logical OR (9>2) || (3.4) 1
! Logical Not 4 ! 4 0
AND truth table
True True True
True False False
False True False
False False False
OR truth table
True True True
True False True
False True True
False False False
• This operators are used to combine the results of two or more
conditions.
11/8/2022 35
Assignment Operator
 This are used to assign a value or an expression or a variable to another variable
 eg: a = 10; n1 = 20;
Syntax:
identifier = expression;
a) Compound Assignment
This operator are used to assign a value to a variable in order to assign a new value
to a variable after performing a specified operation.
eg: a+=10,n1-=20;
b) Nested Assignment (Multiple)
This operator are used to assign a single value to multiple variables
eg: a=b=c=d=e=10;
11/8/2022 36
List of Shorthand or Compound Assignment Operator
Operator Meaning
+= Assign Sum
-= Assign Difference
*= Assign Product
/= Assign Quotient
%= Assign Remainder
~= Assign One’s Complement
<<= Assign Left Shift
>>= Assign Right Shift
&= Assign Bitwise AND
!= Assign Bitwise OR
^= Assign Bitwise X - OR
11/8/2022 37
Increment and Decrement operator
• C provide two operator for incrementing a value or decrementing a
value
a) ++ Increment operator (adds one to the variable)
b) -- Decrement operator (Minus one to the variable)
eg: a++ (if a= 10 then the output would be 11)
Operator Meaning
++X Pre increment
X++ Post increment
--X Pre decrement
X-- Post decrement
11/8/2022 38
Increment and Decrement operator Conti…
Expression Result
+ + X 4
X + + 3
- - X 2
X - - 3
If the value of the operand x is 3 then the various expressions and their results
are
The pre – increment operation (++X) increments x by 1 and then assign
the value to x. The post – increment operation (X++) assigns the value to x and
then increments 1. The pre-decrement operation ( --X) decrements 1 and then
assigns to x. The post – decrement operation (x--) assigns the value to x and
then decrements 1. These operators are usually very efficient, but causes
confusion if your try to use too many evaluations in a single statement.
11/8/2022 39
Conditional Operator
• It is used check the condition and execute the statement depending
upon the condition
Syntax Condition?exp1:exp2
Description The ‘?’ operator act as ternary
operator, it first evaluate the
condition, if it is true then exp1 is
evaluated if the condition is false
then exp2 is evaluated
Example a= 2; b=3
ans = a>b?a:b;
printf (ans);
11/8/2022 40
Bitwise Operator
• This are used to manipulate the data at bit level
• It operates only on integers
Operator Meaning
& Bitwise AND
| Bitwise OR
^ Bitwise XOR
<< Shift left
>> Shift right
~ One’s complement
11/8/2022 41
Bitwise Operator cont.
Bitwise AND (both the operand
should be high for 1)
0 0 0
1 1 1
Bitwise XOR (the two operands
should be different for 1)
0 0 1
1 1 0
• The truth table for Bitwise AND,OR and XOR
Bitwise OR (either of the operand
should be high for 1)
0 0 0
1 1 1
Eg: x = 3 = 0000 0011
y = 4 = 0000 0100
x&y = 0000 0000
Eg: x = 3 = 0000 0011
y = 4 = 0000 0100
x|y = 0000 0111
Eg: x = 3 = 0000 0011
y = 4 = 0000 0100
x ^ y = 0000 0111
11/8/2022 42
Bitwise Operator cont.
Bitwise One’s Complement
The one’s complement operator (~) is a unary operator, which causes the bits of the
operand to be inverted (i.e., one’s becomes zero’s and zero’s become one’s)
For Example, if x = 7
i.e 8 – bit binary digit is 0 0 0 0 0 1 1 1
The One’s Complement is 1 1 1 1 1 0 0 0
Bitwise Left Shift Operator
The Left shift operator (<<) shifts each bit of the operand to its Left. The general form or
the syntax of Left shift operator is
variable << no. of bits positions
if x = 7 (i.e., 0 0 0 0 0 1 1 1) the value of y in the expression
y = x <<1 is 14
0 0 0 0 1 1 1 0 = 14 since it shifts the bit position to its left by one bit. The value stored
in x is multiplied by 2N (where n is the no of bit positions) to get the required value. For example, if
x = 7 the result of the expression y = x << 2 is y = x * 22 (i.e. 28)
11/8/2022 43
Bitwise Operator cont.
Bitwise Right Shift Operator
The Right shift operator (>>) shifts each bit of the operand to its Right. The general
form or the syntax of Right shift operator is
variable >> no. of bits positions
if x = 7 (i.e., 0 0 0 0 0 1 1 1) the value of y in the expression
y = x >> 1 is 3
0 0 0 0 0 0 1 1 = 3 since it shifts the bit position to its right by one bit. The value stored
in x is divided by 2N (where n is the no of bit positions) to get the required value. For example, if x
= 7 the result of the expression y = x << 2 is y = x / 22 (i.e. 1). If you use the left shift operator i.e.
x = x << 1 the value of x will be equal to 2 (i.e., 0 0 0 0 0 0 1 0) since the lost bit cannot be taken
back.
11/8/2022 44
Some of the special operators used in C language. These operators are
referred as separators or punctuators.
1. Ampersand (&) 2. Comma (,)
3. Asterisk ( * ) 4. Ellipsis (…)
5. Braces ({}) 6. Hash (#)
7. Brackets ([]) 8. Parenthesis (())
9. Colon (:) 10. Semicolon(;)
Special Operator
11/8/2022 45
Special Operator
Operator Meaning
Ampersand
(&)
Ampersand (&) also referred as address operator usually precedes the
identifier name, which indicates the memory location (Address) of the
identifier.
Asterisk
( * )
Asterisk ( * ) also referred as an indirection operator, is an unary operator
usally precedes the identifier name, which indicates the creation of a
pointer operator.
Braces
( {} )
The opening ( { ) and closing ( } ) braces indicate the start and end of
compound statement or a function. A semicolon is not necessary after
the closing brace of the statement, except in case of structure
declaration.
Brackets
( [ ] )
Brackets [ ] also referred as array subscript operator is used to indicate
single and multi dimensional array subscripts.
11/8/2022 46
Special Operator
Operator Meaning
Colon ( : ) Colon ( : ) is used in labels.
Comma ( , ) Comma ( , ) operator is used to link the related expressions together.
Comma used expressions are linked from left to right and the value of
the right most expression is the value of the combined expression. The
comma operator has the lowest precedence of all operators.
For Example: sum = (x = 5, y = 3, x + y); The result will be sum = 8
Ellipsis (. . .) Ellipsis (…) are three successive periods with no white space in between
them. It is used in function prototypes to indicate that this function can
have any number of arguments with varying types.
For Example: void fun(char cName, int iAge, float fSalary, . . .);
The above declaration indicates that fun () is a function that
takes at least three arguments, a char, an int and a float in the order
specified but can have any number of additional arguments of any type.
Hash ( # ) Hash ( # ) also referred as pound sign is used to indicate preprocessor
directives.
11/8/2022 47
Special Operator
Operator Meaning
Parenthesis
( () )
Parenthesis ( ) also referred as function call operator is used to indicate
the opening and closing of function prototypes, function calls, function
parameters, etc., Parenthesis are also used to group expressions, and
there by changing the order of evaluation of expressions.
Semicolon ( ; ) Semicolon ( ; ) is a statement terminator. It is used to end a C statement.
All valid C statements must end with a semicolon. Which the C compiler
interprets as the end of the statement.
Sizeof ( ) The sizeof operator is not a library function but a keyword, which returns
the size of the operand in bytes. The sizeof operator always, precedes its
operand. This operator can be used for dynamic memory allocation.
Example: 1. sizeof(char) = 1
2. sizeof(int) = 2
3. sizeof(float) = 4
4. sizeof(doubles) = 8
Operator Precedence and
Associativity of Operator
11/8/2022 49
1. Each operator in C has a precedence associated with it.
2. This precedence is used to determine how an expression involving more than one operator is
evaluated.
3. These are distinct levels of precedence and an operator may belong to one of these levels.
4. The operators at the higher level of precedence are evaluated first.
5. The operators of the same precedence are evaluated either from ‘left to right’ or from ‘right to left’,
depending on the level.
6. That is known as the associativity property of an operator.
What is Precedence Rule and Associative Rule
11/8/2022 50
Arithmetic operators precedence
• The precedence of an operator gives the order in which operators
are applied in expressions: the highest precedence operator is
applied first, followed by the next highest, and so on.
• eg: Arithmetic operator precedence
Precedence operator
High *,/,%
Low +,-
The arithmetic expression evaluation is carried out using two phases
from left to right through the expressions
11/8/2022 51
Example:
if (x == 10 +15 && y <10)
The precedence rules say that the addition operator has a higher priority than the logical operator (&&)
and the relational operators (== and <). Therefore, the addition of 10 and 15 is executed first. This is
equivalent to:
if (x == 25 && y < 10)
The next step is to determine whether x is equal to 25 and y is less than 10, if we assume a value of 20
for x and 5 for y, then
x == 25 is FALSE (0)
y <10 is TRUE (1)
Note that since the operator < enjoys a higher priority compared to ==, y < 10 is tested first and then x
==25 is tested.
Finally we get,
if (FALSE && TRUE)
Because one of the conditions is FALSE, the complex condition is FALSE.
In the case of &&, it is guaranteed that the second operand will not be evaluated if the first is zero and
in the case of || , the second operand will not be evaluated if the first is non – zero.
Relational operators precedence
11/8/2022 52
Precedence and Associativity Table
• The following table lists all the operators, in order of
precedence, with their associativity
Operators Operations Associativity priority
() Function call Left to Right 1
[] Square brackets
-> Structure operator
. Dot operator
+ Unary plus Right to Left 2
- Unary minus
++ Increment
-- Decrement
! Not
11/8/2022 53
Precedence and Associativity Table cont.
Operators Operations Associativity priority
~ Complement Right to Left 2
* Pointer operation
& Address operator
Sizeof Size of operator
type Type cast
* Multiplication Left to Right 3
/ Division
% Modulo
+ Addition Left to Right 4
- Subtraction
11/8/2022 54
Precedence and Associativity Table cont.
Operators Operations Associativity priority
<< Left shift Left to Right
Left to Right
5
6
>> Right shift
< is less than
<= is less than or equal to
> is greater than
>= is greater than or equal to
== equal to
!= not equal to
& Bitwise AND Left to Right 7
| Bitwise OR
^ Bitwise XOR
11/8/2022 55
Precedence and Associativity Table cont.
Operators Operations Associativity priority
&& Logical And Left to Right 8
|| Logical OR
?= Conditional Right to Left 9
=,*=,-
=,&=,+=,^=,!=,
<<=,>>=
Assignment Right to Left 10
, comma Left to Right 11
11/8/2022 56
Rules for evaluation of expression
• Evaluate the sub expression from left to right if parenthesized.
• Evaluate the arithmetic expression from left to right using the rules of
precedence.
• The highest precedence is given to the expressions with in
parenthesis.
• Apply the associative rule if more operators of the same precedence
occurs.
• Evaluate the inner most sub expression if the parenthesis are nested.
11/8/2022 57
Sample Expression
• Exp = a - 2 * a * b + b / 4
Let us have a=10,b=20
exp = 10 - 2 * 10 * 20 + 20 / 4
Phase I exp = 2*10*20 , 20/4 will be evaluated.
phase II exp = 10-400+5 will be evaluated.
Result exp = -395.
11/8/2022 58
Expression Evaluation
Let us see some examples for evaluating expression.
Let a = 5, b = 8, c = 2.
x = b / c + a * c
4 10
14
11/8/2022 59
Let us see some examples for evaluating expression.
Let a = 5, b = 8, c = 2.
y = a + (b * 3) - c
29
27
24
Expression Evaluation
TYPE CONVERSION
OR
TYPE CASTING
What is Type Conversion or Type Casting
Type Casting means One data type converted into another data type. This is called Type
conversion or Type casting.
Example:
1. Integer into floating point number
2. Character into integer
3. Floating point number into Integer Number
Type conversion is classified into two types.
1. Implicit Type Conversion (Automatic Type Conversion)
2. Explicit Type Conversion (Manual Type Conversion)
Type Conversion
Implicit
Conversion
Explicit
Conversion
Automatic
Conversion
Casting
Operation
Type Conversion Hierarchy
short char
int
unsigned int
long int
unsigned long int
float
double
long double
Implicit
Type
Conversion
Explicit
Type
Conversion
Implicit Type Conversion
1. The Implicit Type Conversion is known as Automatic Type Conversion.
2. C automatically converts any intermediate values to the proper type so that the expression can be
evaluated without loosing any significance.
3. Implicit type Conversion also known as Converted Lower order data type into Higher order data type.
4. Implicit Type Conversion also known as Widening.
Example:
int a, b;
float c;
c = a + b;
Print c;
float a,b;
int c;
c = a + b; // This is Wrong
Print c;
Explicit Type Conversion
1. The Explicit Type Conversion is, there are instances when we want to force a type conversion in a way
that is different from the automatic conversion.
2. The Explicit Type Conversion is Converted Higher order data type into Lower order data type.
3. The Explicit type Conversion is also known as borrowing.
4. The Explicit type conversion forces by a casting operator.
Disadvantage of Explicit Type Conversion
1. float to int causes truncation of the fractional part.
2. double to float causes rounding of digits.
3. Long int to int causes dropping of the excess higher order bits.
The general form of the casting is
(type_name) expression;
Where type_name is one of the standard C data type.
The expression may be a constant, variables or an expression.
For Example:
float a, b;
int c;
c = (int) a + (int) b;
Print c;
11/8/2022 65
Use of Casts
Example Action
x = (int) 7.5 7.5 is converted to integer by truncation.
a = (int) 21.3 / (int) 4.5 Evaluated as 21 / 4 and the result would be 5.
b = (double) sum / n Division is done in floating point mode.
y = (int) (a + b) The result of a + b is converted to integer.
z = (int) a + b a is converted to integer and then added to b.
p = cos ((double) x) Converts x to double before using it.
Input And Output Functions
11/8/2022 67
Ip / Op Statements
 We have two methods for providing data to the program.
a) Assigning the data to the variables in a program.
b) By using the input/output statements.
 ‘c’ language supports two types of Ip / Op statements
 This operations are carried out through function calls.
 Those function are collectively known as standard I / O library
11/8/2022 68
Ip / Op Statements cont.
Ip / Op Functions
Unformatted Ip / Op statements
Input Output
getc() putc()
getch() putch()
Gets() puts()
Formatted Ip / Op statements
Input Output
Scanf() printf()
fscanf() fprintf()
11/8/2022 69
Unformatted Ip / Op statements
getch() function
Syntax char variable = getch();
Description char is the data type
of the variable;
getch() is the function
Example char x = getch();
putch (x);
• These statements are used to input / output a single / group of characters from / to
the input / output device.
Single character Input/output function
putch() function
Syntax putch (character variable);
Description char variable is the valid ‘c’
variable of the type of char
data type.
Example char x ;
putch (x);
11/8/2022 70
Unformatted Ip / Op statements
cont.
gets() function
Syntax gets (char type of array
variable);
Description valid ‘c’ variable declared
as one dimensional array.
Example char s[10];
gets (s);
Group of character Input / output function.
 Gets() and puts are used to read / display the string from / to the
standard input / output device.
puts() function
Syntax puts (char type of array
variable)
Description valid ‘c’ variable declared
as one dimensional array.
Example char s[10];
gets (s);
puts (s);
11/8/2022 71
Sample Program
#include<stdio.h>
Void main()
{
char name[10];
char address[20];
Puts(“Enter the name : ”);
gets(name);
puts(“Enter the address : ”);
gets(address);
puts(“Name = “)
puts(name);
puts(“Address = “);
puts(address);
}
11/8/2022 72
Formatted Ip / Op statements
 It refers to Input / Output that has been arranged in a particular format.
 Using this statements, the user must specify the type of data, that is going to
be accessed.
scanf() (This function is used to enter any combination of input).
Syntax scanf (“control strings”,var1,var2…..var n);
Description control strings is the type of data that user going to access
via the input statements.
var1,var2 are the variables in which the data’s are stored.
Example int n;
scanf (“%d”, &n);
11/8/2022 73
Formatted Ip / Op statements
 Control strings
i) It is the type of data that user is going to access via the input statement
ii) These can be formatted . iii) Always preceded with a ‘%’ symbol.
Format code Variable type Display
%c Char Single character
%d Int Decimal integer -32768 to 32768
%s Array of char Print a Strings
%f Float or double Float point value without exponent
%ld Long int Long integer -65536 to 65535
%u Int Unsigned decimal integer
%o Int Octal integer number without leading zero
%x Int Hexadecimal integer number without
leading 0x
%e Float or double Float point values in exponent form
%h int Short integer
11/8/2022 74
Rules for scanf()
 The control strings must be preceded with ‘%’ sign and must be within quotations.
 If there is a number of input data items, items should be separated by commas and
must be preceded with ‘&’ sign except for char data types.
 The control strings and the variables going to input should match with each other.
 It must have termination.
 The scanf() reads the data values until the blank space in numeric input.
Apart from ‘%’ it can have ‘*’ sign. This is used to ignore the values inputted.
eg: scanf(“%d%d%*d%*d%d”,&I,&j,&k);
if the input is 10 20 3040 50
The output will be i = 10, j = 20, k = 50;
11/8/2022 75
Printf()
printf() (This function is used to display the result or the output data on
to screen)
Syntax printf (“control strings”,var1,var2…..var n);
Description Control strings can be anyone of the following
a) Format code character code
b) Execution character set
c) Character/strings to be displayed
Var1,var2 are the variables in which the data’s are stored.
Example printf (“this is computer fundamental class”);
printf (“/n computer fundamental class”);
11/8/2022 76
Rules for printf()
 variables should be separated by commas and need not be
preceded with ‘&’ sign.
 The control strings and the variables must match with each
other.
 The control string must be in quotations and there we can
also use any other text to print with data.
11/8/2022 77
Formatted IO / OP
• Writing integers numbers
Syntax Printf (%w.pd”,var1)
Description W is used to specify the minimum field width for the
output.
P is the precession value.
D is the control string specification
Example Printf ( “%5.4d”,23);
The output will be $0023.
Printf (“%05d”,23);
The output will be 00023.
11/8/2022 78
Formatted IO / OP
• Writing Real Numbers
Syntax Printf (%w.p.f”,var1)
Description W is used to specify the minimum field width for the
output.
P is the number of digits to be displayed after the
decimal point.
f is the control string for float.
Example Printf ( “%5.2.f”,2345.567890);
The output will be $2345.56.
Printf (“%10.2e”,48.3333);
The output will be 4.8e+01
11/8/2022 79
Sample Program
include<stdio.h>
include<conio.h>
void main()
{
int r,t;
char u,y;
float a,b,c,d;
clrscr();
scanf("%d%d",&r,&t);
printf("enter the char value");
scanf("%c",&y);
printf("n%9c%9c",r,t);
printf("nt%dt%d",r,t);
printf("n the value of u is %c",y);
getch();
Control Statements
(Decision Making)
11/8/2022 81
Control Statements
A program consists of a number of statements which are usually
executed in sequence. Programs can be much more powerful if we
can control the order in which statements are run.
Statements fall into three general types;
1) Assignment, where values, usually the results of calculations, are stored in
variables.
2) Input / Output, data is read in or printed out.
3) Control, the program makes a decision about what to do next.
11/8/2022 82
Control Statements
Control statements in C are used to write powerful programs
by;
Repeating important sections of the program.
Selecting between optional sections of a program.
11/8/2022 83
Control Statements
Control statements
Selection Statements Iteration statements
The if else statement
The switch statements
The while loop &
Do while loop
The for loop
The break statement
Continue statement
Goto statement
11/8/2022 84
Control Statements cont.
• ‘C’ language provides four general structure by which statements can
be executed
Structure Meaning Example
Sequential It means the instructions are carried
out in sequence
a+=5;
a=a+b;
Selection Sequence of the instruction are
determined by the result of the
condition
if (x>y)
a = a+1;
else
a= a-1;
Iteration Here the statements are repeatedly
executed
while (a<=10)
printf (“%d” , a);
Encapsulation Here the an iteration statement can
have selection inside it or vice versa
while (a<=10)
{
if(a>5)
printf (%d” , a);
}
11/8/2022 85
SELECTION STATEMENT
11/8/2022 86
Types of Selection Statement
1. Simple if Selection statement
2. if else Selection statement
3. Nested if else Selection statement
4. else if ladder Selection statement
11/8/2022 87
Simple if Selection statement
It is used to control the flow of execution of the statements and also to
test logically whether the condition is true or false.
if the condition is true then the statement following the “if “ is executed if
it is false then the statement is skipped.
Syntax:
if ( condition )
{
statement ;
}
Test Condition
Executable X - Statement
True
11/8/2022 88
Selection Statement
• Properties of an if statement
a) if the condition is true then the simple or compound
statements are executed.
b) If the condition is false it will skip the statement.
c) The condition is given in parenthesis and must be evaluated
as true or false.
d) If a compound structure is provided, it must be enclosed in
opening and closing braces
11/8/2022 89
//Biggest of Two Numbers
#include <stdio.h>
void main()
{
int a, b;
clrscr();
printf(“Enter the A and B Value:n”);
scanf(“%d”, &a);
if (a > b)
{
printf(“A is Big”);
}
getch();
}
11/8/2022 90
• Basic Relational Operators can be used in C to make “if” statement
conditions more useful
• The 6 Basic Relational Operators are
> , <, >= , <= , == , !=
(greater than, less than, greater than or equal to, less than or equal
to, equal to, not equal to)
Basic Relational Operators
Basic Logic Operators
• Basic Logic Operators can be used to combine more than one
condition in an “if” statement or invert the result of a condition
• The 3 Basic Logic Operators are
&& , || , !
(and, or, not)
11/8/2022 91
The if else statement
It is used to execute some statements when the condition is true and execute some other
statements when the condition is false depending on the logical test.
Syntax:
if ( condition )
{
statement 1 ; (if the condition is true this statement will be executed)
}
else
{
statement 2 ; (if the condition is false this statement will be executed)
}
Test Condition
Executable X - Statement
True
Executable Y - Statement
False
11/8/2022 92
if else statements
if (result >= 45)
{
printf ( “ Passedn “ ) ;
printf ( “ Congratulationsn “ )
}
else
{
printf ( “ Failedn “ ) ;
printf ( “ Good luck in the resitsn “ ) ;
}
11/8/2022 93
// Biggest of Two Numbers
#include <stdio.h>
void main()
{
int a, b;
clrscr();
printf(“Enter the A and B Value:n”);
scanf(“%d”, &a);
if (a > b)
{
printf(“A is Big”);
}
else
{
printf(“B is Big”);
}
getch();
}
11/8/2022 94
// Given Number is ODD or EVEN Number
#include <stdio.h>
void main()
{
int n;
clrscr();
printf(“Enter the Number:n”);
scanf(“%d”, &n);
if (n % 2 == 0)
{
printf(“Given Number is Even Number”);
}
else
{
printf(“Given Number is Odd Number”);
}
getch();
}
11/8/2022 95
Nested if….. else statement
Syntax:
if ( condition 1)
{
if ( condition 2)
statement 1 ;
else
statement 2 ;
}
else
{
if (condition 3)
statement 3;
else
statement 4;
}
when a series of if…else statements are occurred in a program, we can write an entire if…else
statement in another if…else statement called nesting
11/8/2022 96
Test Condition_1
Executable X2 - Statement
Test Condition_2
Executable X1 - Statement
Test Condition_3
Executable X4 - Statement Executable X3 - Statement
TRUE
TRUE
TRUE
FALSE
FALSE
FALSE
11/8/2022 97
// Biggest of Three Numbers
#include<stdio.h>
void main()
{
int a, b, c;
clrscr();
printf(“Enter the Three Numbers:n”);
scanf(“%d%d%d”,&a,&b,&c);
if (a > b)
{
if (a > c)
printf(“A is Big”);
else
printf(“C is Big”);
}
else
{
if (b > c)
printf(“B is Big”);
else
printf(“C is Big”);
}
getch();
}
11/8/2022 98
else if Ladder or Multiple if else Statements
Syntax:
if (condition_1)
executed statement_1;
else if (condition_2)
executed statement_2;
else if (condition_3)
executed statement_3;
----------------------
----------------------
else if (condition_n)
executed statement_n;
else
executed statement_x;
When a series of decisions are involved we have to use more than one if – else
statement called as multiple if’s. Multiple if – else statements are much faster than a series of if –
else statements, since theif structure is exited when any one of the condition is satisfied.
11/8/2022 99
Test Condition_1
Test Condition_2
Exec. Stat_1
Test Condition_3
TRUE
Test Condition_n
Exec. Stat_2
Exec. Stat_3
Exec. Stat_n
Exec. Stat_X
TRUE
TRUE
TRUE
FALSE
FALSE
FALSE
FALSE
11/8/2022 100
else if Ladder
if (result >= 75)
printf ( “ Passed: Grade An “ ) ;
else if (result >= 60)
printf ( “ Passed: Grade Bn “ ) ;
else if (result >= 45)
printf ( “ Passed: Grade Cn “ ) ;
else
printf ( “ Failedn “ ) ;
11/8/2022 101
main()
{
int n1,n2;
int val;
char op;
printf("Enter a simple expression ");
scanf("%d%c%d",&n1,&op,&n2);
if(op == '+')
val = n1 + n2;
else if(op == '-')
val = n1 - n2;
else if(op == '/')
val = n1 / n2;
else if(op == '*')
val = n1 * n2;
else
{
printf(“?? operator %cn",op);
exit(1);
}
printf("%d%c%d = %dn",n1,op,n2);
}
/*This program reads in a simple expression with a very restricted format and
prints out its value. */
11/8/2022 102
Sample Program
• Write a program to calculate the sales commission for the data given
below:
Sales value (Rs) Commission(%)
Less than 1000 No commission
Above 1000 but below 2000 5% of sales
Above 2000 but below 5000 8% of sales
Above 5000 10% of sales
11/8/2022 103
#include<stdio.h>
#include<conio.h>
Void main()
{
float sales, com;
printf(“Enter the sales value :”);
scanf(“%f”, &sales);
if(sales<=1000)
com = 0;
else if(sales>1000 && sales <=2000)
com = sales*5/100;
else if(sales>2000 && sales <=5000)
com = sales*5/100;
else
com = sales * 10/100;
printf(“The commission for the sales value %f is %f”, sales, com);
}
11/8/2022 104
THE SWITCH STATEMENT
• The control statements which allow us to make a decision from the number of
choices is called switch (or) Switch-case statement.
• It is a multi way decision statement, it test the given variable (or) expression
against a list of case value.
switch (expression)
{
case constant 1:
simple statement (or)
compound statement;
case constant 2:
simple statement (or)
compound statement;
case constant 3:
simple statement (or)
compound statement;
}
switch (expression)
{
case constant 1:
simple statement (or)
compound statement;
case constant 2:
simple statement (or)
compound statement;
default :
simple statement (or)
compound statement;
}
11/8/2022 105
Example Without Break Statement
#include<stdio.h>
void main ()
{
int num1,num2,choice;
printf(“Enter the Two Numbers:n”);
scanf(“%d%d”,&num1,&num2);
printf(“1 -> Additionn””);
printf(“2->Subtractionn”);
printf(“3->Multiplicationn”);
printf(“4->Divisionn”);
printf(“Enter your Choice:n”);
scanf(“%d”,&choice);
switch(choice)
{
case 1:
Printf(“Sum is %dn”, num1+num2);
case 2:
Printf(“Diif. is %dn”, num1-num2);
case 3:
Printf(“Product is %dn”, num1*num2);
case 4:
Printf(“Division is %dn”, num1/num2);
default:
printf (“Invalid Choice…..n”);
}
getch();
}
#include<stdio.h>
void main ()
{
int num1,num2,choice;
printf(“Enter the Two Numbers:n”);
scanf(“%d%d”,&num1,&num2);
printf(“1 -> Additionn””);
printf(“2->Subtractionn”);
printf(“3->Multiplicationn”);
printf(“4->Divisionn”);
printf(“Enter your Choice:n”);
scanf(“%d”,&choice);
switch(choice)
{
case 1:
printf(“Sum is %dn”, num1+num2);
break;
case 2:
printf(“Diif. is %dn”, num1-num2);
break;
case 3:
printf(“Product is %dn”, num1*num2);
break;
case 4:
printf(“Division is %dn”, num1/num2);
break;
default:
printf (“Invalid Choice…..n”);
}
getch();
}
Example With Break Statement
11/8/2022 106
Fall through Statement in C
11/8/2022 107
Rules for Switch
 The expression in the switch statement must be an integer or character constant.
 No real numbers are used in an expression.
 The default is optional and can be placed anywhere, but usually placed at end.
 The case keyword must be terminated with colon (:);
 No two case constant are identical.
 The values of switch expression is compared with case constant in the order specified i.e
from top to bottom.
 The compound statements are no need to enclose within pair of braces.
 Integer Expression used in different case statements can be specified in any order.
 A switch may occur within another switch, but it is rarely done. Such statements are called
as nested switch statements.
 The switch statement is very useful while writing menu driven programs.
11/8/2022 108
Limitations of using a switch statement
 Only One variable can be tested with the available case statements with the values stored
in them (i.e., you cannot use relational operators and combine two or more conditions as
in the case of if or if – else statements).
 Floating – point, double, and long type variables cannot be used as cases in the switch
statement.
 Multiple statements can be executed in each case without the use of pair of braces as in
the case of if or if – else statement.
11/8/2022 109
Iteration Statements
1. Iteration statements is also known as Looping statement.
2. A segment of the program that is executed repeatedly is called as a loop.
3. Some portion of the program has to be specified several number of times or until a
particular condition is satisfied.
4. Such repetitive operation is done through a loop structure.
5. The Three methods by which you can repeat a part of a program are,
1. while Loops
2. do….while loops
3. for Loop
Loops generally consist of two parts :
Control expressions: One or more control expressions which control the execution of the
loop,
Body : which is the statement or set of statements which is executed over and
over
11/8/2022 110
Any looping statement , would include the following steps:
a) Initialization of a condition variable
b) Test the control statement.
c) Executing the body of the loop depending on the condition.
d) Updating the condition variable.
11/8/2022 111
While Loop
A while loop has one control expression, and executes as long as
that expression is true. The general syntax of a while loop is
A while loop is an entry controlled loop statement.
initialize loop counter;
while (condition)
{
statement (s);
increment or decrement loop counter
}
11/8/2022 112
Start
Initialize
Test Condition
Body of Loop
Increment or Decrement
Stop
False
True
11/8/2022 113
Example:
// Print the I Values
#include <stdio.h>
void main()
{
int i;
clrscr();
i = 0;
while(i<=10)
{
printf(“The I Value is :%dn”,i);
++I;
}
getch();
}
// Summation of the series 1 + 2 + 3 + 4 + …….
#include <stdio.h>
void main()
{
int i, sum;
clrscr();
i = 1;
sum = 0;
while(i<=10)
{
sum = sum + i
printf(“The Sum Value is:%dn”,i);
++I;
}
getch();
}
11/8/2022 114
Example:
//Summation of the series 12 + 22 + 32 + …..
#include <stdio.h>
#include<math.h>
void main()
{
int i, sum;
clrscr();
i = 1;
sum = 0;
while(i<=10)
{
sum = sum + i*i; //or I ^2 or pow(i, 2)
printf(“The Sum Value is:%dn”,i);
++I;
}
getch(); }
//Summation of the series 11 + 22 + 33 + …..
#include <stdio.h>
#include<math.h>
void main()
{
int i, sum;
clrscr();
i = 1;
sum = 0;
while(i<=10)
{
sum = sum + pow(i,i)
printf(“The Sum Value is:%dn”,i);
++I;
}
getch(); }
11/8/2022 115
#include<stdio.h>
void main()
{
int number=0, rem=0, sum=0;
clrscr();
printf(“Enter the value for number”);
scanf(“%d”,&n);
while(number > 0)
{
rem = number % 10;
sum = sum + rem;
number = number / 10;
}
printf(“the summation value of the given number %d is =
%d”,number,sum);
}
Wap to print the summation of digits of any given number.
11/8/2022 116
THE do-while LOOP
• The body of the loop may not be executed if the condition is not satisfied in while
loop.
• Since the test is done at the end of the loop, the statements in the braces will
always be executed at least once.
• The statements in the braces are executed repeatedly as long as the expression
in the parentheses is true.
Make a note that do while ends in a ; (semicolon)
Note that Do… While Looping statement is Exit Controlled Looping statement
initialize loop counter;
do
{
statement (s);
increment or decrement loop counter
}
while (condition);
11/8/2022 117
Start
Initialize
Test Condition
Body of Loop
Increment or Decrement
Stop
False
True
11/8/2022 118
Sl.No. while loop do-while loop
1. The while loop tests the condition before
each iteration.
The do – while loop tests the condition after
the first iteration.
2. If the condition fails initially the loop is
Skipped entirely even in the first iteration.
Even if the condition fails initially the loop is
executed once.
Difference Between While Loop and Do – While Loop
11/8/2022 119
Example:
// Print the I Values
#include <stdio.h>
void main()
{
int i;
clrscr();
i = 0;
do
{
printf(“The I Value is :%dn”,i);
++I;
}
while(i<=10);
getch();
}
// Print the I Values
#include <stdio.h>
void main()
{
int i;
clrscr();
i = 11;
do
{
printf(“The I Value is :%dn”,i);
++I;
}
while(i<=10);
getch();
}
11/8/2022 120
#include <stdio.h>
void main()
{
int i, f1,f2,f3;
clrscr();
f1 = 0;
f2 = 1;
printf(“The Fibonacci Series is:n”)
printf(“%dn”,f1);
printf(“%dn”,f2);
do
{
f3 = f1 + f2;
printf(%dn”,f3);
f1 = f2;
f2 = f3;
++i;
}
while(i <= 10);
getch();
}
Wap to print the Fibonacci series for any given number Using Do….While Loop
11/8/2022 121
for Loop
The for loop is another repetitive control structure, and is used to
execute set of instruction repeatedly until the condition becomes
false.
To set up an initial condition and then modify some value to perform
each succeeding loop as long as some condition is true.
The syntax of a for loop is
The three expressions :
expr1 - sets up the initial condition,
expr2 - tests whether another trip through the loop should be taken,
expr3 - increments or updates things after each trip.
for( expr1; expr2 ;expr3)
{
Body of the loop;
}
11/8/2022 122
Start
Initialize; test_condition; Increment / Decrement
Body of Loop
Stop
11/8/2022 123
Exampl
e
#include<stdio.h>
void main()
{
for (int i = 1; i <= 10; i++)
printf("i is %dn", i);
}
There is no need of { } braces for single line statement and for multiple
line it is
essential else it will consider only next line of for statement.
Given example will print the values from 1 to 10.
11/8/2022 124
Exampl
e
#include<stdio.h>
#include<conio.h>
void main()
{
int mul,limit,c,i;
clrscr();
printf("Enter the Multiplication Number:n");
scanf("%d",&mul);
printf("Enter the Limits:n");
scanf("%d",&limit);
for(i=1;i<=limit;i++)
{
c = i * mul;
printf("%d * %d: %dn",i,mul,c);
}
getch();
}
Given example of Multiplication Table
11/8/2022 125
Additional Features of for Loop
Case 1:
The statement
p = 1;
for (n = 0; n < 17; ++ n)
can be rewritten as
for (p = 1, n = 0; n < 17;++n)
Case 2:
The second feature is that the test – condition may have any compound
relation and
the testing need not be limited only to the loop control variable.
sum = 0;
for (i = 1; i < 20 && sum < 100; ++ i)
{
sum = sum + i;
printf(“%d %dn”, i, sum);
}
11/8/2022 126
Additional Features of for Loop Conti…
Case 3:
It also permissible to use expressions in the assignment statements of initialization
and increments sections.
For Example:
for (x = (m + n) / 2; x > 0; x = x / 2)
Case 4:
Another unique aspect of for loop is that one or more sections can be omitted, if
necessary.
For Example:
m = 5;
for ( ; m ! = 100 ;)
{
printf(“%dn”,m);
m = m + 5;
}
Both the initialization and increment sections are omitted in the for statement. The
initialization has been done before the for statement and the control variable is incremented
inside the loop. In such cases, the sections are left ‘blank’. However, the semicolons
separating the sections must remain. If the test – condition is not present, the for statement
sets up an ‘infinite’ loop. Such loops can be broken using break or goto statements in the
loop.
11/8/2022 127
Case 5:
We can set up time delay loops using the null statement as follows:
for ( j = 1000; j > 0; j = j – 1)
1. This is loop is executed 1000 times without producing any output; it simply
causes a
time delay.
2. Notice that the body of the loop contains only a semicolon, known as a null
statement.
Case 6:
for ( j = 1000; j > 0; j = j – 1)
This implies that the C compiler will not give an error message if we place a
semicolon by mistake at the end of a for statement. The semicolon will be
considered as a null statement and the program may produce some nonsense.
Additional Features of for Loop Conti…
11/8/2022 128
Nesting of for Loop
The One for statement within another for statement is called Nesting for Loop.
Syntax:
for (initialize; test_condi; incre. / decre.)
{
---------------
---------------
for (initialize; test_condi; incre. / decre.)
{
-----------
-----------
}
---------------
---------------
}
-----------------
-----------------
Outer
for Loop
Inner for
Loop
11/8/2022 129
Example
// Print the I and J Value
#include<stdio.h>
#include<conio.h>
void main()
{
int I, j;
clrscr();
for (i = 1; I < = 10 ; I ++)
{
printf (“The I Value is %d n", i);
for (j = 1; j < = 10; j ++)
{
printf (“The J Value is %d n", j);
}
}
getch();
}
11/8/2022 130
Example
// Multiplication Table
#include<stdio.h>
#include<conio.h>
void main()
{
int sum = 1,a,b;
clrscr();
for (a=1;a<=5;a++)
{
printf ("the multiplication table for %dn",a);
for (b=1;b<=12;b++)
{
sum=a*b;
printf("%d*%d=",a,b);
printf("%dn",sum);
}
sum = 0;
}
getch();
}
11/8/2022 131
Exercise
1) Write a program that will read in N numbers and print out their average.
2) Wap to print the following series for N given number
1+(1+2)+(1+2+3)+(1+2+3+4)………
3) Wap to print the following series for N given number
+
++
+++
++++
+++++
++++++ ………..
4) Wap to print the following series for N given number
1
111
11111
1111111
11/8/2022 132
JUMPS IN LOOPS
11/8/2022 133
1. Loops perform a set of operations repeatedly until the control variable fails to satisfy the
test – condition.
2. The number of times a loop is repeated is decided in advance and the test condition is
written to achieve this.
3. Sometimes, when executing a loop it becomes desirable to skip a part of the loop or to
leave the loop as soon as a certain condition occurs.
4. Jumps out of a Loop is Classified into three types
1. break;
2. continue;
3. goto;
11/8/2022 134
The break Statement
1. A break statement is used to terminate of to exit a for, switch, while or do – while
statements and the execution continues following the break statement.
2. The general form of the break statement is
3. The break statement does not have any embedded expression or arguments.
4. The break statement is usually used at the end of each case and before the start of the next
case statement.
5. The break statement causes the control to transfer out of the entire switch statement.
break;
11/8/2022 135
#include <stdio.h>
void main()
{
int i;
clrscr();
i = 1;
while (i < = 10)
{
printf (“The I Value is: %d n”, i);
if (i = = 6)
{
printf (“The I value is Reached 6, So break of the programsn”);
break;
}
++ i
}
11/8/2022 136
#include<stdio.h>
void main ()
{
int num1,num2,choice;
printf (“Enter the Two Numbers:n”);
scanf(“%d%d”,&num1,&num2);
printf(“1 -> Additionn””);
printf(“2->Subtractionn”);
printf(“3->Multiplicationn”);
printf(“4->Divisionn”);
printf (“Enter your Choice:n”);
scanf (“%d”, &choice);
switch (choice)
{
case 1:
printf (“Sum is %d n”, num1+num2);
break;
case 2:
printf (“Diif. is %d n”, num1-num2);
break;
case 3:
printf (“Product is %d n”, num1*num2);
break;
case 4:
printf (“Division is %d n”, num1/num2);
break;
default:
printf (“Invalid Choice…..n”);
}
getch(); }
11/8/2022 137
The continue Statement
• The continue statement is used to transfer the control to the beginning of the loop, there
by terminating the current iteration of the loop and starting again from the next iteration
of the same loop.
• The continue statement can be used within a while or a do – while or a for loop.
• The general form or the syntax of the continue statement is
• The continue statement does not have any expressions or arguments.
• Unlike break, the loop does not terminate when a continue statement is encountered, but it
terminates the current iteration of the loop by skipping the remaining part of the loop and
resumes the control tot the start of the loop for the next iteration.
continue;
11/8/2022 138
#include <stdio.h>
void main()
{
int i;
clrscr();
i = 1;
while (i < = 10)
{
printf (“The I Value is: %d n”, i);
if (i = = 6)
{
printf (“The I value is Reached 6, But Continue this Programsn”);
continue;
}
++ i
}
11/8/2022 139
Sl.No. break continue
1. Used to terminate the loops or to exit loop
from a switch.
Used to transfer the control to the start of
loop.
2. The break statement when executed
causes
immediate termination of loop containing
it.
Continue statement when executed causes
Immediate termination of the current
iteration
of the loop.
Differences Between Break and Continue Statement
11/8/2022 140
The goto Statement
• The goto statement is used to transfer the control in a loop or a function from one point to
any other portion in that program.
• If misused the goto statement can make a program impossible to understand.
• The general form or the syntax of goto statement is
• The goto statement is classified into two types
a. Unconditional goto
b. Conditional goto
goto label;
Statement (s);
…………….
label:
statement (s);
11/8/2022 141
Unconditional Goto
The Unconditional goto means the control transfer from one block to
another block without checking the test condition.
Example:
#include <stdio.h>
void main()
{
clrscr();
Start:
printf(“Welcomen”);
goto Start;
getch();
}
11/8/2022 142
Conditional Goto
The Conditional goto means the control transfer from one block to another
block with checking the test condition.
#include <stdio.h>
void main()
{
int a, b;
clrscr();
printf (“Enter the Two Value:n”);
scanf (“%d”, &a, &b);
if (a > b)
goto output_1;
else
goto output_2;
output_1:
printf (“A is Biggest Number”);
goto Stop;
output_2:
printf (“B is Biggest Number”);
goto Stop;
Stop:
getch();
}
11/8/2022 143
UNIT IV
ARRAYS AND FUNCTIONS
Arrays
11/8/2022 145
Definition of Array
An array is a fixed – size sequenced collection of elements of the
same data type. It is simply a grouping of like – type data. In its simplest
form, an array can be used to represent a list of numbers, or list of names.
(OR)
Array is a Collection of Homogenous Data Items Example
1. List of employees in an organization.
2. List of products and their cost sold by a store.
3. Test Scores of a class of students.
Types of Array
1. One Dimensional Array
2. Two Dimensional Array
3. Multi Dimensional Array
11/8/2022 147
One Dimensional Array
X
Y
Z
One Dimensional Array is defined any one of axis (X or Y or Z) in the graph
11/8/2022 148
Arrays
So far, we've been declaring simple variables
int i;
It is also possible to declare an array of Several elements. an array
is a variable that can hold more than one value , The declaration
int a[10];
declares an array, named a, consisting of ten elements, each of
type int.
We can represent the array a above with a picture like this:
•Arrays are zero-based: the ten elements of a 10-element array are
numbered from 0 to 9.
11/8/2022 149
Arrays
• An array uses a single identifier, together with an integer
index, to create one variable that can hold many values
• An array is created the same as a “normal” variable, but
with the addition of square brackets indicating the size of
the array
• Each value in the array is called an element
11/8/2022 150
One Dimensional Arrays
Syntax data_type array_name[size];
Description Data_type valid data type in C language
Array_name name given to the array
Size are the size of the dimensions
Example int a[3];
float b[4];
11/8/2022 151
Initializing Arrays
• An array is initialized using a code block containing
comma-delimited values which match in position the
elements in the array
• If there are values in the initialization block, but not
enough to fill the array, all the elements in the array
without values are initialized to 0 in the case of float or
int, and NULL in the case of char
• If there are values in the initialization block, an explicit
size for the array does not need to be specified, only an
empty Array Element Operator is needed. C will count
the values and size the array for you.
11/8/2022 152
Initializing Arrays
int x [ 5 ] = { 1,2,3,4,5 }; size 10 bytes
creates array with elements 0-4 values 1-5
int x [ 5 ] = { 4,3 }; size 10 bytes
creates array with elements 0-4 values 4,3,0,0,0
int x [ ] = { 1,2,3 }; size 6 bytes
creates array with elements 0-2 values 1,2,3
char c [ 4 ] = { ‘M’ , ‘o’ , ‘o’ }; size 4 bytes
creates array with elements 0-3 values M o o
NULL
11/8/2022 153
Arrays Cont’
•The first element of the array is x[0], the second element is x[1]..
e.g x[0] = 10; x[1] = 20; x[2] = 30 x[3] = 40
x[4] = 50
Total = 150;
This loop sets all ten elements of the array a to 0.
int a[i]; int i;
for(i = 0; i < 10; i = i + 1)
a[i] = 0;
To copy the contents of one array to another, you must again do so
one by one:
int b[10];
for(i = 0; i < 10; i = i + 1)
b[i] = a[i];
Printing Array Values
for(i = 0; i < 10; i = i + 1)
printf("%dn", a[i]);
11/8/2022 154
Array Basics
• An array has a fixed number of elements based on
its creation
• The elements are ALWAYS numbered from 0 to 1
less than the array’s size
• Referencing an element outside of the created
bounds is possible but not recommended
11/8/2022 155
Visual Representation of an Array
?
?
23
?
int x[4];
x[2]=23;
342901
342905
342909
342913
0
1
2
3
X
Address
Offset
Identifier
Value
11/8/2022 156
The Array Element Operator [ ]
• The Array Element Operator is used to reference a
specific array element
• The expression inside the Array Element must resolve
to type int. This value is known as an index
• The value of the index can be any number, but care
should be taken that the index falls within the bounds of
the array. The bounds of an array are defined as 0 to 1
less than the size of the array
11/8/2022 157
Array Example
#include <stdio.h>
int main(void)
{
int x[5];
x[0]=23; valid
x[2.3]=5; invalid: index is not an int
x[6]=45; valid but not recommended
return 0;
}
11/8/2022 158
A Simple Array Example
#include <stdio.h>
int main(void)
{
int i , x[ 5 ] , total = 0 ;
for ( i = 0 ; i < 5 ; i++ )
{
printf( “Enter mark %d” , i );
scanf ( “%d” , &x[ i ] );
}
for ( i = 0 ; i < 5 ; i++ )
total = total + x[ i ];
printf ( “The average is %d” , total / 5 );
return 0;
}
11/8/2022 159
ARRAYS
• DON'T declare arrays with subscripts larger than
you will need; it wastes memory.
• DON'T forget that in C, arrays are referenced
starting with subscript 0, not 1.
11/8/2022 160
Sample program
#include<stdio.h>
main()
{
int a[5],i;
printf(‘enter the array elements”);
for(i = 0;i<5;i++)
scanf(“%d”,&a[i]);
printf(“Array in the reverse order”);
for(i = 5;i>0;i--)
printf(“%d”,a[i];
}
11/8/2022 161
#inlcude<stdio.h>
#define Max 5;
main();
{
int a[Max], i, min;
int pos = 0;
printf(“Enter the array elements”);
for(i=0;i<5;i++)
scanf(‘%d”,&a[i]);
min = a[0];
for(i=1;i<Max;i++)
if(a[i] < min)
{
min = a[i];
pos = i;
}
printf(“ Minimum Value = %d” , min);
printf(“ Position of the Minimum Value = %d” , pos);
}
11/8/2022 162
Exercise
Identify the errors if any,
1) #define Max 1.5;
main()
{
int a[Max];
}
2) main()
{
int i,a[5];
for(i=0;i<5;i++);
a[i] = 0;
}
11/8/2022 163
main()
{
int size;
scanf(“%d”,&size);
int arr[size];
for(int i=1;i<size;i++)
{
scanf(“%d”,&arr[i]);
printf(“%d”,arr[i]);
}
}
11/8/2022 164
• State whether the following are true or false
1) The array int num[26] has twenty-six elements.
2) The expression num[1] designates the first element in the
array.
3) The expression num[27] designates the twenty-eighth
element in the array.
• What is the difference between the 5’s in these two
expressions
int num[5];
num[5] = 200;
11/8/2022 165
Two-Dimensional Arrays
• Two-dimensional Array: a collection of a fixed
number of components arranged in two
dimensions
– All components are of the same type
• The syntax for declaring a two-dimensional array
is:
dataType arrayName[intexp1][intexp2];
where intexp1 and intexp2 are expressions yielding
positive integer values
11/8/2022 166
Two-Dimensional Arrays
(continued)
• The two expressions intexp1 and intexp2 specify
the number of rows and the number of columns,
respectively, in the array
• Two-dimensional arrays are sometimes called
matrices or tables
11/8/2022 167
Two Dimensional Array
X
Y
Z
Two Dimensional Array is defined any Two of axis of XY or YZ or ZX in the
graph
11/8/2022 168
11/8/2022 169
Two Dimensional Arrays
Syntax data_type array_name[size_1][size_2];
Description Data_type valid data type in C language
Array_name name given to the array
Size_1 is the row size of the array
Size_2 is the column size of the array
Example int a[3][3];
float b[4][4];
Int a[3][2];
11/8/2022 170
Two Dimensional Array Initializing
int table [2][3] = {0,0,0,1,1,1};
int table [2][3] = {{0,0,0},{1,1,1}};
int table [2][3] = {
{0,0,0},
{1,1,1}
};
int table [ ][3] = {
{0,0,0}
{1,1,1}
};
11/8/2022 171
Two Dimensional Array Initializing
If the values are missing in an initializer, they are automatically set to zero. For
instance, the statement
int table [2][3] = {
{1,1},
{2}
};
will initialize the first two elements of the first row to one, the first element of the
second row to two , and all other elements to zero.
When all the elements are to be initialized to zero, the following short – cut method
may be used.
int m[3][5] = { {0},{0},{0} };
The first element of each row is explicitly initialized to zero while other elements are
automatically initialized to zero, The following statement will also achieve the same
result:
int m[3][5] = {0,0};
11/8/2022 172
Accessing Array Components
• The syntax to access a component of a
two-dimensional array is:
arrayName[indexexp1][indexexp2]
where indexexp1 and indexexp2 are
expressions yielding nonnegative integer
values
• indexexp1 specifies the row position and
indexexp2 specifies the column position
11/8/2022 173
0 1 2
0
1
2
3
4 25.75
11/8/2022 174
Multi – Dimensional Arrays
• Three or More Dimensional Array is called the
Multi – Dimensional Arrays.
X
Y
Z
Three Dimensional array defined in any three of axis of XYZ OR YZX OR ZXY
in the graph
11/8/2022 175
Multi Dimensional Arrays
• This arrays have more than one dimensions.
Syntax data_type array_name[size1][size2]…….[sizen];
Description Data_type valid data type in C language
Array_name name given to the array
Size1,size2 are the sizes of the dimensions
Example Int a[3][3][3];
Float b[4][4][4];
11/8/2022 176
CHARACTER ARRAYS
AND STRINGS
11/8/2022 177
Character and Strings
• An char array is a group of characters that store related
data
• A String is a special char array that does not store
related data, but a single piece of data made up of a
number of characters OR A string is a sequence of
character that is treated as a single data item. Any
group of characters defined between double quotation
marks is a string constant.
• Example: Grades can be stored in a char array with the
values A,B,C,D,F; when we want to print a specific
grade we use only 1 element of the array
• Example: But for grades like “Pass” and “Fail” we must
print ALL the elements
11/8/2022 178
String Conti…
• Most Computers languages have a string data
type; C does NOT
• There are 3 ways to store strings in memory
– Fixed Length
– Stored Length
– Terminated
• C adopts the Terminated String approach
• A string in C is an array of chars terminated by
the String Terminator or NULL character 0
11/8/2022 179
Common String Operation
1. Reading and Writing Strings
2. Combining strings together
3. Copying one string to another
4. Comparing strings for equality
5. Extracting a portion of a string
11/8/2022 180
Declaring and Initializing of String
The General form of String is
char string_name [size];
Example:
char city [10];
char name[30];
When the complier assigns a character string to a character array, it automatically supplies a
multicharacter (‘0’) at the end of the string. Therefore, the size should be equal to the maximum number
of characters in the string plus one.
C Permits a character array to be initialized in either of the following two forms:
char city [9] = “ NEW YORK”;
char city [9] = {‘N’.’E’,’W’,’ ‘,’Y’,’O’,’R’,’K’,’0’);
C also permits us to initialize a character array without specifying the number of elements. In such
cases, the size of the array will be determined automatically, base on the number of elements
initialiazed. For Example, the statement
char string [ ] = {‘G’,’O’,’O’,’D’,’0’};
11/8/2022 181
DeclaringConti….
We can also declare the size much larger than the string size in the initializer. That is, the statement.
char str[9] = “GOOD”;
G O O D 0 0 0 0 0
The following declaration is illegal.
(I) char str[5];
str = “GOOD”;
This will result in a compile time error. Also note that we cannot separate the
initialization from declaration.
(II) char s1[4] = “abc”;
char s2[4];
s2 = s2; /* Error */
is not allowed. An array name cannot be used as the left operand of an assignment
operator.
11/8/2022 182
Creating a String in C
h
i
!
h
i
!
/0
array string
1820
1821
1822
2820
2821
2822
2823
11/8/2022 183
READING STRINGS FROM TERMINAL
The familiar input function scanf can be used with %s format specification to read in a string of characters.
Example:
char address [10];
scanf(“%s”,address);
The problem with the scanf function is that it terminates its input on the first white space it finds. Therefore, if the following
line of text is typed in at the terminal,
NEW YORK
then only the string “NEW” will be read into the array address, since the blank space after the word ‘NEW’ will terminate the
string reading.
The scanf calls in the case of character arrays, the ampersand (&) is not required before the variable name.
The address array is created in the memory as shown below:
N E W O ? ? ? ? ? ?
Note that the unused locations are filled with garbage.
If we want to read the entire line “NEW YORK”, then we may use two character arrays of approximate
sizes. That is,
char adr1[5], adr2[5];
scanf(“%s %s”,adr1,adr2);
With the line of text
NEW YORK
11/8/2022 184
READING STRINGS FROM TERMINAL
We can also specify the field width using the form %ws in the scanf statement for reading a specified number of
characters from the input string.
Example: scanf(“%ws”,name);
Here two things may happen.
1. The width w is equal to or greater than the number of characters typed in. The entire string will be
stored in the string variable.
2. The width w is less than the number of characters in the string. The excess characters will be
truncated and left unread.
Consider the following statements:
char name [10];
scanf(“%5s”,name);
The input string RAM and KRISHNA will be stored as:
R A M 0 ? ? ? ? ? ?
K R I S H 0 ? ? ? ?
11/8/2022 185
Reading a Line of Text
We have seen just now that scanf with %s or %ws can read only strings without white spaces. That is, they cannot be
used for reading a text containing more than one word. However, C Supports a format specification known as the edit set
conversion code % [..] that can be used to read a line containing a variety of characters, including white spaces. Recall
that we have used this conversion code in the program segment
char line [80];
scanf (“%[^n]”,line);
printf(“%s”,line);
will read a line of input from the keyboard and display the same on the screen. We would very rarely use this method.
Using getchar and gets Functions
To read a single character from the terminal, using the function getchar. We can use this function repeatedly to read
successive single characters from the input and place them into a character array. Thus, an entire line of text can be read
and stored in an array. The reading is terminated when the newline character (‘n’) is entered and the null character is
then inserted at the end of the string. The getchar function call takes the form:
char ch;
ch = getchar ( );
Note that the getchar function has no parameters.
11/8/2022 186
#include <stdio.h>
void main()
{
char line[81], character;
int c;
c = 0;
printf("Enter text. Press <Return> at endn");
do
{
character = getchar( );
line[c] = character;
c++;
}
while(character != 'n');
c = c - 1;
line [c] = '0';
printf("n%sn", line);
}
11/8/2022 187
getchar and gets Conti….
Another and more convenient method of reading a string of text containing white spaces is to use the library function
gets available in the <stdio.h> header file. This is a simple function with one string parameter and called as under.
gets (str);
str is string variable declared properly. It reads characters into str from the keyboard until a new line character is
encountered and then appends a null character to the string. Unlike scanf, it does not skip white spaces. For example the
code segment
char line [80];
gets (line);
printf(“%s”,, line);
reads a line of text from the keyboard and displays it on the screen. The last two statements may be combined as follows:
printf(“%s”,gets(line));
C does not provide operators that work on strings directly. For instance we cannot assign one string to another directly.
For example, the assignment statements.
string = “ABC”
string1 = string2;
are not valid.
11/8/2022 188
#include<stdio.h>
void main()
{
char string1[80],string2[80];
int i;
printf("Enter a string n");
printf("?");
scanf("%s",string2);
for(i=0;string2[i] != 'o'; i++)
string1[i] = string2[i];
string1[i] = 'o';
printf("n");
printf("%sn", string1);
printf("Number of characters = %dn",i);
}
11/8/2022 189
WRITING A STRINGS TO SCREEN
We have used extensively the printf function with %s format to print strings to the screen. The
format %s can be used to display an array of characters that is terminated by the null character. For
example, the statement
printf(“%s”, name);
can be used to display the entire contents of the array name.
We can also specify the precision with which the array is displayed. For instance, the specification
%10.4
Indicates that the first four characters are to be printed in a field width of 10 columns.
However, if we include the minus sign in the specification (e.g., %-10.4s), the string will be printed left-
justified.
Using putchar and puts Functions
Like getchar, C supports another character handling function putchar to output the values of character
variables. It takes the following form:
char ch = ‘A’;
putchar (ch);
The function putchar requires one parameter. This statement is equivalent to:
printf(“%c”,ch);
We have used putchar function to write characters to the screen. We can use this function repeatedly to
output a string of characters stored in an array using a loop:
11/8/2022 190
Example:
char name[6] = “PARIS”;
for(i=0;i<5;i++)
putchar (name[i]);
putchar(‘n’);
Another and more convenient way of printing string values is to use the function puts declared in the
header file <stdio.h>. This is a one parameter function and invoked as under:
puts (str);
Where str is a string variable containing a string value. This prints the value of the string variable str and
then moves the cursor to the beginning of the next line on the screen. For example, the program segment
char line [80];
gets (line);
puts (line);
Reads a line of text from the keyboard and displays it on the screen. Note that the syntax is very simple
compared to using the scanf and printf statements
Using putchar and puts Functions Conti…
11/8/2022 191
The C Library supports a large number of string – handling function that can be used to carry
out many of the string manipulations.
The most commonly used string – handling functions.
STRING HANDLING FUNCTIONS
Function Action
strcat ( ) Concatenates two strings
strcmp ( ) Compares two strings
strcpy ( ) Copies one strings over
another
strlen ( ) Finds the length of a string
11/8/2022 192
Function
11/8/2022 193
C function can be classified into two categories, namely, library functions and user – defined
functions. main is an example of user – defined functions. printf and scanf belong to the category of library
functions. We have also used other library functions such as sqrt, cos, strcat, etc.
The main distinction between these two categories is that library functions are not required to be
written by us whereas a user – defined function has to be developed by the user at the time of writing a
program.
Introduction
Some Characteristic of modular programming are:
1. Each module should do only one thing.
2. Communication between modules is allowed only by a calling module.
3. A module can be called by one and only one higher module
4. No communication can take place directly between modules that do not have calling – called relationship
5. All modules are designed as single – entry, single – exit systems using control structures
11/8/2022 194
1. Every program must have a main function to indicate where the program has to begin its execution. While it
is possible to code any program utilizing only main function. It leads to a number of problems.
2. The program may become too large and complex and as a result the task of debugging, testing, and
maintaining becomes difficult.
3. If a program is divided into functional parts, then each part may be independently coded and later
combined into a single unit. These subprograms called ‘functions’ are much easier to understand, debug,
and test.
4. The length of a source program can be reduced by using functions at appropriate places. This factor is
particularly critical with microcomputers where memory space is limited.
5. It is easy to locate and isolate a faulty function for further investigations.
6. A function may be used by many other programs.
Need for User – Defined Functions
11/8/2022 195
DEFINITION
• A function is a named, independent section of C code that performs a
specific task and optionally returns a value to the calling program.
• A function is named
• A function is independent.
• A function performs a specific task.
• A function can return a value to the calling program.
11/8/2022 196
Function COND…
• FUNCTION DECLARATION
• FUNCTION DEFINITION
• FUNCTION INVOCATION (FUNCTION CALL)
11/8/2022 197
FUNCTION DEFINITION SYNTAX
A function definition, also known as function implementation shall include the following elements.
1. Function Name
2. Function Type
3. List of Parameters
4. Local variable declarations
5. Function Statements
6. A Return statement
All the six elements are grouped into two parts, namely,
1. Function header (First three Elements)
2. Function Body (Second three Elements)
function_type function_name(parameter_list)
{
local variable declaration;
executable statement_1;
executable statement_2;
---------------------------------
---------------------------------
return statement;
} Example:
float mul ( float x, float y)
{
float result;
result = x * y;
return (result);
}
11/8/2022 198
FUNCTION PROTYPING OR FUNCTION
DECLARATION
• A function prototype is a very important feature of modern C
programming
• It must be added to a C program just before the main function, if
we call that function before defining it
• It tells the compiler what type of value the function returns,
numbers and types of parameters, and order in which these
parameters are expected.
• There is no need for a prototype if the function is called after its
definition
11/8/2022 199
FUNCTION DECLARATION SYNTAX
Like variables, all functions in a C program must be declared, before they are invoked, A function declaration (also
known as function prototype) consists of four parts.
1. Function type (return type)
2. Function name
3. Parameter list
4. Terminating semicolon
The general format is
Function_type function_name(parameter_list);
Example:
float mul (float x, float y);
11/8/2022 200
Function Definition
A simple format of a C function definition is as
follows:
return-value-type function-
name(parameters)
{
Declarations;
Statements;
Return (expression);
}
Function Prototype
11/8/2022 201
Sl.No. Function prototype Function definition
1. It declares the function. It defines the function
2. It ends with a semicolon. It doesn’t end with a semicolon.
3. Declaration need not include
parameters.
Definition should include names for the
parameters.
Difference Between Function Prototyping and Function Definition
11/8/2022 202
WORKING PRINCIPLES
11/8/2022 203
Function Terminologies
Local and global variables
– Local: a variable defined inside a function
– Global: a variable defined outside of functions
Sl.No. Local Variables Global Variables
1. These are declared within the body of
the function.
These are declared outside the function.
2. These variables can be referred only
within the function in which it is
declared. The values of the
variables disappear once the
function finishes its execution.
These variable can be referred from any
part of the program value of variables
disappear only after the entire
execution or the program.
11/8/2022 204
Formal and Actual Parameters
• In C, there are two types of parameters
• Formal parameters appear in the
prototype and definition, and are
representative of the data types the
function expects to receive
• Actual parameters appear only in a
function call and are the actual data
passed
11/8/2022 205
Example
#include <stdio.h>
void MyFun( int ); Formal Parameter
int main( void )
{
int x=3;
printf( “x has a value of %d”, x);
MyFun( x ); Actual Parameter
printf( “x has a value of %d”, x);
return 0; Parameter Passing
}
void MyFun( int x ) Formal Parameter
{
printf( “x has a value of %d”, x);
x = 77;
printf( “x has a value of %d”, x);
}
11/8/2022 206
Function prototype and
definition
#include <stdio.h>
int mod(int , int); /* Function Prototype */
void main()
{
printf("The mod is: %d ", mod(4,5));
}
/* Function Definition */
int mod(int x, int y)
{
return x % y;
}
11/8/2022 207
CATEGORIES OF FUNCTIONS
Category 1: Functions with no arguments and no return values.
Category 2: Functions with arguments and no return values.
Category 3: Functions with arguments and one return value.
Category 4: Functions with no arguments but return a value.
Category 5: Functions that return multiple values.
11/8/2022 208
Function with No return type
and No arguments
void main()
{
…….
…….
…….
func1();
…….
}
void func1()
{
…….
…….
…….
…….
}
11/8/2022 209
#include<stdio.h>
void add();
void main()
{
add();
}
void add()
{
int a,b,c;
printf(“enter any two numbers”)
scanf(“%d%d”,&a,&b);
c= a+b;
printf(“the addition of %d and %d is %d”,a,b,c);
}
11/8/2022 210
Function with No return type
and with arguments
Void main()
{
…….
…….
…….
func1(x,y);
…….
}
func1(a,b)
{
…….
…….
…….
…….
}
11/8/2022 211
#include<stdio.h>
void add(int,int);
void main()
{
int x,y,c;
printf(“enter any two numbers”)
scanf(“%d%d”,&x,&y);
add(x,y);
}
void add(int a,int b)
{
int c;
c= a+b;
printf(“the addition of %d and %d is %d”,a,b,c);
}
11/8/2022 212
Function with return type
and with arguments
void main()
{
…….
…….
…….
int
func1(x,y);
…….
}
int
func1(a,b)
{
…….
…….
…….
…….
}
11/8/2022 213
#include<stdio.h>
int add(int,int);
Void main()
{
int x,y,c;
printf(“enter any two numbers”)
scanf(“%d%d”,&x,&y);
c = add(x,y);
printf(“The Result = %d ”,c);
}
int add(int a ,int b)
{
int c;
c= a+b;
return (c);
}
11/8/2022 214
Function with return type
and No arguments
void main()
{
…….
…….
…….
int
func1();
…….
}
int func1()
{
…….
…….
…….
…….
}
11/8/2022 215
#include<stdio.h>
int add();
Void main()
{
int c;
c = add();
printf(“The Result = %d ”,c);
}
int add()
{
int a,b,c;
printf(“enter any two numbers”)
scanf(“%d%d”,&a,&b);
c= a+b;
return (c);
}
11/8/2022 216
Functions that return multiple values
#include <stdio.h>
void interchange (int *a , int *b)
void main()
{
int i=5,j=10;
printf(“Before : I and J value is %d and %d”,I,j);
interchange(&i,&j);
printf(“After : I and J value is %d and %d”,I,j);
}
void interchange (int *a, int *b)
{
int t;
t=*a
*a=*b
*b=t
}
O/p: Before : I and J value is 5 and 10
After : I and J value is 10 and 5
11/8/2022 217
Function without a prototype
#include <stdio.h>
int sum(int x, int y)
{
return x+y;
}
void main()
{
printf("The sum is: %d ", sum(4,5));
}
11/8/2022 218
Parameter Passing Methods
• In C there are two ways of passing parameters to a
function
Call by Value
Call by Reference
11/8/2022 219
Call by value
Copy of data passed to function
Changes to copy do not change original
Prevent unwanted side effects
This Method copies the value of actual
parameters(calling program) into the formal
parameters(called program) of the functions.
Here the changes of the formal parameters cannot
affect the actual parameters. Because only the copy of
actual arguments were passed.
A function can return only one value per call.
11/8/2022 220
Example
#include <stdio.h>
int cube (int)
void main()
{
int n=5;
printf(“Cube of %d is %d”,n,cube(n));
}
int cube (int x);
{
x=x*x*x;
return x;
}
O/p: Cube of 5 is 125
11/8/2022 221
Call by reference
Function can directly access data
Changes affect original
It is another way of passing parameter to the
functions here the address of arguments are copied into
the parameters inside the functions.
The address is used to access the actual
arguments used in the call.
By using this we can make a function to return
more the one value(indirectly).
11/8/2022 222
Example
#include <stdio.h>
void interchange (int *a , int *b)
void main()
{
int i=5,j=10;
printf(“Before : I and J value is %d and %d”,I,j);
interchange(&i,&j);
printf(“After : I and J value is %d and %d”,I,j);
}
void interchange (int *a, int *b)
{
int t;
t=*a
*a=*b
*b=t
}
O/p: Before : I and J value is 5 and 10
After : I and J value is 10 and 5
11/8/2022 223
Call by value
Vs
Call by reference
• Call by value
Copy of data passed to function
Changes to copy do not change original
Prevent unwanted side effects
• Call by reference
Function can directly access data
Changes affect original
11/8/2022 224
#include <stdio.h>
void swap(int, int);
void main()
{
int num1, num2;
num1 = 10; num2 = 20;
swap ( num1, num2 );
printf("%d %dn", num1, num2);
}
void swap(int val1, int val2)
{
int temp;
temp = val1;
val1 = val2;
val1 = temp;
}
11/8/2022 225
Swap two integers using call by value(cont.)
• In the above example, we passed parameters by value, a copy is
made of the variable and thus any change made to the parameters
val1 and val2 will not be passed back to the main function
• The main function will not know anything about
the swapping of val1 and val2
Therefore, the output of the above program will be
….?
• Normally if we wished to pass back a value we
would use return or we would pass the parameters
by reference
11/8/2022 226
Nested Functions
In C , it provides a facility to write one function
with in another function. This is called nesting
of functions
Main()
{
---------
func1();
---------
---------
}
func1()
{
---------
func2();
---------
---------
}
func2()
{
---------
---------
---------
---------
}
Recursion
11/8/2022 228
Recursion
Recursion is a process of calling the same
function itself again and again until same
condition is satisfied.
This is used for repetitive computation in
which each action is satisfied in terms of a
previous result
•A function can call itself
–Directly
–Indirectly
Function1()
{
-----
Function1();
-----
}
11/8/2022 229
Recursion vs. Iteration
• Repetition
– Iteration: explicit loop
– Recursion: repeated function calls
• Termination
– Iteration: loop condition fails
– Recursion: base case recognized
• Both can have infinite loops
• Balance between performance (iteration) and
good software engineering (recursion)
11/8/2022 230
Sl.No. Iteration Recursion
1. Iteration explicitly user a repetition
structure.
Recursion achieves repetition throught
repeated function calls.
2. Iteration terminates when the loop
continuation condition fails.
Recursion terminates when a base case
is
reached.
3. Iteration keeps modifying the counter
until the loop continuation condition
fails.
Recursion keeps producing simple
versions
of the original problem until the base
case is
reached.
4. An infinite loop occurs when the loop
step
continuation test never becomes false.
An infinite loop occurs if the recursion
doses
not reduce the problem each time in a
manner that converges the base case.
5. Iteration normally occurs within a loop
so
extra memory assignment is omitted.
Recursion causes another copy of the
function & hence a considerable memory
space is occupied.
6. It reduces the processor operating It increases the processor operating
Difference Between Iteration and Recursion
11/8/2022 231
Example:
fibonacci.c
function Fibonacci ( n )
{
if ( n is less than or equal to 1 ) then
return n
else
return Fibonacci ( n - 2 ) + Fibonacci ( n - 1 )
}
/* Compute the n-th Fibonacci number,
when=0,1,2,... */
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
11/8/2022 232
Example: Computation of fib(4)
+
fib(2) fib(3)
fib(4)
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
4
4
4 4
11/8/2022 233
Example: Computation of fib(4)
fib(2) fib(3)
+
fib(4)
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
2
2
2 2
+
fib(0) fib(1)
11/8/2022 234
Example: Computation of fib(4)
fib(2) fib(3)
+
fib(4)
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
0
0
+
fib(0) fib(1)
0
11/8/2022 235
Example: Computation of fib(4)
fib(2) fib(3)
+
fib(4)
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
0
0
+
0 fib(1)
0
11/8/2022 236
Example: Computation of fib(4)
fib(2) fib(3)
+
fib(4)
+ fib(1)
0
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
2
2
2
20
11/8/2022 237
Example: Computation of fib(4)
fib(2) fib(3)
+
fib(4)
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
1
1
+ fib(1)
0
1
11/8/2022 238
Example: Computation of fib(4)
fib(2) fib(3)
+
fib(4)
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
1
1
+ 1
0
1
11/8/2022 239
Example: Computation of fib(4)
fib(2) fib(3)
+
fib(4)
+
0 1
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
2
2
0 2
1
11/8/2022 240
Example: Computation of fib(4)
1 fib(3)
+
fib(4)
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
2
2
0
+
0 1
2
1
11/8/2022 241
Example: Computation of fib(4)
+ fib(3)
fib(4)
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
4
4
4 4
1
+
0 1
1
11/8/2022 242
Example: Computation of fib(4)
+ fib(3)
fib(4)
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
3
3
3 3
1
+
0 1 +
fib(1) fib(2)
11/8/2022 243
Example: Computation of fib(4)
+ fib(3)
fib(4)
1
+
0 1 +
fib(1) fib(2)
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
1
1
1
11/8/2022 244
Example: Computation of fib(4)
+ fib(3)
fib(4)
1
+
0 1 +
1 fib(2)
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
1
1
1
11/8/2022 245
Example: Computation of fib(4)
+ fib(3)
fib(4)
1
+
0 1 +
1 fib(2)
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
3
3
3 3
1
11/8/2022 246
Example: Computation of fib(4)
+ fib(3)
fib(4)
1
+
0 1 +
1 fib(2)
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
2
2
2 2
+
fib(0) fib(1)
11/8/2022 247
Example: Computation of fib(4)
+ fib(3)
fib(4)
1
+
0 1 +
1 fib(2)
+
fib(0) fib(1)
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
0
0
0
11/8/2022 248
Example: Computation of fib(4)
+ fib(3)
fib(4)
1
+
0 1 +
1 fib(2)
+
0 fib(1)
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
0
0
0
11/8/2022 249
Example: Computation of fib(4)
+ fib(3)
fib(4)
1
+
0 1 +
1 fib(2)
+
0 fib(1)
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
2
2
2 2
0
11/8/2022 250
Example: Computation of fib(4)
+ fib(3)
fib(4)
1
+
0 1 +
1 fib(2)
+
0 fib(1)
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
1
1
1
11/8/2022 251
Example: Computation of fib(4)
+ fib(3)
fib(4)
1
+
0 1 +
1 fib(2)
+
0 1
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
1
1
1
11/8/2022 252
Example: Computation of fib(4)
+ fib(3)
fib(4)
1
+
0 1 +
1 fib(2)
+
0 1
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
2
2
2 2
0 1
11/8/2022 253
Example: Computation of fib(4)
+ fib(3)
fib(4)
1
+
0 1 +
1 1
+
0 1
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
2
2
2 2
0 1
11/8/2022 254
Example: Computation of fib(4)
+ fib(3)
fib(4)
1
+
0 1 +
1 1
+
0 1
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
3
3
3 3
1 1
11/8/2022 255
Example: Computation of fib(4)
+ 2
fib(4)
1
+
0 1 +
1 1
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
3
3
3 3
1 1
+
0 1
11/8/2022 256
Example: Computation of fib(4)
+ 2
fib(4)
1
+
0 1 +
1 1
+
0 1
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
4
4
4 4
1 2
11/8/2022 257
Example: Computation of fib(4)
+ 2
3
1
+
0 1 +
1 1
+
0 1
long fib ( int n )
{
if ( n <= 1 )
return n ;
else
return fib( n - 2 ) + fib( n - 1 );
}
4
4
4 4
1 2
11/8/2022 258
Example: Computation of fib(4)
+ 2
3
1
+
0 1 +
1 1
+
0 1
Thus, fib(4) returns the value 3
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt
6276830.ppt

More Related Content

Similar to 6276830.ppt

Ch2 introduction to c
Ch2 introduction to cCh2 introduction to c
Ch2 introduction to cHattori Sidek
 
C_Programming_Language_tutorial__Autosaved_.pptx
C_Programming_Language_tutorial__Autosaved_.pptxC_Programming_Language_tutorial__Autosaved_.pptx
C_Programming_Language_tutorial__Autosaved_.pptxLikhil181
 
C programming language
C programming languageC programming language
C programming languageAbin Rimal
 
C Programming Intro.ppt
C Programming Intro.pptC Programming Intro.ppt
C Programming Intro.pptLECO9
 
Unit 2 c programming_basics
Unit 2 c programming_basicsUnit 2 c programming_basics
Unit 2 c programming_basicskirthika jeyenth
 
CS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfCS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfBalamuruganV28
 
Programming construction tools
Programming construction toolsProgramming construction tools
Programming construction toolssunilchute1
 
C programming tutorial
C programming tutorialC programming tutorial
C programming tutorialMohit Saini
 
guia de referencia para a linguagem do fabricante CCS info_syntax.pdf
guia de referencia para a linguagem do fabricante CCS info_syntax.pdfguia de referencia para a linguagem do fabricante CCS info_syntax.pdf
guia de referencia para a linguagem do fabricante CCS info_syntax.pdfSilvanildoManoeldaSi
 
C-Programming Chapter 1 Fundamentals of C.ppt
C-Programming Chapter 1 Fundamentals of C.pptC-Programming Chapter 1 Fundamentals of C.ppt
C-Programming Chapter 1 Fundamentals of C.pptMehul Desai
 
Mca i pic u-2 datatypes and variables in c language
Mca i pic u-2 datatypes and variables in c languageMca i pic u-2 datatypes and variables in c language
Mca i pic u-2 datatypes and variables in c languageRai University
 
datatypes and variables in c language
 datatypes and variables in c language datatypes and variables in c language
datatypes and variables in c languageRai University
 
Diploma ii cfpc u-2 datatypes and variables in c language
Diploma ii  cfpc u-2 datatypes and variables in c languageDiploma ii  cfpc u-2 datatypes and variables in c language
Diploma ii cfpc u-2 datatypes and variables in c languageRai University
 
unit 1 cpds.pptx
unit 1 cpds.pptxunit 1 cpds.pptx
unit 1 cpds.pptxmadhurij54
 

Similar to 6276830.ppt (20)

Ch2 introduction to c
Ch2 introduction to cCh2 introduction to c
Ch2 introduction to c
 
C material
C materialC material
C material
 
C LANGUAGE NOTES
C LANGUAGE NOTESC LANGUAGE NOTES
C LANGUAGE NOTES
 
Cnotes
CnotesCnotes
Cnotes
 
C_Programming_Language_tutorial__Autosaved_.pptx
C_Programming_Language_tutorial__Autosaved_.pptxC_Programming_Language_tutorial__Autosaved_.pptx
C_Programming_Language_tutorial__Autosaved_.pptx
 
C programming language
C programming languageC programming language
C programming language
 
C Programming Intro.ppt
C Programming Intro.pptC Programming Intro.ppt
C Programming Intro.ppt
 
Unit 2 c programming_basics
Unit 2 c programming_basicsUnit 2 c programming_basics
Unit 2 c programming_basics
 
Introduction%20C.pptx
Introduction%20C.pptxIntroduction%20C.pptx
Introduction%20C.pptx
 
Theory1&amp;2
Theory1&amp;2Theory1&amp;2
Theory1&amp;2
 
CS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfCS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdf
 
Programming construction tools
Programming construction toolsProgramming construction tools
Programming construction tools
 
Intro
IntroIntro
Intro
 
C programming tutorial
C programming tutorialC programming tutorial
C programming tutorial
 
guia de referencia para a linguagem do fabricante CCS info_syntax.pdf
guia de referencia para a linguagem do fabricante CCS info_syntax.pdfguia de referencia para a linguagem do fabricante CCS info_syntax.pdf
guia de referencia para a linguagem do fabricante CCS info_syntax.pdf
 
C-Programming Chapter 1 Fundamentals of C.ppt
C-Programming Chapter 1 Fundamentals of C.pptC-Programming Chapter 1 Fundamentals of C.ppt
C-Programming Chapter 1 Fundamentals of C.ppt
 
Mca i pic u-2 datatypes and variables in c language
Mca i pic u-2 datatypes and variables in c languageMca i pic u-2 datatypes and variables in c language
Mca i pic u-2 datatypes and variables in c language
 
datatypes and variables in c language
 datatypes and variables in c language datatypes and variables in c language
datatypes and variables in c language
 
Diploma ii cfpc u-2 datatypes and variables in c language
Diploma ii  cfpc u-2 datatypes and variables in c languageDiploma ii  cfpc u-2 datatypes and variables in c language
Diploma ii cfpc u-2 datatypes and variables in c language
 
unit 1 cpds.pptx
unit 1 cpds.pptxunit 1 cpds.pptx
unit 1 cpds.pptx
 

Recently uploaded

Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 

Recently uploaded (20)

Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 

6276830.ppt

  • 2. 11/8/2022 2 History of ‘C’ ALGOL International Group BCPL B Traditional C K & R C ANSI C ANSI / ISO C Martin Richards Ken Thompson Dennits Ritchie Kernighan and Ritchie ANSI Committee ISO Committee 1960 1967 1970 1972 1978 1989 1990
  • 3. 11/8/2022 3 TYPES OF ‘C’ COMPILER 1. Borland ‘C’ Compiler 2. Turbo ‘C’ Compiler 3. Microsoft ‘C’ Compiler 4. ANSI ‘C’ Compiler Why are using ‘C’ • It is a Structured Programming Language • High – Level Language • Machine Independent Language • It allows software developers to develop programs without worrying about the hardware platforms where they will be implemented
  • 4. 11/8/2022 4 Characteristics of C We briefly list some of C's characteristics that define the language  Small size  Extensive use of function calls  Loose typing -- unlike PASCAL  Structured language  Low level (Bitwise) programming readily available  Pointer implementation - extensive use of pointers for memory, array, structures and functions. C has now become a widely used professional language for various reasons. • It has high-level constructs. • It can handle low-level activities. • It produces efficient programs. • It can be compiled on a variety of computers.
  • 5. 11/8/2022 5 Steps in Learning C Character set Constants, variable And Data types Control statements Functions Files Structures and Unions Pointers Arrays Data Structures Algorithms Programs
  • 6. 11/8/2022 6 C’S Program Structure Documentation section Preprocessor section Definition section Global declaration section main() { Declaration part; Executable part; } Sub program section { Body of the subprogram }
  • 7. 11/8/2022 7 C’s Character set C Character set Source Character set Execution Character set Alphabets A to Z & a to z Escape Sequences a,b,t,n Digits 0 to 9 Special Characters +,-,<,>,@,&,$,#,!
  • 8. 11/8/2022 8 C TOKENS C TOKENS Keywords Identifiers Strings Special Symbols Constants Operators -15.5 100 main amount float while “ABC” “YEAR” + - * / [ ] { }
  • 9. 11/8/2022 9 C’s Identifiers Program elements where Identifiers are used Variables Functions Arrays Function parameters Macros and macro parameters Type definitions Rules for Using Identifiers  Only Letter, Digits and Underscore(_)  1st character should be letter or _  Both Upper/lower case can be used  It can be of any length  No space and Special symbol is used  It cant be a keyword
  • 10. 11/8/2022 10 C’s keyword  Basic Building Block of the Program  These are the Reserved words  These word’s cant be changed C keywords auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while
  • 11. 11/8/2022 11 Data Types  This are the type of the data that are going to access within the program. C’s Data Type Primary User defined Derived Empty Char Int Float Double typedef Arrays Pointers Structures Union Void
  • 12. 11/8/2022 12 C’s Data types cont. Integer Signed Unsigned Int (%d) 2 bytes,-32768 to 32767 Short int (%d) 1 bytes, -128 to 127 Long int (%ld) 4 bytes, -2,147,483,648 to 2,147,483,647 Unsigned Int (%d) 2 bytes, 0 TO 65, 535 Unsigned shot int (%d) 1 bytes, 0 TO 255 Unsigned Long int (%ld) 4 bytes, 0 TO 4,294,967,295 The primary data types are further classified as below. Integers are the whole numbers, both positive and negative.
  • 13. 11/8/2022 13 C’s Data types cont. Float Type Float (%f or %g) 4 bytes, 3.4E -38 to 3.4E +38 Double (%lf) 8 bytes, 1.7E -308 to 1.7E +308 Long Double (%lf) 10 bytes, 3.4E -4932 to 1.1E+4932 Float are the numbers which contain fractional parts, both Positive and Negative.
  • 14. 11/8/2022 14 C’s Data types cont. Character Type Char (%c) 1 bytes, -128 to 127 Signed Char (%c) 1 bytes, -128 to 127 Unsigned Char (%c) 1 bytes, 0 to 255 Char are the characters which contain alpha-numeric character. Characters are usually stored in 8 bits (one byte) of internal storage The void is the Null Data type.
  • 15. 11/8/2022 15 C’s Variables • A variable is a data name as well as identifier that may be used to store a data value. Rules for Naming the Variables a) A variable can be of any combination of alphabets, digits and underscore. b) The first character of the variable can’t be digits. c) The length of the variable can’t be exceeded by 8.(ANSI C – 32 Character) d) No commas, blanks or special symbol are allowed within a variable name. e) Uppercase and lowercase are significant. That is, the variable Total is not the same as total or TOTAL. f) It should not be a keyword. g) White space is not allowed.
  • 16. 11/8/2022 16 C’s Variables cont. Variable Declaration It tells the computer what the variable name and type of the data Syntax data_type a1,a2,a3……..an; Description data_type is the type of the data. a1,a2,a3……an are the list of variables Example int number; char alpha; float price;
  • 17. 11/8/2022 17 C’s Variables cont. Initializing Variables Initialization of variables can be done using assignment operator(=) Syntax a1 = c1 ;(or) data_type a1 = c1; Description a1 is the variable c1 is the constant data_type is the type of the data Example int a1 = 29; float f1 = 34.45; char c1 = ‘d’
  • 18. 11/8/2022 18 C’s constant C constant Numeric constant Character constant Integer constant eg: roll_number = 12345; Real constant eg: pi = 3.14; Single Character constant eg: ch = ‘c’; ch = ‘3’; String constant eg: name = “palani” The item whose values can’t be changed during execution of program are called constants
  • 19. 11/8/2022 19 C’s constant Conti… Integer constant eg: roll_number = 12345; Hexadecimal constant Eg. 0x23 Octal constant Eg. 043 Decimal Constant Eg. 35 Real Constant eg: pi = 3.14; Double Precision Constant Single Precision Constant
  • 20. 11/8/2022 20 Rules for constructing Integer constants 1. An integer constant may be positive or negative (Default sign is positive). 2. An integer constant should not have a decimal point. 3. No commas and blank spaces are allowed in an integer constant. 4. An integer constant, should not use exponent e. The suffix u or U is used for denoting unsigned int constants, I or L is used for denoting long int constants, and s is used for denoting short int constants. Positive integer Constants 123 4000 +7257 Negative integer Constants -78 -9876 -23 Unsigned integer Constants 1234u 5678u 21057u Short integer Constants -5008s -23s 1234s Long integer Constant -40880211 0210578L 0x52123L Unsigned short integer Constants 1234us 5008us 8476us Unsigned long integer Constants 1234567890u l 9876543210u l
  • 21. 11/8/2022 21 Real Constants are often called as Floating – point constants. Real constants is classified as two types. 1. Fractional form. 2. Exponential form. Rules for constructing real constants (fractional form) 1. A real constant may be positive or negative (Default sign in positive 2. A real constant must have a decimal point. 3. No commas and blank spaces are allowed in a real constant. Example: 0.0001 -0.963 485.98 +123.456 727.01 0.987 -.8765 +001.05
  • 22. 11/8/2022 22 Rules for constructing Real Constants (Exponential Form) 1. The mantissa part and the exponential part should be separated by a letter e. 2. The mantissa part and the exponential part may be positive or negative (Default sign is positive) 3. The mantissa and the exponent part must have at least one digit. 4. No commas and blank spaces are allowed in a real constant. Example: +3.2e+5 3.4e5 -8.2e-5 -10.9e5 9.7e-10 0.0025e8
  • 23. 11/8/2022 23 Rules for constructing String Constants 1. A string constant may be a single alphabet or a digit, or a special character or sequence of alphabets or digits enclosed in double quotes. 2. Every string constant ends up with a NULL character, which is automatically assigned. Example: “w” “100” “Madhu” “ABC 123” “Good_Morning” “s1000” “219.71” “30-01-1978”
  • 24. 11/8/2022 24 C’ Delimiters Symbol Name Meaning # Hash Pre-processor directive , comma Variable delimiters (to separate list of variables) : colon Label delimiters ; Semi colon Statement delimiters () parenthesis Used in expressions or in functions {} Curly braces Used in blocking ‘C’ structure [] Square braces Used along with arrays Delimiters are the symbols, which has some syntactic meaning and has got significance.
  • 25. 11/8/2022 25 C’ Statements Statements Expression Statement Compound Statement Control Statement Statement can be defined as set of declarations (or) sequence of action All statements in ‘C’ ends with semicolon(;) except condition and control statement
  • 26. 11/8/2022 26 C’ Statements Statements Assignment statement name = “palani”; number = 12; Sex = ‘m’; Null statement ;
  • 27. 11/8/2022 27 Expression Statement 1. An Expression is a combination of constant, variables, operators, and function calls written in any form as per the syntax of the C language. 2. The values evaluated in these expressions can be stored in variables and used as a part for evaluating larger expressions. 3. They are evaluated using an assignment statement of the form. variable = expression; 4. For Example, age = 21; result = pow(2,2); simple_interest = (p * n * r) / 100; Algebraic Expression Equivalent C Expression (mnp + qr – at) (m*n* p+q*r-s*t) (a+b+c) (x+y+z) (a+b+c)*(x+y+z) abc / x+y (a*b*c) / (x+y) 8a3 + 3a2 + 2a 8*a*a*a+3*a*a+2*a (a-b)+(x-y) / mn ((a-b)+(x-y)) / (m*n) 8.8(a+b-c) + c / pq 8.8 * (a+b-c) + (c / (p*q))
  • 28. 11/8/2022 28 Compound Statements 1. A group of valid C expression statements placed within an opening flower brace ‘{‘ and closing flower brace ‘}’ is referred as a Compound Statements. 2. For Example, { X = (A + (B * 3) – C); Y = A + B * 3; Z = A * (B * 3 – C); } 1. This statement normally executed sequentially as they appear in the program. 2. In some situations where we may have to change the order of execution of statements until some specified conditions are met. 3. The control statement alter the execution of statements depending upon the conditions specified inside the parenthesis. 4. For Example, if (a == b) if ((x < y) && (y > z)) { { -------- ----------- -------- ----------- } } Control Statements
  • 29. 11/8/2022 29 Constant Meaning ‘a’ Audible alert (bell) ‘b’ Back space ‘f’ Form feed ‘n’ New line ‘r’ Carriage return ‘t’ Horizontal tab ‘v’ Vertical tab ‘’’ Single quote ‘”’ Double quote ‘?’ Question mark ‘’ Backslash ‘0’ Null ESCAPE SEQUENTIAL CHARACTER OR BACKSLASH CHARACTER CONSTANTS
  • 30. 11/8/2022 30 Operators An operator is a symbol that specifies an operation to be performed on the operands  Some operator needs two operands (binary)  Eg: a+b; ‘+’ is an operator and ‘a’ and ‘b’ are the operands  Some operator needs one operand (unary)  Eg: ++a; ‘++’ is an operator and a is the operand
  • 31. 11/8/2022 31 Types of Operators operators Arithmetic operator Relational operators Logical operator Assignment operator Increment and Decrement Operator (Unary Op.) Conditional operator (Ternary operator) Bitwise operator Special operator
  • 32. 11/8/2022 32 Arithmetic Operators Operator Meaning Examples + Addition 1+2 = 3 - Subtraction 3 -2 = 1 * Multiplication 2*2 = 4 / Division 2/2 = 1 % Modulo division 10/3= 1 This operators help us to carryout basic arithmetic operations such addition, subtraction, multiplication, division Operation Result Examples Int/int int 2/2 = 1 Real/int real 7.0/2 = 3.5 Int/real real 7/2.0 = 3.5 Real/real real 7.0/2.0 = 3.5
  • 33. 11/8/2022 33 Relational Operator • This are used to compare two or more operands. • Operands can be variables, constants or expression. • eg: comparison of two marks or two values. Operator Meaning Example Return value < is less than 5<6 1 <= is less than or equal to 4<=4 1 > is greater than 5>7 0 >= is greater than or equal to 7>=5 0 == equal to 6==6 1 != not equal to 5!=5 0
  • 34. 11/8/2022 34 Logical Operator Operator Meaning Example Return value && Logical And (9>2) && (6>4) 1 || Logical OR (9>2) || (3.4) 1 ! Logical Not 4 ! 4 0 AND truth table True True True True False False False True False False False False OR truth table True True True True False True False True True False False False • This operators are used to combine the results of two or more conditions.
  • 35. 11/8/2022 35 Assignment Operator  This are used to assign a value or an expression or a variable to another variable  eg: a = 10; n1 = 20; Syntax: identifier = expression; a) Compound Assignment This operator are used to assign a value to a variable in order to assign a new value to a variable after performing a specified operation. eg: a+=10,n1-=20; b) Nested Assignment (Multiple) This operator are used to assign a single value to multiple variables eg: a=b=c=d=e=10;
  • 36. 11/8/2022 36 List of Shorthand or Compound Assignment Operator Operator Meaning += Assign Sum -= Assign Difference *= Assign Product /= Assign Quotient %= Assign Remainder ~= Assign One’s Complement <<= Assign Left Shift >>= Assign Right Shift &= Assign Bitwise AND != Assign Bitwise OR ^= Assign Bitwise X - OR
  • 37. 11/8/2022 37 Increment and Decrement operator • C provide two operator for incrementing a value or decrementing a value a) ++ Increment operator (adds one to the variable) b) -- Decrement operator (Minus one to the variable) eg: a++ (if a= 10 then the output would be 11) Operator Meaning ++X Pre increment X++ Post increment --X Pre decrement X-- Post decrement
  • 38. 11/8/2022 38 Increment and Decrement operator Conti… Expression Result + + X 4 X + + 3 - - X 2 X - - 3 If the value of the operand x is 3 then the various expressions and their results are The pre – increment operation (++X) increments x by 1 and then assign the value to x. The post – increment operation (X++) assigns the value to x and then increments 1. The pre-decrement operation ( --X) decrements 1 and then assigns to x. The post – decrement operation (x--) assigns the value to x and then decrements 1. These operators are usually very efficient, but causes confusion if your try to use too many evaluations in a single statement.
  • 39. 11/8/2022 39 Conditional Operator • It is used check the condition and execute the statement depending upon the condition Syntax Condition?exp1:exp2 Description The ‘?’ operator act as ternary operator, it first evaluate the condition, if it is true then exp1 is evaluated if the condition is false then exp2 is evaluated Example a= 2; b=3 ans = a>b?a:b; printf (ans);
  • 40. 11/8/2022 40 Bitwise Operator • This are used to manipulate the data at bit level • It operates only on integers Operator Meaning & Bitwise AND | Bitwise OR ^ Bitwise XOR << Shift left >> Shift right ~ One’s complement
  • 41. 11/8/2022 41 Bitwise Operator cont. Bitwise AND (both the operand should be high for 1) 0 0 0 1 1 1 Bitwise XOR (the two operands should be different for 1) 0 0 1 1 1 0 • The truth table for Bitwise AND,OR and XOR Bitwise OR (either of the operand should be high for 1) 0 0 0 1 1 1 Eg: x = 3 = 0000 0011 y = 4 = 0000 0100 x&y = 0000 0000 Eg: x = 3 = 0000 0011 y = 4 = 0000 0100 x|y = 0000 0111 Eg: x = 3 = 0000 0011 y = 4 = 0000 0100 x ^ y = 0000 0111
  • 42. 11/8/2022 42 Bitwise Operator cont. Bitwise One’s Complement The one’s complement operator (~) is a unary operator, which causes the bits of the operand to be inverted (i.e., one’s becomes zero’s and zero’s become one’s) For Example, if x = 7 i.e 8 – bit binary digit is 0 0 0 0 0 1 1 1 The One’s Complement is 1 1 1 1 1 0 0 0 Bitwise Left Shift Operator The Left shift operator (<<) shifts each bit of the operand to its Left. The general form or the syntax of Left shift operator is variable << no. of bits positions if x = 7 (i.e., 0 0 0 0 0 1 1 1) the value of y in the expression y = x <<1 is 14 0 0 0 0 1 1 1 0 = 14 since it shifts the bit position to its left by one bit. The value stored in x is multiplied by 2N (where n is the no of bit positions) to get the required value. For example, if x = 7 the result of the expression y = x << 2 is y = x * 22 (i.e. 28)
  • 43. 11/8/2022 43 Bitwise Operator cont. Bitwise Right Shift Operator The Right shift operator (>>) shifts each bit of the operand to its Right. The general form or the syntax of Right shift operator is variable >> no. of bits positions if x = 7 (i.e., 0 0 0 0 0 1 1 1) the value of y in the expression y = x >> 1 is 3 0 0 0 0 0 0 1 1 = 3 since it shifts the bit position to its right by one bit. The value stored in x is divided by 2N (where n is the no of bit positions) to get the required value. For example, if x = 7 the result of the expression y = x << 2 is y = x / 22 (i.e. 1). If you use the left shift operator i.e. x = x << 1 the value of x will be equal to 2 (i.e., 0 0 0 0 0 0 1 0) since the lost bit cannot be taken back.
  • 44. 11/8/2022 44 Some of the special operators used in C language. These operators are referred as separators or punctuators. 1. Ampersand (&) 2. Comma (,) 3. Asterisk ( * ) 4. Ellipsis (…) 5. Braces ({}) 6. Hash (#) 7. Brackets ([]) 8. Parenthesis (()) 9. Colon (:) 10. Semicolon(;) Special Operator
  • 45. 11/8/2022 45 Special Operator Operator Meaning Ampersand (&) Ampersand (&) also referred as address operator usually precedes the identifier name, which indicates the memory location (Address) of the identifier. Asterisk ( * ) Asterisk ( * ) also referred as an indirection operator, is an unary operator usally precedes the identifier name, which indicates the creation of a pointer operator. Braces ( {} ) The opening ( { ) and closing ( } ) braces indicate the start and end of compound statement or a function. A semicolon is not necessary after the closing brace of the statement, except in case of structure declaration. Brackets ( [ ] ) Brackets [ ] also referred as array subscript operator is used to indicate single and multi dimensional array subscripts.
  • 46. 11/8/2022 46 Special Operator Operator Meaning Colon ( : ) Colon ( : ) is used in labels. Comma ( , ) Comma ( , ) operator is used to link the related expressions together. Comma used expressions are linked from left to right and the value of the right most expression is the value of the combined expression. The comma operator has the lowest precedence of all operators. For Example: sum = (x = 5, y = 3, x + y); The result will be sum = 8 Ellipsis (. . .) Ellipsis (…) are three successive periods with no white space in between them. It is used in function prototypes to indicate that this function can have any number of arguments with varying types. For Example: void fun(char cName, int iAge, float fSalary, . . .); The above declaration indicates that fun () is a function that takes at least three arguments, a char, an int and a float in the order specified but can have any number of additional arguments of any type. Hash ( # ) Hash ( # ) also referred as pound sign is used to indicate preprocessor directives.
  • 47. 11/8/2022 47 Special Operator Operator Meaning Parenthesis ( () ) Parenthesis ( ) also referred as function call operator is used to indicate the opening and closing of function prototypes, function calls, function parameters, etc., Parenthesis are also used to group expressions, and there by changing the order of evaluation of expressions. Semicolon ( ; ) Semicolon ( ; ) is a statement terminator. It is used to end a C statement. All valid C statements must end with a semicolon. Which the C compiler interprets as the end of the statement. Sizeof ( ) The sizeof operator is not a library function but a keyword, which returns the size of the operand in bytes. The sizeof operator always, precedes its operand. This operator can be used for dynamic memory allocation. Example: 1. sizeof(char) = 1 2. sizeof(int) = 2 3. sizeof(float) = 4 4. sizeof(doubles) = 8
  • 49. 11/8/2022 49 1. Each operator in C has a precedence associated with it. 2. This precedence is used to determine how an expression involving more than one operator is evaluated. 3. These are distinct levels of precedence and an operator may belong to one of these levels. 4. The operators at the higher level of precedence are evaluated first. 5. The operators of the same precedence are evaluated either from ‘left to right’ or from ‘right to left’, depending on the level. 6. That is known as the associativity property of an operator. What is Precedence Rule and Associative Rule
  • 50. 11/8/2022 50 Arithmetic operators precedence • The precedence of an operator gives the order in which operators are applied in expressions: the highest precedence operator is applied first, followed by the next highest, and so on. • eg: Arithmetic operator precedence Precedence operator High *,/,% Low +,- The arithmetic expression evaluation is carried out using two phases from left to right through the expressions
  • 51. 11/8/2022 51 Example: if (x == 10 +15 && y <10) The precedence rules say that the addition operator has a higher priority than the logical operator (&&) and the relational operators (== and <). Therefore, the addition of 10 and 15 is executed first. This is equivalent to: if (x == 25 && y < 10) The next step is to determine whether x is equal to 25 and y is less than 10, if we assume a value of 20 for x and 5 for y, then x == 25 is FALSE (0) y <10 is TRUE (1) Note that since the operator < enjoys a higher priority compared to ==, y < 10 is tested first and then x ==25 is tested. Finally we get, if (FALSE && TRUE) Because one of the conditions is FALSE, the complex condition is FALSE. In the case of &&, it is guaranteed that the second operand will not be evaluated if the first is zero and in the case of || , the second operand will not be evaluated if the first is non – zero. Relational operators precedence
  • 52. 11/8/2022 52 Precedence and Associativity Table • The following table lists all the operators, in order of precedence, with their associativity Operators Operations Associativity priority () Function call Left to Right 1 [] Square brackets -> Structure operator . Dot operator + Unary plus Right to Left 2 - Unary minus ++ Increment -- Decrement ! Not
  • 53. 11/8/2022 53 Precedence and Associativity Table cont. Operators Operations Associativity priority ~ Complement Right to Left 2 * Pointer operation & Address operator Sizeof Size of operator type Type cast * Multiplication Left to Right 3 / Division % Modulo + Addition Left to Right 4 - Subtraction
  • 54. 11/8/2022 54 Precedence and Associativity Table cont. Operators Operations Associativity priority << Left shift Left to Right Left to Right 5 6 >> Right shift < is less than <= is less than or equal to > is greater than >= is greater than or equal to == equal to != not equal to & Bitwise AND Left to Right 7 | Bitwise OR ^ Bitwise XOR
  • 55. 11/8/2022 55 Precedence and Associativity Table cont. Operators Operations Associativity priority && Logical And Left to Right 8 || Logical OR ?= Conditional Right to Left 9 =,*=,- =,&=,+=,^=,!=, <<=,>>= Assignment Right to Left 10 , comma Left to Right 11
  • 56. 11/8/2022 56 Rules for evaluation of expression • Evaluate the sub expression from left to right if parenthesized. • Evaluate the arithmetic expression from left to right using the rules of precedence. • The highest precedence is given to the expressions with in parenthesis. • Apply the associative rule if more operators of the same precedence occurs. • Evaluate the inner most sub expression if the parenthesis are nested.
  • 57. 11/8/2022 57 Sample Expression • Exp = a - 2 * a * b + b / 4 Let us have a=10,b=20 exp = 10 - 2 * 10 * 20 + 20 / 4 Phase I exp = 2*10*20 , 20/4 will be evaluated. phase II exp = 10-400+5 will be evaluated. Result exp = -395.
  • 58. 11/8/2022 58 Expression Evaluation Let us see some examples for evaluating expression. Let a = 5, b = 8, c = 2. x = b / c + a * c 4 10 14
  • 59. 11/8/2022 59 Let us see some examples for evaluating expression. Let a = 5, b = 8, c = 2. y = a + (b * 3) - c 29 27 24 Expression Evaluation
  • 61. What is Type Conversion or Type Casting Type Casting means One data type converted into another data type. This is called Type conversion or Type casting. Example: 1. Integer into floating point number 2. Character into integer 3. Floating point number into Integer Number Type conversion is classified into two types. 1. Implicit Type Conversion (Automatic Type Conversion) 2. Explicit Type Conversion (Manual Type Conversion) Type Conversion Implicit Conversion Explicit Conversion Automatic Conversion Casting Operation
  • 62. Type Conversion Hierarchy short char int unsigned int long int unsigned long int float double long double Implicit Type Conversion Explicit Type Conversion
  • 63. Implicit Type Conversion 1. The Implicit Type Conversion is known as Automatic Type Conversion. 2. C automatically converts any intermediate values to the proper type so that the expression can be evaluated without loosing any significance. 3. Implicit type Conversion also known as Converted Lower order data type into Higher order data type. 4. Implicit Type Conversion also known as Widening. Example: int a, b; float c; c = a + b; Print c; float a,b; int c; c = a + b; // This is Wrong Print c;
  • 64. Explicit Type Conversion 1. The Explicit Type Conversion is, there are instances when we want to force a type conversion in a way that is different from the automatic conversion. 2. The Explicit Type Conversion is Converted Higher order data type into Lower order data type. 3. The Explicit type Conversion is also known as borrowing. 4. The Explicit type conversion forces by a casting operator. Disadvantage of Explicit Type Conversion 1. float to int causes truncation of the fractional part. 2. double to float causes rounding of digits. 3. Long int to int causes dropping of the excess higher order bits. The general form of the casting is (type_name) expression; Where type_name is one of the standard C data type. The expression may be a constant, variables or an expression. For Example: float a, b; int c; c = (int) a + (int) b; Print c;
  • 65. 11/8/2022 65 Use of Casts Example Action x = (int) 7.5 7.5 is converted to integer by truncation. a = (int) 21.3 / (int) 4.5 Evaluated as 21 / 4 and the result would be 5. b = (double) sum / n Division is done in floating point mode. y = (int) (a + b) The result of a + b is converted to integer. z = (int) a + b a is converted to integer and then added to b. p = cos ((double) x) Converts x to double before using it.
  • 66. Input And Output Functions
  • 67. 11/8/2022 67 Ip / Op Statements  We have two methods for providing data to the program. a) Assigning the data to the variables in a program. b) By using the input/output statements.  ‘c’ language supports two types of Ip / Op statements  This operations are carried out through function calls.  Those function are collectively known as standard I / O library
  • 68. 11/8/2022 68 Ip / Op Statements cont. Ip / Op Functions Unformatted Ip / Op statements Input Output getc() putc() getch() putch() Gets() puts() Formatted Ip / Op statements Input Output Scanf() printf() fscanf() fprintf()
  • 69. 11/8/2022 69 Unformatted Ip / Op statements getch() function Syntax char variable = getch(); Description char is the data type of the variable; getch() is the function Example char x = getch(); putch (x); • These statements are used to input / output a single / group of characters from / to the input / output device. Single character Input/output function putch() function Syntax putch (character variable); Description char variable is the valid ‘c’ variable of the type of char data type. Example char x ; putch (x);
  • 70. 11/8/2022 70 Unformatted Ip / Op statements cont. gets() function Syntax gets (char type of array variable); Description valid ‘c’ variable declared as one dimensional array. Example char s[10]; gets (s); Group of character Input / output function.  Gets() and puts are used to read / display the string from / to the standard input / output device. puts() function Syntax puts (char type of array variable) Description valid ‘c’ variable declared as one dimensional array. Example char s[10]; gets (s); puts (s);
  • 71. 11/8/2022 71 Sample Program #include<stdio.h> Void main() { char name[10]; char address[20]; Puts(“Enter the name : ”); gets(name); puts(“Enter the address : ”); gets(address); puts(“Name = “) puts(name); puts(“Address = “); puts(address); }
  • 72. 11/8/2022 72 Formatted Ip / Op statements  It refers to Input / Output that has been arranged in a particular format.  Using this statements, the user must specify the type of data, that is going to be accessed. scanf() (This function is used to enter any combination of input). Syntax scanf (“control strings”,var1,var2…..var n); Description control strings is the type of data that user going to access via the input statements. var1,var2 are the variables in which the data’s are stored. Example int n; scanf (“%d”, &n);
  • 73. 11/8/2022 73 Formatted Ip / Op statements  Control strings i) It is the type of data that user is going to access via the input statement ii) These can be formatted . iii) Always preceded with a ‘%’ symbol. Format code Variable type Display %c Char Single character %d Int Decimal integer -32768 to 32768 %s Array of char Print a Strings %f Float or double Float point value without exponent %ld Long int Long integer -65536 to 65535 %u Int Unsigned decimal integer %o Int Octal integer number without leading zero %x Int Hexadecimal integer number without leading 0x %e Float or double Float point values in exponent form %h int Short integer
  • 74. 11/8/2022 74 Rules for scanf()  The control strings must be preceded with ‘%’ sign and must be within quotations.  If there is a number of input data items, items should be separated by commas and must be preceded with ‘&’ sign except for char data types.  The control strings and the variables going to input should match with each other.  It must have termination.  The scanf() reads the data values until the blank space in numeric input. Apart from ‘%’ it can have ‘*’ sign. This is used to ignore the values inputted. eg: scanf(“%d%d%*d%*d%d”,&I,&j,&k); if the input is 10 20 3040 50 The output will be i = 10, j = 20, k = 50;
  • 75. 11/8/2022 75 Printf() printf() (This function is used to display the result or the output data on to screen) Syntax printf (“control strings”,var1,var2…..var n); Description Control strings can be anyone of the following a) Format code character code b) Execution character set c) Character/strings to be displayed Var1,var2 are the variables in which the data’s are stored. Example printf (“this is computer fundamental class”); printf (“/n computer fundamental class”);
  • 76. 11/8/2022 76 Rules for printf()  variables should be separated by commas and need not be preceded with ‘&’ sign.  The control strings and the variables must match with each other.  The control string must be in quotations and there we can also use any other text to print with data.
  • 77. 11/8/2022 77 Formatted IO / OP • Writing integers numbers Syntax Printf (%w.pd”,var1) Description W is used to specify the minimum field width for the output. P is the precession value. D is the control string specification Example Printf ( “%5.4d”,23); The output will be $0023. Printf (“%05d”,23); The output will be 00023.
  • 78. 11/8/2022 78 Formatted IO / OP • Writing Real Numbers Syntax Printf (%w.p.f”,var1) Description W is used to specify the minimum field width for the output. P is the number of digits to be displayed after the decimal point. f is the control string for float. Example Printf ( “%5.2.f”,2345.567890); The output will be $2345.56. Printf (“%10.2e”,48.3333); The output will be 4.8e+01
  • 79. 11/8/2022 79 Sample Program include<stdio.h> include<conio.h> void main() { int r,t; char u,y; float a,b,c,d; clrscr(); scanf("%d%d",&r,&t); printf("enter the char value"); scanf("%c",&y); printf("n%9c%9c",r,t); printf("nt%dt%d",r,t); printf("n the value of u is %c",y); getch();
  • 81. 11/8/2022 81 Control Statements A program consists of a number of statements which are usually executed in sequence. Programs can be much more powerful if we can control the order in which statements are run. Statements fall into three general types; 1) Assignment, where values, usually the results of calculations, are stored in variables. 2) Input / Output, data is read in or printed out. 3) Control, the program makes a decision about what to do next.
  • 82. 11/8/2022 82 Control Statements Control statements in C are used to write powerful programs by; Repeating important sections of the program. Selecting between optional sections of a program.
  • 83. 11/8/2022 83 Control Statements Control statements Selection Statements Iteration statements The if else statement The switch statements The while loop & Do while loop The for loop The break statement Continue statement Goto statement
  • 84. 11/8/2022 84 Control Statements cont. • ‘C’ language provides four general structure by which statements can be executed Structure Meaning Example Sequential It means the instructions are carried out in sequence a+=5; a=a+b; Selection Sequence of the instruction are determined by the result of the condition if (x>y) a = a+1; else a= a-1; Iteration Here the statements are repeatedly executed while (a<=10) printf (“%d” , a); Encapsulation Here the an iteration statement can have selection inside it or vice versa while (a<=10) { if(a>5) printf (%d” , a); }
  • 86. 11/8/2022 86 Types of Selection Statement 1. Simple if Selection statement 2. if else Selection statement 3. Nested if else Selection statement 4. else if ladder Selection statement
  • 87. 11/8/2022 87 Simple if Selection statement It is used to control the flow of execution of the statements and also to test logically whether the condition is true or false. if the condition is true then the statement following the “if “ is executed if it is false then the statement is skipped. Syntax: if ( condition ) { statement ; } Test Condition Executable X - Statement True
  • 88. 11/8/2022 88 Selection Statement • Properties of an if statement a) if the condition is true then the simple or compound statements are executed. b) If the condition is false it will skip the statement. c) The condition is given in parenthesis and must be evaluated as true or false. d) If a compound structure is provided, it must be enclosed in opening and closing braces
  • 89. 11/8/2022 89 //Biggest of Two Numbers #include <stdio.h> void main() { int a, b; clrscr(); printf(“Enter the A and B Value:n”); scanf(“%d”, &a); if (a > b) { printf(“A is Big”); } getch(); }
  • 90. 11/8/2022 90 • Basic Relational Operators can be used in C to make “if” statement conditions more useful • The 6 Basic Relational Operators are > , <, >= , <= , == , != (greater than, less than, greater than or equal to, less than or equal to, equal to, not equal to) Basic Relational Operators Basic Logic Operators • Basic Logic Operators can be used to combine more than one condition in an “if” statement or invert the result of a condition • The 3 Basic Logic Operators are && , || , ! (and, or, not)
  • 91. 11/8/2022 91 The if else statement It is used to execute some statements when the condition is true and execute some other statements when the condition is false depending on the logical test. Syntax: if ( condition ) { statement 1 ; (if the condition is true this statement will be executed) } else { statement 2 ; (if the condition is false this statement will be executed) } Test Condition Executable X - Statement True Executable Y - Statement False
  • 92. 11/8/2022 92 if else statements if (result >= 45) { printf ( “ Passedn “ ) ; printf ( “ Congratulationsn “ ) } else { printf ( “ Failedn “ ) ; printf ( “ Good luck in the resitsn “ ) ; }
  • 93. 11/8/2022 93 // Biggest of Two Numbers #include <stdio.h> void main() { int a, b; clrscr(); printf(“Enter the A and B Value:n”); scanf(“%d”, &a); if (a > b) { printf(“A is Big”); } else { printf(“B is Big”); } getch(); }
  • 94. 11/8/2022 94 // Given Number is ODD or EVEN Number #include <stdio.h> void main() { int n; clrscr(); printf(“Enter the Number:n”); scanf(“%d”, &n); if (n % 2 == 0) { printf(“Given Number is Even Number”); } else { printf(“Given Number is Odd Number”); } getch(); }
  • 95. 11/8/2022 95 Nested if….. else statement Syntax: if ( condition 1) { if ( condition 2) statement 1 ; else statement 2 ; } else { if (condition 3) statement 3; else statement 4; } when a series of if…else statements are occurred in a program, we can write an entire if…else statement in another if…else statement called nesting
  • 96. 11/8/2022 96 Test Condition_1 Executable X2 - Statement Test Condition_2 Executable X1 - Statement Test Condition_3 Executable X4 - Statement Executable X3 - Statement TRUE TRUE TRUE FALSE FALSE FALSE
  • 97. 11/8/2022 97 // Biggest of Three Numbers #include<stdio.h> void main() { int a, b, c; clrscr(); printf(“Enter the Three Numbers:n”); scanf(“%d%d%d”,&a,&b,&c); if (a > b) { if (a > c) printf(“A is Big”); else printf(“C is Big”); } else { if (b > c) printf(“B is Big”); else printf(“C is Big”); } getch(); }
  • 98. 11/8/2022 98 else if Ladder or Multiple if else Statements Syntax: if (condition_1) executed statement_1; else if (condition_2) executed statement_2; else if (condition_3) executed statement_3; ---------------------- ---------------------- else if (condition_n) executed statement_n; else executed statement_x; When a series of decisions are involved we have to use more than one if – else statement called as multiple if’s. Multiple if – else statements are much faster than a series of if – else statements, since theif structure is exited when any one of the condition is satisfied.
  • 99. 11/8/2022 99 Test Condition_1 Test Condition_2 Exec. Stat_1 Test Condition_3 TRUE Test Condition_n Exec. Stat_2 Exec. Stat_3 Exec. Stat_n Exec. Stat_X TRUE TRUE TRUE FALSE FALSE FALSE FALSE
  • 100. 11/8/2022 100 else if Ladder if (result >= 75) printf ( “ Passed: Grade An “ ) ; else if (result >= 60) printf ( “ Passed: Grade Bn “ ) ; else if (result >= 45) printf ( “ Passed: Grade Cn “ ) ; else printf ( “ Failedn “ ) ;
  • 101. 11/8/2022 101 main() { int n1,n2; int val; char op; printf("Enter a simple expression "); scanf("%d%c%d",&n1,&op,&n2); if(op == '+') val = n1 + n2; else if(op == '-') val = n1 - n2; else if(op == '/') val = n1 / n2; else if(op == '*') val = n1 * n2; else { printf(“?? operator %cn",op); exit(1); } printf("%d%c%d = %dn",n1,op,n2); } /*This program reads in a simple expression with a very restricted format and prints out its value. */
  • 102. 11/8/2022 102 Sample Program • Write a program to calculate the sales commission for the data given below: Sales value (Rs) Commission(%) Less than 1000 No commission Above 1000 but below 2000 5% of sales Above 2000 but below 5000 8% of sales Above 5000 10% of sales
  • 103. 11/8/2022 103 #include<stdio.h> #include<conio.h> Void main() { float sales, com; printf(“Enter the sales value :”); scanf(“%f”, &sales); if(sales<=1000) com = 0; else if(sales>1000 && sales <=2000) com = sales*5/100; else if(sales>2000 && sales <=5000) com = sales*5/100; else com = sales * 10/100; printf(“The commission for the sales value %f is %f”, sales, com); }
  • 104. 11/8/2022 104 THE SWITCH STATEMENT • The control statements which allow us to make a decision from the number of choices is called switch (or) Switch-case statement. • It is a multi way decision statement, it test the given variable (or) expression against a list of case value. switch (expression) { case constant 1: simple statement (or) compound statement; case constant 2: simple statement (or) compound statement; case constant 3: simple statement (or) compound statement; } switch (expression) { case constant 1: simple statement (or) compound statement; case constant 2: simple statement (or) compound statement; default : simple statement (or) compound statement; }
  • 105. 11/8/2022 105 Example Without Break Statement #include<stdio.h> void main () { int num1,num2,choice; printf(“Enter the Two Numbers:n”); scanf(“%d%d”,&num1,&num2); printf(“1 -> Additionn””); printf(“2->Subtractionn”); printf(“3->Multiplicationn”); printf(“4->Divisionn”); printf(“Enter your Choice:n”); scanf(“%d”,&choice); switch(choice) { case 1: Printf(“Sum is %dn”, num1+num2); case 2: Printf(“Diif. is %dn”, num1-num2); case 3: Printf(“Product is %dn”, num1*num2); case 4: Printf(“Division is %dn”, num1/num2); default: printf (“Invalid Choice…..n”); } getch(); } #include<stdio.h> void main () { int num1,num2,choice; printf(“Enter the Two Numbers:n”); scanf(“%d%d”,&num1,&num2); printf(“1 -> Additionn””); printf(“2->Subtractionn”); printf(“3->Multiplicationn”); printf(“4->Divisionn”); printf(“Enter your Choice:n”); scanf(“%d”,&choice); switch(choice) { case 1: printf(“Sum is %dn”, num1+num2); break; case 2: printf(“Diif. is %dn”, num1-num2); break; case 3: printf(“Product is %dn”, num1*num2); break; case 4: printf(“Division is %dn”, num1/num2); break; default: printf (“Invalid Choice…..n”); } getch(); } Example With Break Statement
  • 106. 11/8/2022 106 Fall through Statement in C
  • 107. 11/8/2022 107 Rules for Switch  The expression in the switch statement must be an integer or character constant.  No real numbers are used in an expression.  The default is optional and can be placed anywhere, but usually placed at end.  The case keyword must be terminated with colon (:);  No two case constant are identical.  The values of switch expression is compared with case constant in the order specified i.e from top to bottom.  The compound statements are no need to enclose within pair of braces.  Integer Expression used in different case statements can be specified in any order.  A switch may occur within another switch, but it is rarely done. Such statements are called as nested switch statements.  The switch statement is very useful while writing menu driven programs.
  • 108. 11/8/2022 108 Limitations of using a switch statement  Only One variable can be tested with the available case statements with the values stored in them (i.e., you cannot use relational operators and combine two or more conditions as in the case of if or if – else statements).  Floating – point, double, and long type variables cannot be used as cases in the switch statement.  Multiple statements can be executed in each case without the use of pair of braces as in the case of if or if – else statement.
  • 109. 11/8/2022 109 Iteration Statements 1. Iteration statements is also known as Looping statement. 2. A segment of the program that is executed repeatedly is called as a loop. 3. Some portion of the program has to be specified several number of times or until a particular condition is satisfied. 4. Such repetitive operation is done through a loop structure. 5. The Three methods by which you can repeat a part of a program are, 1. while Loops 2. do….while loops 3. for Loop Loops generally consist of two parts : Control expressions: One or more control expressions which control the execution of the loop, Body : which is the statement or set of statements which is executed over and over
  • 110. 11/8/2022 110 Any looping statement , would include the following steps: a) Initialization of a condition variable b) Test the control statement. c) Executing the body of the loop depending on the condition. d) Updating the condition variable.
  • 111. 11/8/2022 111 While Loop A while loop has one control expression, and executes as long as that expression is true. The general syntax of a while loop is A while loop is an entry controlled loop statement. initialize loop counter; while (condition) { statement (s); increment or decrement loop counter }
  • 112. 11/8/2022 112 Start Initialize Test Condition Body of Loop Increment or Decrement Stop False True
  • 113. 11/8/2022 113 Example: // Print the I Values #include <stdio.h> void main() { int i; clrscr(); i = 0; while(i<=10) { printf(“The I Value is :%dn”,i); ++I; } getch(); } // Summation of the series 1 + 2 + 3 + 4 + ……. #include <stdio.h> void main() { int i, sum; clrscr(); i = 1; sum = 0; while(i<=10) { sum = sum + i printf(“The Sum Value is:%dn”,i); ++I; } getch(); }
  • 114. 11/8/2022 114 Example: //Summation of the series 12 + 22 + 32 + ….. #include <stdio.h> #include<math.h> void main() { int i, sum; clrscr(); i = 1; sum = 0; while(i<=10) { sum = sum + i*i; //or I ^2 or pow(i, 2) printf(“The Sum Value is:%dn”,i); ++I; } getch(); } //Summation of the series 11 + 22 + 33 + ….. #include <stdio.h> #include<math.h> void main() { int i, sum; clrscr(); i = 1; sum = 0; while(i<=10) { sum = sum + pow(i,i) printf(“The Sum Value is:%dn”,i); ++I; } getch(); }
  • 115. 11/8/2022 115 #include<stdio.h> void main() { int number=0, rem=0, sum=0; clrscr(); printf(“Enter the value for number”); scanf(“%d”,&n); while(number > 0) { rem = number % 10; sum = sum + rem; number = number / 10; } printf(“the summation value of the given number %d is = %d”,number,sum); } Wap to print the summation of digits of any given number.
  • 116. 11/8/2022 116 THE do-while LOOP • The body of the loop may not be executed if the condition is not satisfied in while loop. • Since the test is done at the end of the loop, the statements in the braces will always be executed at least once. • The statements in the braces are executed repeatedly as long as the expression in the parentheses is true. Make a note that do while ends in a ; (semicolon) Note that Do… While Looping statement is Exit Controlled Looping statement initialize loop counter; do { statement (s); increment or decrement loop counter } while (condition);
  • 117. 11/8/2022 117 Start Initialize Test Condition Body of Loop Increment or Decrement Stop False True
  • 118. 11/8/2022 118 Sl.No. while loop do-while loop 1. The while loop tests the condition before each iteration. The do – while loop tests the condition after the first iteration. 2. If the condition fails initially the loop is Skipped entirely even in the first iteration. Even if the condition fails initially the loop is executed once. Difference Between While Loop and Do – While Loop
  • 119. 11/8/2022 119 Example: // Print the I Values #include <stdio.h> void main() { int i; clrscr(); i = 0; do { printf(“The I Value is :%dn”,i); ++I; } while(i<=10); getch(); } // Print the I Values #include <stdio.h> void main() { int i; clrscr(); i = 11; do { printf(“The I Value is :%dn”,i); ++I; } while(i<=10); getch(); }
  • 120. 11/8/2022 120 #include <stdio.h> void main() { int i, f1,f2,f3; clrscr(); f1 = 0; f2 = 1; printf(“The Fibonacci Series is:n”) printf(“%dn”,f1); printf(“%dn”,f2); do { f3 = f1 + f2; printf(%dn”,f3); f1 = f2; f2 = f3; ++i; } while(i <= 10); getch(); } Wap to print the Fibonacci series for any given number Using Do….While Loop
  • 121. 11/8/2022 121 for Loop The for loop is another repetitive control structure, and is used to execute set of instruction repeatedly until the condition becomes false. To set up an initial condition and then modify some value to perform each succeeding loop as long as some condition is true. The syntax of a for loop is The three expressions : expr1 - sets up the initial condition, expr2 - tests whether another trip through the loop should be taken, expr3 - increments or updates things after each trip. for( expr1; expr2 ;expr3) { Body of the loop; }
  • 122. 11/8/2022 122 Start Initialize; test_condition; Increment / Decrement Body of Loop Stop
  • 123. 11/8/2022 123 Exampl e #include<stdio.h> void main() { for (int i = 1; i <= 10; i++) printf("i is %dn", i); } There is no need of { } braces for single line statement and for multiple line it is essential else it will consider only next line of for statement. Given example will print the values from 1 to 10.
  • 124. 11/8/2022 124 Exampl e #include<stdio.h> #include<conio.h> void main() { int mul,limit,c,i; clrscr(); printf("Enter the Multiplication Number:n"); scanf("%d",&mul); printf("Enter the Limits:n"); scanf("%d",&limit); for(i=1;i<=limit;i++) { c = i * mul; printf("%d * %d: %dn",i,mul,c); } getch(); } Given example of Multiplication Table
  • 125. 11/8/2022 125 Additional Features of for Loop Case 1: The statement p = 1; for (n = 0; n < 17; ++ n) can be rewritten as for (p = 1, n = 0; n < 17;++n) Case 2: The second feature is that the test – condition may have any compound relation and the testing need not be limited only to the loop control variable. sum = 0; for (i = 1; i < 20 && sum < 100; ++ i) { sum = sum + i; printf(“%d %dn”, i, sum); }
  • 126. 11/8/2022 126 Additional Features of for Loop Conti… Case 3: It also permissible to use expressions in the assignment statements of initialization and increments sections. For Example: for (x = (m + n) / 2; x > 0; x = x / 2) Case 4: Another unique aspect of for loop is that one or more sections can be omitted, if necessary. For Example: m = 5; for ( ; m ! = 100 ;) { printf(“%dn”,m); m = m + 5; } Both the initialization and increment sections are omitted in the for statement. The initialization has been done before the for statement and the control variable is incremented inside the loop. In such cases, the sections are left ‘blank’. However, the semicolons separating the sections must remain. If the test – condition is not present, the for statement sets up an ‘infinite’ loop. Such loops can be broken using break or goto statements in the loop.
  • 127. 11/8/2022 127 Case 5: We can set up time delay loops using the null statement as follows: for ( j = 1000; j > 0; j = j – 1) 1. This is loop is executed 1000 times without producing any output; it simply causes a time delay. 2. Notice that the body of the loop contains only a semicolon, known as a null statement. Case 6: for ( j = 1000; j > 0; j = j – 1) This implies that the C compiler will not give an error message if we place a semicolon by mistake at the end of a for statement. The semicolon will be considered as a null statement and the program may produce some nonsense. Additional Features of for Loop Conti…
  • 128. 11/8/2022 128 Nesting of for Loop The One for statement within another for statement is called Nesting for Loop. Syntax: for (initialize; test_condi; incre. / decre.) { --------------- --------------- for (initialize; test_condi; incre. / decre.) { ----------- ----------- } --------------- --------------- } ----------------- ----------------- Outer for Loop Inner for Loop
  • 129. 11/8/2022 129 Example // Print the I and J Value #include<stdio.h> #include<conio.h> void main() { int I, j; clrscr(); for (i = 1; I < = 10 ; I ++) { printf (“The I Value is %d n", i); for (j = 1; j < = 10; j ++) { printf (“The J Value is %d n", j); } } getch(); }
  • 130. 11/8/2022 130 Example // Multiplication Table #include<stdio.h> #include<conio.h> void main() { int sum = 1,a,b; clrscr(); for (a=1;a<=5;a++) { printf ("the multiplication table for %dn",a); for (b=1;b<=12;b++) { sum=a*b; printf("%d*%d=",a,b); printf("%dn",sum); } sum = 0; } getch(); }
  • 131. 11/8/2022 131 Exercise 1) Write a program that will read in N numbers and print out their average. 2) Wap to print the following series for N given number 1+(1+2)+(1+2+3)+(1+2+3+4)……… 3) Wap to print the following series for N given number + ++ +++ ++++ +++++ ++++++ ……….. 4) Wap to print the following series for N given number 1 111 11111 1111111
  • 133. 11/8/2022 133 1. Loops perform a set of operations repeatedly until the control variable fails to satisfy the test – condition. 2. The number of times a loop is repeated is decided in advance and the test condition is written to achieve this. 3. Sometimes, when executing a loop it becomes desirable to skip a part of the loop or to leave the loop as soon as a certain condition occurs. 4. Jumps out of a Loop is Classified into three types 1. break; 2. continue; 3. goto;
  • 134. 11/8/2022 134 The break Statement 1. A break statement is used to terminate of to exit a for, switch, while or do – while statements and the execution continues following the break statement. 2. The general form of the break statement is 3. The break statement does not have any embedded expression or arguments. 4. The break statement is usually used at the end of each case and before the start of the next case statement. 5. The break statement causes the control to transfer out of the entire switch statement. break;
  • 135. 11/8/2022 135 #include <stdio.h> void main() { int i; clrscr(); i = 1; while (i < = 10) { printf (“The I Value is: %d n”, i); if (i = = 6) { printf (“The I value is Reached 6, So break of the programsn”); break; } ++ i }
  • 136. 11/8/2022 136 #include<stdio.h> void main () { int num1,num2,choice; printf (“Enter the Two Numbers:n”); scanf(“%d%d”,&num1,&num2); printf(“1 -> Additionn””); printf(“2->Subtractionn”); printf(“3->Multiplicationn”); printf(“4->Divisionn”); printf (“Enter your Choice:n”); scanf (“%d”, &choice); switch (choice) { case 1: printf (“Sum is %d n”, num1+num2); break; case 2: printf (“Diif. is %d n”, num1-num2); break; case 3: printf (“Product is %d n”, num1*num2); break; case 4: printf (“Division is %d n”, num1/num2); break; default: printf (“Invalid Choice…..n”); } getch(); }
  • 137. 11/8/2022 137 The continue Statement • The continue statement is used to transfer the control to the beginning of the loop, there by terminating the current iteration of the loop and starting again from the next iteration of the same loop. • The continue statement can be used within a while or a do – while or a for loop. • The general form or the syntax of the continue statement is • The continue statement does not have any expressions or arguments. • Unlike break, the loop does not terminate when a continue statement is encountered, but it terminates the current iteration of the loop by skipping the remaining part of the loop and resumes the control tot the start of the loop for the next iteration. continue;
  • 138. 11/8/2022 138 #include <stdio.h> void main() { int i; clrscr(); i = 1; while (i < = 10) { printf (“The I Value is: %d n”, i); if (i = = 6) { printf (“The I value is Reached 6, But Continue this Programsn”); continue; } ++ i }
  • 139. 11/8/2022 139 Sl.No. break continue 1. Used to terminate the loops or to exit loop from a switch. Used to transfer the control to the start of loop. 2. The break statement when executed causes immediate termination of loop containing it. Continue statement when executed causes Immediate termination of the current iteration of the loop. Differences Between Break and Continue Statement
  • 140. 11/8/2022 140 The goto Statement • The goto statement is used to transfer the control in a loop or a function from one point to any other portion in that program. • If misused the goto statement can make a program impossible to understand. • The general form or the syntax of goto statement is • The goto statement is classified into two types a. Unconditional goto b. Conditional goto goto label; Statement (s); ……………. label: statement (s);
  • 141. 11/8/2022 141 Unconditional Goto The Unconditional goto means the control transfer from one block to another block without checking the test condition. Example: #include <stdio.h> void main() { clrscr(); Start: printf(“Welcomen”); goto Start; getch(); }
  • 142. 11/8/2022 142 Conditional Goto The Conditional goto means the control transfer from one block to another block with checking the test condition. #include <stdio.h> void main() { int a, b; clrscr(); printf (“Enter the Two Value:n”); scanf (“%d”, &a, &b); if (a > b) goto output_1; else goto output_2; output_1: printf (“A is Biggest Number”); goto Stop; output_2: printf (“B is Biggest Number”); goto Stop; Stop: getch(); }
  • 144. Arrays
  • 145. 11/8/2022 145 Definition of Array An array is a fixed – size sequenced collection of elements of the same data type. It is simply a grouping of like – type data. In its simplest form, an array can be used to represent a list of numbers, or list of names. (OR) Array is a Collection of Homogenous Data Items Example 1. List of employees in an organization. 2. List of products and their cost sold by a store. 3. Test Scores of a class of students.
  • 146. Types of Array 1. One Dimensional Array 2. Two Dimensional Array 3. Multi Dimensional Array
  • 147. 11/8/2022 147 One Dimensional Array X Y Z One Dimensional Array is defined any one of axis (X or Y or Z) in the graph
  • 148. 11/8/2022 148 Arrays So far, we've been declaring simple variables int i; It is also possible to declare an array of Several elements. an array is a variable that can hold more than one value , The declaration int a[10]; declares an array, named a, consisting of ten elements, each of type int. We can represent the array a above with a picture like this: •Arrays are zero-based: the ten elements of a 10-element array are numbered from 0 to 9.
  • 149. 11/8/2022 149 Arrays • An array uses a single identifier, together with an integer index, to create one variable that can hold many values • An array is created the same as a “normal” variable, but with the addition of square brackets indicating the size of the array • Each value in the array is called an element
  • 150. 11/8/2022 150 One Dimensional Arrays Syntax data_type array_name[size]; Description Data_type valid data type in C language Array_name name given to the array Size are the size of the dimensions Example int a[3]; float b[4];
  • 151. 11/8/2022 151 Initializing Arrays • An array is initialized using a code block containing comma-delimited values which match in position the elements in the array • If there are values in the initialization block, but not enough to fill the array, all the elements in the array without values are initialized to 0 in the case of float or int, and NULL in the case of char • If there are values in the initialization block, an explicit size for the array does not need to be specified, only an empty Array Element Operator is needed. C will count the values and size the array for you.
  • 152. 11/8/2022 152 Initializing Arrays int x [ 5 ] = { 1,2,3,4,5 }; size 10 bytes creates array with elements 0-4 values 1-5 int x [ 5 ] = { 4,3 }; size 10 bytes creates array with elements 0-4 values 4,3,0,0,0 int x [ ] = { 1,2,3 }; size 6 bytes creates array with elements 0-2 values 1,2,3 char c [ 4 ] = { ‘M’ , ‘o’ , ‘o’ }; size 4 bytes creates array with elements 0-3 values M o o NULL
  • 153. 11/8/2022 153 Arrays Cont’ •The first element of the array is x[0], the second element is x[1].. e.g x[0] = 10; x[1] = 20; x[2] = 30 x[3] = 40 x[4] = 50 Total = 150; This loop sets all ten elements of the array a to 0. int a[i]; int i; for(i = 0; i < 10; i = i + 1) a[i] = 0; To copy the contents of one array to another, you must again do so one by one: int b[10]; for(i = 0; i < 10; i = i + 1) b[i] = a[i]; Printing Array Values for(i = 0; i < 10; i = i + 1) printf("%dn", a[i]);
  • 154. 11/8/2022 154 Array Basics • An array has a fixed number of elements based on its creation • The elements are ALWAYS numbered from 0 to 1 less than the array’s size • Referencing an element outside of the created bounds is possible but not recommended
  • 155. 11/8/2022 155 Visual Representation of an Array ? ? 23 ? int x[4]; x[2]=23; 342901 342905 342909 342913 0 1 2 3 X Address Offset Identifier Value
  • 156. 11/8/2022 156 The Array Element Operator [ ] • The Array Element Operator is used to reference a specific array element • The expression inside the Array Element must resolve to type int. This value is known as an index • The value of the index can be any number, but care should be taken that the index falls within the bounds of the array. The bounds of an array are defined as 0 to 1 less than the size of the array
  • 157. 11/8/2022 157 Array Example #include <stdio.h> int main(void) { int x[5]; x[0]=23; valid x[2.3]=5; invalid: index is not an int x[6]=45; valid but not recommended return 0; }
  • 158. 11/8/2022 158 A Simple Array Example #include <stdio.h> int main(void) { int i , x[ 5 ] , total = 0 ; for ( i = 0 ; i < 5 ; i++ ) { printf( “Enter mark %d” , i ); scanf ( “%d” , &x[ i ] ); } for ( i = 0 ; i < 5 ; i++ ) total = total + x[ i ]; printf ( “The average is %d” , total / 5 ); return 0; }
  • 159. 11/8/2022 159 ARRAYS • DON'T declare arrays with subscripts larger than you will need; it wastes memory. • DON'T forget that in C, arrays are referenced starting with subscript 0, not 1.
  • 160. 11/8/2022 160 Sample program #include<stdio.h> main() { int a[5],i; printf(‘enter the array elements”); for(i = 0;i<5;i++) scanf(“%d”,&a[i]); printf(“Array in the reverse order”); for(i = 5;i>0;i--) printf(“%d”,a[i]; }
  • 161. 11/8/2022 161 #inlcude<stdio.h> #define Max 5; main(); { int a[Max], i, min; int pos = 0; printf(“Enter the array elements”); for(i=0;i<5;i++) scanf(‘%d”,&a[i]); min = a[0]; for(i=1;i<Max;i++) if(a[i] < min) { min = a[i]; pos = i; } printf(“ Minimum Value = %d” , min); printf(“ Position of the Minimum Value = %d” , pos); }
  • 162. 11/8/2022 162 Exercise Identify the errors if any, 1) #define Max 1.5; main() { int a[Max]; } 2) main() { int i,a[5]; for(i=0;i<5;i++); a[i] = 0; }
  • 163. 11/8/2022 163 main() { int size; scanf(“%d”,&size); int arr[size]; for(int i=1;i<size;i++) { scanf(“%d”,&arr[i]); printf(“%d”,arr[i]); } }
  • 164. 11/8/2022 164 • State whether the following are true or false 1) The array int num[26] has twenty-six elements. 2) The expression num[1] designates the first element in the array. 3) The expression num[27] designates the twenty-eighth element in the array. • What is the difference between the 5’s in these two expressions int num[5]; num[5] = 200;
  • 165. 11/8/2022 165 Two-Dimensional Arrays • Two-dimensional Array: a collection of a fixed number of components arranged in two dimensions – All components are of the same type • The syntax for declaring a two-dimensional array is: dataType arrayName[intexp1][intexp2]; where intexp1 and intexp2 are expressions yielding positive integer values
  • 166. 11/8/2022 166 Two-Dimensional Arrays (continued) • The two expressions intexp1 and intexp2 specify the number of rows and the number of columns, respectively, in the array • Two-dimensional arrays are sometimes called matrices or tables
  • 167. 11/8/2022 167 Two Dimensional Array X Y Z Two Dimensional Array is defined any Two of axis of XY or YZ or ZX in the graph
  • 169. 11/8/2022 169 Two Dimensional Arrays Syntax data_type array_name[size_1][size_2]; Description Data_type valid data type in C language Array_name name given to the array Size_1 is the row size of the array Size_2 is the column size of the array Example int a[3][3]; float b[4][4]; Int a[3][2];
  • 170. 11/8/2022 170 Two Dimensional Array Initializing int table [2][3] = {0,0,0,1,1,1}; int table [2][3] = {{0,0,0},{1,1,1}}; int table [2][3] = { {0,0,0}, {1,1,1} }; int table [ ][3] = { {0,0,0} {1,1,1} };
  • 171. 11/8/2022 171 Two Dimensional Array Initializing If the values are missing in an initializer, they are automatically set to zero. For instance, the statement int table [2][3] = { {1,1}, {2} }; will initialize the first two elements of the first row to one, the first element of the second row to two , and all other elements to zero. When all the elements are to be initialized to zero, the following short – cut method may be used. int m[3][5] = { {0},{0},{0} }; The first element of each row is explicitly initialized to zero while other elements are automatically initialized to zero, The following statement will also achieve the same result: int m[3][5] = {0,0};
  • 172. 11/8/2022 172 Accessing Array Components • The syntax to access a component of a two-dimensional array is: arrayName[indexexp1][indexexp2] where indexexp1 and indexexp2 are expressions yielding nonnegative integer values • indexexp1 specifies the row position and indexexp2 specifies the column position
  • 173. 11/8/2022 173 0 1 2 0 1 2 3 4 25.75
  • 174. 11/8/2022 174 Multi – Dimensional Arrays • Three or More Dimensional Array is called the Multi – Dimensional Arrays. X Y Z Three Dimensional array defined in any three of axis of XYZ OR YZX OR ZXY in the graph
  • 175. 11/8/2022 175 Multi Dimensional Arrays • This arrays have more than one dimensions. Syntax data_type array_name[size1][size2]…….[sizen]; Description Data_type valid data type in C language Array_name name given to the array Size1,size2 are the sizes of the dimensions Example Int a[3][3][3]; Float b[4][4][4];
  • 177. 11/8/2022 177 Character and Strings • An char array is a group of characters that store related data • A String is a special char array that does not store related data, but a single piece of data made up of a number of characters OR A string is a sequence of character that is treated as a single data item. Any group of characters defined between double quotation marks is a string constant. • Example: Grades can be stored in a char array with the values A,B,C,D,F; when we want to print a specific grade we use only 1 element of the array • Example: But for grades like “Pass” and “Fail” we must print ALL the elements
  • 178. 11/8/2022 178 String Conti… • Most Computers languages have a string data type; C does NOT • There are 3 ways to store strings in memory – Fixed Length – Stored Length – Terminated • C adopts the Terminated String approach • A string in C is an array of chars terminated by the String Terminator or NULL character 0
  • 179. 11/8/2022 179 Common String Operation 1. Reading and Writing Strings 2. Combining strings together 3. Copying one string to another 4. Comparing strings for equality 5. Extracting a portion of a string
  • 180. 11/8/2022 180 Declaring and Initializing of String The General form of String is char string_name [size]; Example: char city [10]; char name[30]; When the complier assigns a character string to a character array, it automatically supplies a multicharacter (‘0’) at the end of the string. Therefore, the size should be equal to the maximum number of characters in the string plus one. C Permits a character array to be initialized in either of the following two forms: char city [9] = “ NEW YORK”; char city [9] = {‘N’.’E’,’W’,’ ‘,’Y’,’O’,’R’,’K’,’0’); C also permits us to initialize a character array without specifying the number of elements. In such cases, the size of the array will be determined automatically, base on the number of elements initialiazed. For Example, the statement char string [ ] = {‘G’,’O’,’O’,’D’,’0’};
  • 181. 11/8/2022 181 DeclaringConti…. We can also declare the size much larger than the string size in the initializer. That is, the statement. char str[9] = “GOOD”; G O O D 0 0 0 0 0 The following declaration is illegal. (I) char str[5]; str = “GOOD”; This will result in a compile time error. Also note that we cannot separate the initialization from declaration. (II) char s1[4] = “abc”; char s2[4]; s2 = s2; /* Error */ is not allowed. An array name cannot be used as the left operand of an assignment operator.
  • 182. 11/8/2022 182 Creating a String in C h i ! h i ! /0 array string 1820 1821 1822 2820 2821 2822 2823
  • 183. 11/8/2022 183 READING STRINGS FROM TERMINAL The familiar input function scanf can be used with %s format specification to read in a string of characters. Example: char address [10]; scanf(“%s”,address); The problem with the scanf function is that it terminates its input on the first white space it finds. Therefore, if the following line of text is typed in at the terminal, NEW YORK then only the string “NEW” will be read into the array address, since the blank space after the word ‘NEW’ will terminate the string reading. The scanf calls in the case of character arrays, the ampersand (&) is not required before the variable name. The address array is created in the memory as shown below: N E W O ? ? ? ? ? ? Note that the unused locations are filled with garbage. If we want to read the entire line “NEW YORK”, then we may use two character arrays of approximate sizes. That is, char adr1[5], adr2[5]; scanf(“%s %s”,adr1,adr2); With the line of text NEW YORK
  • 184. 11/8/2022 184 READING STRINGS FROM TERMINAL We can also specify the field width using the form %ws in the scanf statement for reading a specified number of characters from the input string. Example: scanf(“%ws”,name); Here two things may happen. 1. The width w is equal to or greater than the number of characters typed in. The entire string will be stored in the string variable. 2. The width w is less than the number of characters in the string. The excess characters will be truncated and left unread. Consider the following statements: char name [10]; scanf(“%5s”,name); The input string RAM and KRISHNA will be stored as: R A M 0 ? ? ? ? ? ? K R I S H 0 ? ? ? ?
  • 185. 11/8/2022 185 Reading a Line of Text We have seen just now that scanf with %s or %ws can read only strings without white spaces. That is, they cannot be used for reading a text containing more than one word. However, C Supports a format specification known as the edit set conversion code % [..] that can be used to read a line containing a variety of characters, including white spaces. Recall that we have used this conversion code in the program segment char line [80]; scanf (“%[^n]”,line); printf(“%s”,line); will read a line of input from the keyboard and display the same on the screen. We would very rarely use this method. Using getchar and gets Functions To read a single character from the terminal, using the function getchar. We can use this function repeatedly to read successive single characters from the input and place them into a character array. Thus, an entire line of text can be read and stored in an array. The reading is terminated when the newline character (‘n’) is entered and the null character is then inserted at the end of the string. The getchar function call takes the form: char ch; ch = getchar ( ); Note that the getchar function has no parameters.
  • 186. 11/8/2022 186 #include <stdio.h> void main() { char line[81], character; int c; c = 0; printf("Enter text. Press <Return> at endn"); do { character = getchar( ); line[c] = character; c++; } while(character != 'n'); c = c - 1; line [c] = '0'; printf("n%sn", line); }
  • 187. 11/8/2022 187 getchar and gets Conti…. Another and more convenient method of reading a string of text containing white spaces is to use the library function gets available in the <stdio.h> header file. This is a simple function with one string parameter and called as under. gets (str); str is string variable declared properly. It reads characters into str from the keyboard until a new line character is encountered and then appends a null character to the string. Unlike scanf, it does not skip white spaces. For example the code segment char line [80]; gets (line); printf(“%s”,, line); reads a line of text from the keyboard and displays it on the screen. The last two statements may be combined as follows: printf(“%s”,gets(line)); C does not provide operators that work on strings directly. For instance we cannot assign one string to another directly. For example, the assignment statements. string = “ABC” string1 = string2; are not valid.
  • 188. 11/8/2022 188 #include<stdio.h> void main() { char string1[80],string2[80]; int i; printf("Enter a string n"); printf("?"); scanf("%s",string2); for(i=0;string2[i] != 'o'; i++) string1[i] = string2[i]; string1[i] = 'o'; printf("n"); printf("%sn", string1); printf("Number of characters = %dn",i); }
  • 189. 11/8/2022 189 WRITING A STRINGS TO SCREEN We have used extensively the printf function with %s format to print strings to the screen. The format %s can be used to display an array of characters that is terminated by the null character. For example, the statement printf(“%s”, name); can be used to display the entire contents of the array name. We can also specify the precision with which the array is displayed. For instance, the specification %10.4 Indicates that the first four characters are to be printed in a field width of 10 columns. However, if we include the minus sign in the specification (e.g., %-10.4s), the string will be printed left- justified. Using putchar and puts Functions Like getchar, C supports another character handling function putchar to output the values of character variables. It takes the following form: char ch = ‘A’; putchar (ch); The function putchar requires one parameter. This statement is equivalent to: printf(“%c”,ch); We have used putchar function to write characters to the screen. We can use this function repeatedly to output a string of characters stored in an array using a loop:
  • 190. 11/8/2022 190 Example: char name[6] = “PARIS”; for(i=0;i<5;i++) putchar (name[i]); putchar(‘n’); Another and more convenient way of printing string values is to use the function puts declared in the header file <stdio.h>. This is a one parameter function and invoked as under: puts (str); Where str is a string variable containing a string value. This prints the value of the string variable str and then moves the cursor to the beginning of the next line on the screen. For example, the program segment char line [80]; gets (line); puts (line); Reads a line of text from the keyboard and displays it on the screen. Note that the syntax is very simple compared to using the scanf and printf statements Using putchar and puts Functions Conti…
  • 191. 11/8/2022 191 The C Library supports a large number of string – handling function that can be used to carry out many of the string manipulations. The most commonly used string – handling functions. STRING HANDLING FUNCTIONS Function Action strcat ( ) Concatenates two strings strcmp ( ) Compares two strings strcpy ( ) Copies one strings over another strlen ( ) Finds the length of a string
  • 193. 11/8/2022 193 C function can be classified into two categories, namely, library functions and user – defined functions. main is an example of user – defined functions. printf and scanf belong to the category of library functions. We have also used other library functions such as sqrt, cos, strcat, etc. The main distinction between these two categories is that library functions are not required to be written by us whereas a user – defined function has to be developed by the user at the time of writing a program. Introduction Some Characteristic of modular programming are: 1. Each module should do only one thing. 2. Communication between modules is allowed only by a calling module. 3. A module can be called by one and only one higher module 4. No communication can take place directly between modules that do not have calling – called relationship 5. All modules are designed as single – entry, single – exit systems using control structures
  • 194. 11/8/2022 194 1. Every program must have a main function to indicate where the program has to begin its execution. While it is possible to code any program utilizing only main function. It leads to a number of problems. 2. The program may become too large and complex and as a result the task of debugging, testing, and maintaining becomes difficult. 3. If a program is divided into functional parts, then each part may be independently coded and later combined into a single unit. These subprograms called ‘functions’ are much easier to understand, debug, and test. 4. The length of a source program can be reduced by using functions at appropriate places. This factor is particularly critical with microcomputers where memory space is limited. 5. It is easy to locate and isolate a faulty function for further investigations. 6. A function may be used by many other programs. Need for User – Defined Functions
  • 195. 11/8/2022 195 DEFINITION • A function is a named, independent section of C code that performs a specific task and optionally returns a value to the calling program. • A function is named • A function is independent. • A function performs a specific task. • A function can return a value to the calling program.
  • 196. 11/8/2022 196 Function COND… • FUNCTION DECLARATION • FUNCTION DEFINITION • FUNCTION INVOCATION (FUNCTION CALL)
  • 197. 11/8/2022 197 FUNCTION DEFINITION SYNTAX A function definition, also known as function implementation shall include the following elements. 1. Function Name 2. Function Type 3. List of Parameters 4. Local variable declarations 5. Function Statements 6. A Return statement All the six elements are grouped into two parts, namely, 1. Function header (First three Elements) 2. Function Body (Second three Elements) function_type function_name(parameter_list) { local variable declaration; executable statement_1; executable statement_2; --------------------------------- --------------------------------- return statement; } Example: float mul ( float x, float y) { float result; result = x * y; return (result); }
  • 198. 11/8/2022 198 FUNCTION PROTYPING OR FUNCTION DECLARATION • A function prototype is a very important feature of modern C programming • It must be added to a C program just before the main function, if we call that function before defining it • It tells the compiler what type of value the function returns, numbers and types of parameters, and order in which these parameters are expected. • There is no need for a prototype if the function is called after its definition
  • 199. 11/8/2022 199 FUNCTION DECLARATION SYNTAX Like variables, all functions in a C program must be declared, before they are invoked, A function declaration (also known as function prototype) consists of four parts. 1. Function type (return type) 2. Function name 3. Parameter list 4. Terminating semicolon The general format is Function_type function_name(parameter_list); Example: float mul (float x, float y);
  • 200. 11/8/2022 200 Function Definition A simple format of a C function definition is as follows: return-value-type function- name(parameters) { Declarations; Statements; Return (expression); } Function Prototype
  • 201. 11/8/2022 201 Sl.No. Function prototype Function definition 1. It declares the function. It defines the function 2. It ends with a semicolon. It doesn’t end with a semicolon. 3. Declaration need not include parameters. Definition should include names for the parameters. Difference Between Function Prototyping and Function Definition
  • 203. 11/8/2022 203 Function Terminologies Local and global variables – Local: a variable defined inside a function – Global: a variable defined outside of functions Sl.No. Local Variables Global Variables 1. These are declared within the body of the function. These are declared outside the function. 2. These variables can be referred only within the function in which it is declared. The values of the variables disappear once the function finishes its execution. These variable can be referred from any part of the program value of variables disappear only after the entire execution or the program.
  • 204. 11/8/2022 204 Formal and Actual Parameters • In C, there are two types of parameters • Formal parameters appear in the prototype and definition, and are representative of the data types the function expects to receive • Actual parameters appear only in a function call and are the actual data passed
  • 205. 11/8/2022 205 Example #include <stdio.h> void MyFun( int ); Formal Parameter int main( void ) { int x=3; printf( “x has a value of %d”, x); MyFun( x ); Actual Parameter printf( “x has a value of %d”, x); return 0; Parameter Passing } void MyFun( int x ) Formal Parameter { printf( “x has a value of %d”, x); x = 77; printf( “x has a value of %d”, x); }
  • 206. 11/8/2022 206 Function prototype and definition #include <stdio.h> int mod(int , int); /* Function Prototype */ void main() { printf("The mod is: %d ", mod(4,5)); } /* Function Definition */ int mod(int x, int y) { return x % y; }
  • 207. 11/8/2022 207 CATEGORIES OF FUNCTIONS Category 1: Functions with no arguments and no return values. Category 2: Functions with arguments and no return values. Category 3: Functions with arguments and one return value. Category 4: Functions with no arguments but return a value. Category 5: Functions that return multiple values.
  • 208. 11/8/2022 208 Function with No return type and No arguments void main() { ……. ……. ……. func1(); ……. } void func1() { ……. ……. ……. ……. }
  • 209. 11/8/2022 209 #include<stdio.h> void add(); void main() { add(); } void add() { int a,b,c; printf(“enter any two numbers”) scanf(“%d%d”,&a,&b); c= a+b; printf(“the addition of %d and %d is %d”,a,b,c); }
  • 210. 11/8/2022 210 Function with No return type and with arguments Void main() { ……. ……. ……. func1(x,y); ……. } func1(a,b) { ……. ……. ……. ……. }
  • 211. 11/8/2022 211 #include<stdio.h> void add(int,int); void main() { int x,y,c; printf(“enter any two numbers”) scanf(“%d%d”,&x,&y); add(x,y); } void add(int a,int b) { int c; c= a+b; printf(“the addition of %d and %d is %d”,a,b,c); }
  • 212. 11/8/2022 212 Function with return type and with arguments void main() { ……. ……. ……. int func1(x,y); ……. } int func1(a,b) { ……. ……. ……. ……. }
  • 213. 11/8/2022 213 #include<stdio.h> int add(int,int); Void main() { int x,y,c; printf(“enter any two numbers”) scanf(“%d%d”,&x,&y); c = add(x,y); printf(“The Result = %d ”,c); } int add(int a ,int b) { int c; c= a+b; return (c); }
  • 214. 11/8/2022 214 Function with return type and No arguments void main() { ……. ……. ……. int func1(); ……. } int func1() { ……. ……. ……. ……. }
  • 215. 11/8/2022 215 #include<stdio.h> int add(); Void main() { int c; c = add(); printf(“The Result = %d ”,c); } int add() { int a,b,c; printf(“enter any two numbers”) scanf(“%d%d”,&a,&b); c= a+b; return (c); }
  • 216. 11/8/2022 216 Functions that return multiple values #include <stdio.h> void interchange (int *a , int *b) void main() { int i=5,j=10; printf(“Before : I and J value is %d and %d”,I,j); interchange(&i,&j); printf(“After : I and J value is %d and %d”,I,j); } void interchange (int *a, int *b) { int t; t=*a *a=*b *b=t } O/p: Before : I and J value is 5 and 10 After : I and J value is 10 and 5
  • 217. 11/8/2022 217 Function without a prototype #include <stdio.h> int sum(int x, int y) { return x+y; } void main() { printf("The sum is: %d ", sum(4,5)); }
  • 218. 11/8/2022 218 Parameter Passing Methods • In C there are two ways of passing parameters to a function Call by Value Call by Reference
  • 219. 11/8/2022 219 Call by value Copy of data passed to function Changes to copy do not change original Prevent unwanted side effects This Method copies the value of actual parameters(calling program) into the formal parameters(called program) of the functions. Here the changes of the formal parameters cannot affect the actual parameters. Because only the copy of actual arguments were passed. A function can return only one value per call.
  • 220. 11/8/2022 220 Example #include <stdio.h> int cube (int) void main() { int n=5; printf(“Cube of %d is %d”,n,cube(n)); } int cube (int x); { x=x*x*x; return x; } O/p: Cube of 5 is 125
  • 221. 11/8/2022 221 Call by reference Function can directly access data Changes affect original It is another way of passing parameter to the functions here the address of arguments are copied into the parameters inside the functions. The address is used to access the actual arguments used in the call. By using this we can make a function to return more the one value(indirectly).
  • 222. 11/8/2022 222 Example #include <stdio.h> void interchange (int *a , int *b) void main() { int i=5,j=10; printf(“Before : I and J value is %d and %d”,I,j); interchange(&i,&j); printf(“After : I and J value is %d and %d”,I,j); } void interchange (int *a, int *b) { int t; t=*a *a=*b *b=t } O/p: Before : I and J value is 5 and 10 After : I and J value is 10 and 5
  • 223. 11/8/2022 223 Call by value Vs Call by reference • Call by value Copy of data passed to function Changes to copy do not change original Prevent unwanted side effects • Call by reference Function can directly access data Changes affect original
  • 224. 11/8/2022 224 #include <stdio.h> void swap(int, int); void main() { int num1, num2; num1 = 10; num2 = 20; swap ( num1, num2 ); printf("%d %dn", num1, num2); } void swap(int val1, int val2) { int temp; temp = val1; val1 = val2; val1 = temp; }
  • 225. 11/8/2022 225 Swap two integers using call by value(cont.) • In the above example, we passed parameters by value, a copy is made of the variable and thus any change made to the parameters val1 and val2 will not be passed back to the main function • The main function will not know anything about the swapping of val1 and val2 Therefore, the output of the above program will be ….? • Normally if we wished to pass back a value we would use return or we would pass the parameters by reference
  • 226. 11/8/2022 226 Nested Functions In C , it provides a facility to write one function with in another function. This is called nesting of functions Main() { --------- func1(); --------- --------- } func1() { --------- func2(); --------- --------- } func2() { --------- --------- --------- --------- }
  • 228. 11/8/2022 228 Recursion Recursion is a process of calling the same function itself again and again until same condition is satisfied. This is used for repetitive computation in which each action is satisfied in terms of a previous result •A function can call itself –Directly –Indirectly Function1() { ----- Function1(); ----- }
  • 229. 11/8/2022 229 Recursion vs. Iteration • Repetition – Iteration: explicit loop – Recursion: repeated function calls • Termination – Iteration: loop condition fails – Recursion: base case recognized • Both can have infinite loops • Balance between performance (iteration) and good software engineering (recursion)
  • 230. 11/8/2022 230 Sl.No. Iteration Recursion 1. Iteration explicitly user a repetition structure. Recursion achieves repetition throught repeated function calls. 2. Iteration terminates when the loop continuation condition fails. Recursion terminates when a base case is reached. 3. Iteration keeps modifying the counter until the loop continuation condition fails. Recursion keeps producing simple versions of the original problem until the base case is reached. 4. An infinite loop occurs when the loop step continuation test never becomes false. An infinite loop occurs if the recursion doses not reduce the problem each time in a manner that converges the base case. 5. Iteration normally occurs within a loop so extra memory assignment is omitted. Recursion causes another copy of the function & hence a considerable memory space is occupied. 6. It reduces the processor operating It increases the processor operating Difference Between Iteration and Recursion
  • 231. 11/8/2022 231 Example: fibonacci.c function Fibonacci ( n ) { if ( n is less than or equal to 1 ) then return n else return Fibonacci ( n - 2 ) + Fibonacci ( n - 1 ) } /* Compute the n-th Fibonacci number, when=0,1,2,... */ long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); }
  • 232. 11/8/2022 232 Example: Computation of fib(4) + fib(2) fib(3) fib(4) long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 4 4 4 4
  • 233. 11/8/2022 233 Example: Computation of fib(4) fib(2) fib(3) + fib(4) long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 2 2 2 2 + fib(0) fib(1)
  • 234. 11/8/2022 234 Example: Computation of fib(4) fib(2) fib(3) + fib(4) long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 0 0 + fib(0) fib(1) 0
  • 235. 11/8/2022 235 Example: Computation of fib(4) fib(2) fib(3) + fib(4) long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 0 0 + 0 fib(1) 0
  • 236. 11/8/2022 236 Example: Computation of fib(4) fib(2) fib(3) + fib(4) + fib(1) 0 long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 2 2 2 20
  • 237. 11/8/2022 237 Example: Computation of fib(4) fib(2) fib(3) + fib(4) long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 1 1 + fib(1) 0 1
  • 238. 11/8/2022 238 Example: Computation of fib(4) fib(2) fib(3) + fib(4) long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 1 1 + 1 0 1
  • 239. 11/8/2022 239 Example: Computation of fib(4) fib(2) fib(3) + fib(4) + 0 1 long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 2 2 0 2 1
  • 240. 11/8/2022 240 Example: Computation of fib(4) 1 fib(3) + fib(4) long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 2 2 0 + 0 1 2 1
  • 241. 11/8/2022 241 Example: Computation of fib(4) + fib(3) fib(4) long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 4 4 4 4 1 + 0 1 1
  • 242. 11/8/2022 242 Example: Computation of fib(4) + fib(3) fib(4) long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 3 3 3 3 1 + 0 1 + fib(1) fib(2)
  • 243. 11/8/2022 243 Example: Computation of fib(4) + fib(3) fib(4) 1 + 0 1 + fib(1) fib(2) long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 1 1 1
  • 244. 11/8/2022 244 Example: Computation of fib(4) + fib(3) fib(4) 1 + 0 1 + 1 fib(2) long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 1 1 1
  • 245. 11/8/2022 245 Example: Computation of fib(4) + fib(3) fib(4) 1 + 0 1 + 1 fib(2) long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 3 3 3 3 1
  • 246. 11/8/2022 246 Example: Computation of fib(4) + fib(3) fib(4) 1 + 0 1 + 1 fib(2) long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 2 2 2 2 + fib(0) fib(1)
  • 247. 11/8/2022 247 Example: Computation of fib(4) + fib(3) fib(4) 1 + 0 1 + 1 fib(2) + fib(0) fib(1) long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 0 0 0
  • 248. 11/8/2022 248 Example: Computation of fib(4) + fib(3) fib(4) 1 + 0 1 + 1 fib(2) + 0 fib(1) long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 0 0 0
  • 249. 11/8/2022 249 Example: Computation of fib(4) + fib(3) fib(4) 1 + 0 1 + 1 fib(2) + 0 fib(1) long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 2 2 2 2 0
  • 250. 11/8/2022 250 Example: Computation of fib(4) + fib(3) fib(4) 1 + 0 1 + 1 fib(2) + 0 fib(1) long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 1 1 1
  • 251. 11/8/2022 251 Example: Computation of fib(4) + fib(3) fib(4) 1 + 0 1 + 1 fib(2) + 0 1 long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 1 1 1
  • 252. 11/8/2022 252 Example: Computation of fib(4) + fib(3) fib(4) 1 + 0 1 + 1 fib(2) + 0 1 long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 2 2 2 2 0 1
  • 253. 11/8/2022 253 Example: Computation of fib(4) + fib(3) fib(4) 1 + 0 1 + 1 1 + 0 1 long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 2 2 2 2 0 1
  • 254. 11/8/2022 254 Example: Computation of fib(4) + fib(3) fib(4) 1 + 0 1 + 1 1 + 0 1 long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 3 3 3 3 1 1
  • 255. 11/8/2022 255 Example: Computation of fib(4) + 2 fib(4) 1 + 0 1 + 1 1 long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 3 3 3 3 1 1 + 0 1
  • 256. 11/8/2022 256 Example: Computation of fib(4) + 2 fib(4) 1 + 0 1 + 1 1 + 0 1 long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 4 4 4 4 1 2
  • 257. 11/8/2022 257 Example: Computation of fib(4) + 2 3 1 + 0 1 + 1 1 + 0 1 long fib ( int n ) { if ( n <= 1 ) return n ; else return fib( n - 2 ) + fib( n - 1 ); } 4 4 4 4 1 2
  • 258. 11/8/2022 258 Example: Computation of fib(4) + 2 3 1 + 0 1 + 1 1 + 0 1 Thus, fib(4) returns the value 3