CPrograming Notes Final 2ndsem
CPrograming Notes Final 2ndsem
PROGRAMMING
C PROGRAMMING Page 1
Algorithm:
An algorithm is a description of a procedure which terminates with a result. Algorithm is a
step-by-step method of solving a problem.
Properties of an Algorithm:
1) Finiteness: - An algorithm terminates after a finite numbers of steps.
2) Definiteness: - Each step in algorithm is unambiguous. This means that the action
specified by the step cannot be interpreted (explain the meaning of) in multiple ways & can
be performed without any confusion.
3) Input: - An algorithm accepts zero or more inputs
4) Output:- An algorithm should produce at least one output.
C PROGRAMMING Page 2
5) Effectiveness: - It consists of basic instructions that are realizable. This means that the
instructions can be performed by using the given inputs in a finite amount of time.
Writing an algorithm
An algorithm can be written in English, like sentences and using mathematical
formulas. Sometimes algorithm written in English like language is Pseudo code.
Examples
1) Finding the average of three numbers
1. Let a,b,c are three integers
2. Let d is float
3. Display the message “Enter any three integers:”
4. Read three integers and stores in a,b,c
5. Compute the d = (a+b+c)/3.0
6. Display “The avg is:” , d
7. End.
Example 1: Write an algorithm to determine a student‟s final grade and indicate whether
it is passing or failing. The final grade is calculated as the average of four marks.
Pseudocode::
Input a set of 4 marks
Calculate their average by summing and dividing by 4
if average is below 50
Print “FAIL”
else
Print “PASS”
Detailed Algorithm :
Step 1: Input M1,M2,M3,M4
Step 2: GRADE (M1+M2+M3+M4)/4
Step 3: if (GRADE < 50) then
Print “FAIL”
else
Print “PASS”
endif
Flowcharts :
The pictorial representation of algorithm is called flowchart.
2 : as different symbols are used to specify the type of operation performed, it is easier to
understand the complex programs with the help of flowcharts.
C PROGRAMMING Page 3
Flowchart Symbols
C PROGRAMMING Page 4
print num is odd
Step4: End Step4: STOP
(Algorithm in natural language) (Algorithm by using pseudo code)
FLOWCHART :
read num
If
System Development:
C PROGRAMMING Page 5
Or
Systems Requirements
Analysis
Design
Coding
System Test
Maintenance
1. Statement of Problem
a) Working with existing system and using proper questionnaire, the problem should be
explained
clearly.
b) What inputs are available, what outputs are required and what is needed for creating workable
solution, should be understood clearly.
C PROGRAMMING Page 6
2. Analysis
a) The method of solutions to solve the problem can be identified.
b) We also judge that which method gives best results among different methods of solution.
3. Design
a) Algorithms and flow charts will be prepared.
b) Focus on data, architecture, user interfaces and program components.
4. System Test
The algorithms and flow charts developed in the previous steps are converted into actual
programs in the high level languages like C.
a. Compilation
The process of translating the program into machine code is called as Compilation. Syntactic
errors are found quickly at the time of compiling the program. These errors occur due to the
usage of wrong syntaxes for the statements.
Eg: x=a*y+b
There is a syntax error in this statement, since, each and every statement in C language ends with
a semicolon (;).
b. Execution
The next step is Program execution. In this phase, we may encounter two types of errors.
Runtime Errors: these errors occur during the execution of the program and terminate the
program abnormally.
Logical Errors: these errors occur due to incorrect usage of the instructions in the program. These
errors are neither detected during compilation or execution nor cause any stoppage to the
program execution but produces incorrect output.
5. Maintenance
We are maintenance the software by updating the information, providing the security and license
for the software.
What is C?
C is a programming language developed at AT & T‟s Bell Laboratories of USA in 1972. It
was designed and written by Dennis Ritche. Dennis Ritchie is known as the founder of c
language.
It was developed to overcome the problems of previous languages such as B, BCPL etc.
Features of C
1. Portability or machine independent
C PROGRAMMING Page 7
2. Sound and versatile language
3. Fast program execution.
4. An extendible language.
5. Tends to be a structured language.
Historical developments of C(Background)
Year Language Developed by Remarks
/* Documentation section */
/* Link section */
/* Definition section */
/* Global declaration section */
main()
{
Declaration part
Executable part (statements)
}
/* Sub-program section */
The documentation section is used for displaying any information about the
program like the purpose of the program, name of the author, date and time written
etc, and this section should be enclosed within comment lines. The statements in
the documentation section are ignored by the compiler.
The link section consists of the inclusion of header files.
C PROGRAMMING Page 8
The definition section consists of macro definitions, defining constants etc,.
Anything declared in the global declaration section is accessible throughout
the program, i.e. accessible to all the functions in the program.
main() function is mandatory for any program and it includes two parts, the
declaration part and the executable part.
The last section, i.e. sub-program section is optional and used when we require
including user defined functions in the program.
First C Program
Before starting the abcd of C language, you need to learn how to write, compile and run the first
c program.
To write the first c program, open the C console and write the following code:
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. printf("Hello C Language");
5. getch();
6. }
#include <stdio.h> includes the standard input output library functions. The printf() function
is defined in stdio.h .
#include <conio.h> includes the console input output library functions. The getch() function is
defined in conio.h file.
void main() The main() function is the entry point of every program in c language. The void
keyword specifies that it returns no value.
getch() The getch() function asks for a single character. Until you press any key, it blocks the
screen.
C TOKENS: The smallest individual units are known as tokens. C has six types of tokens.
1: Identifiers
C PROGRAMMING Page 9
2: Keywords
3: Constants
4: Strings
5: Special Symbols
6: Operators
Identifiers:
Identifiers refer to the names of variables, constants, functions and arrays. These are user-defined
names is called Identifiers. These identifier are defined against a set of rules.
Rules for an Identifier
1. An Identifier can only have alphanumeric characters( a-z , A-Z , 0-9 ) and underscore( _
).
2. The first character of an identifier can only contain alphabet( a-z , A-Z ) or underscore ( _
).
3. Identifiers are also case sensitive in C. For example name and Name are two different
identifier in C.
Ex : Valid Invalid
STDNAME Return
SUB $stay
TOT_MARKS 1RECORD
Y2K
C PROGRAMMING Page 10
Keywords: A keyword is a reserved word. All keywords have fixed meaning that means we
cannot change. Keywords serve as basic building blocks for program statements. All keywords
must be written in lowercase. A list of 32 keywords in c language is given below:
Data Types/Types:
To store data the program must reserve space which is done using datatype. A datatype is a
keyword/predefined instruction used for allocating memory for data. A data type specifies
the type of data that a variable can store such as integer, floating, character etc . It used for
declaring/defining variables or functions of different types before to use in a program.
C PROGRAMMING Page 11
Types Data Types
The basic data types are integer-based and floating-point based. C language supports both signed
and unsigned literals. The memory size of basic data types may change according to 32 or 64 bit
operating system. Let‟s see the basic data types. Its size is given according to 32 bit
architecture.
C PROGRAMMING Page 12
int or signed int 2 -32768 to 32767 %d or %i
Variables
A variable is a name of memory location. It is used to store data. Variables are changeable,
we can change value of a variable during execution of a program. . It can be reused many
times.
C PROGRAMMING Page 13
Declaration of Variables : A variable can be used to store a value of any data type. The
declaration of variables must be done before they are used in the program. The general format
for declaring a variable.
Ex : int x,y,z;
float a,b;
char m,n;
Assigning values to variables : values can be assigned to variables using the assignment
operator (=). The general format statement is :
Ex : x=100;
a= 12.25;
m=‟f‟;
we can also assign a value to a variable at the time of the variable is declared. The general format
of declaring and assigning value to a variable is :
Ex ; int x=100;
float a=12.25;
char m=‟f‟;
Types of Variables in C
1. local variable
2. global variable
3. static variable
Constants
Constants refer to fixed values that do not change during the execution of a program.
C PROGRAMMING Page 14
C supports several kinds of constants.
CONSTANTS
TYPES OF C CONSTANT:
1. Integer constants
2. Real or Floating point constants
3. Character constants
4. String constants
5. Backslash character constants
Integer constants:
An integer constant is a numeric constant (associated with number) without any fractional or
exponential part. There are three types of integer constants in C programming:
For example:
In C programming, octal constant starts with a 0 and hexadecimal constant starts with a
0x.
C PROGRAMMING Page 15
String constant : A string constant is a sequence of characters enclosed in double quote, the
characters may be letters, numbers, special characters and blank space etc
a) \n newline
b) \r carriage return
c) \t tab
d) \v vertical tab
e) \b backspace
f) \f form feed (page feed)
g) \a alert (beep)
h) \‟ single quote(„)
i) \” double quote(“)
j) \? Question mark (?)
k) \\ backslash (\)
1) C const keyword
The const keyword is used to define constant in C programming.
1. const float PI=3.14;
Now, the value of PI variable can't be changed.
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. const float PI=3.14;
5. clrscr();
6. printf("The value of PI is: %f",PI);
C PROGRAMMING Page 16
7. getch();
8. }
Output:
The value of PI is: 3.140000
2) C #define preprocessor
The #define preprocessor is also used to define constant.
C#define
The #define preprocessor directive is used to define constant or micro substitution. It can use any
basic data type.
Syntax:
#define token value
Let's see an example of #define to define a constant.
#include <stdio.h>
1. #define PI 3.14
2. main() {
3. printf("%f",PI);
4. }
Output:
3.140000
Input / Output (I/O) Functions : In „C‟ language, two types of Input/Output functions are
available, and all input and output operations are carried out through function calls. Several
functions are available for input / output operations in „C‟. These functions are collectively
known as the standard i/o library.
Input: In any programming language input means to feed some data into program. This can be
given in the form of file or from command line.
Output: In any programming language output means to display some data on screen, printer or
in any file.
The Standard Files
C programming treats all the devices as files. So devices such as the display are addressed in the
same way as files and the following three files are automatically opened when a program
executes to provide access to the keyboard and screen.
C PROGRAMMING Page 17
Standard output stdout Screen
I / O Functions
scanf() print()
getc() putc()
fscanf() fprintf() getchar() putchar()
gets() puts()
getch()
getche()
. Formated I/O Functions : formatted I/O functions operates on various types of data.
1 : printf() : output data or result of an operation can be displayed from the computer to a
standard output device using the library function printf(). This function is used to print any
combination of data.
Formating string : it prints all the character given in doublequotes (“ “) except formatting
specifier.
C PROGRAMMING Page 18
Ex : printf(“ hello “);-> hello
printf(“a”); -> a
printf(“%d”, a); -> a value
printf(“%d”); -> no display
scanf() : input data can be entered into the computer using the standard input „C‟ library
function called scanf(). This function is used to enter any combination of input.
The scanf() function is used to read information from the standard input device (keyboard).
Each variable name (argument) must be preceeded by an ampersand (&). The (&) symbol gives
the meaning “address of “ the variable.
a) character I/O:
a) String I/O:
1. gets(): Used for accepting any string from the standard input(stdin)
eg:gets()
C PROGRAMMING Page 19
OPERATORS AND EXPRESSIONS:
Operators : An operator is a Symbol that performs an operation. An operators acts some
variables are called operands to get the desired result.
Ex : a+b;
Where a,b are operands and + is the operator.
Types of Operator :
1) Arithmetic Operators.
2) Relational Operators.
3) Logical Operators.
4) Assignment Operators.
5). Unary Operators.
6) Conditional Operators.
7) Special Operators.
8) Bitwise Operators.
9) Shift Operators.
Arithmetic Operators
An arithmetic operator performs mathematical operations such as addition, subtraction and
multiplication on numerical values (constants and variables).
C Program to demonstrate the working of arithmetic operators
#include <stdio.h>
void main()
{
int a = 9,b = 4, c;
c = a+b;
printf("a+b = %d \n",c);
c = a-b;
printf("a-b = %d \n",c);
c = a*b;
printf("a*b = %d \n",c);
c=a/b;
printf("a/b = %d \n",c);
c=a%b;
printf("Remainder when a divided by b = %d \n",c);
C PROGRAMMING Page 20
Output
a+b = 13
a-b = 5
a*b = 36
a/b = 2
Remainder when a divided by b=1
Relational Operators. A relational operator checks the relationship between two operands.
If the relation is true, it returns 1; if the relation is false, it returns value 0.
Operands may be variables, constants or expressions.
#include <stdio.h>
int main()
int a = 5, b = 5, c = 10;
C PROGRAMMING Page 21
printf("%d < %d = %d \n", a, b, a < b); //false
return 0;
Output
5 == 5 = 1
5 == 10 = 0
5>5=0
5 > 10 = 0
5<5=0
5 < 10 = 1
5 != 5 = 0
5 != 10 = 1
5 >= 5 = 1
5 >= 10 = 0
C PROGRAMMING Page 22
5 <= 5 = 1
5 <= 10 = 1
Logical Operators.
These operators are used to combine the results of two or more conditions. An expression
containing logical operator returns either 0 or 1 depending upon whether expression results true
or false. Logical operators are commonly used in decision making in C programming.
Truth Table
Op1 Op2 Op1 && Op2
true true true
true false false
false true false
false false false
Logical OR : If any one condition true the complete condition becomes true.
Truth Table
Op1 Op2 Op1 // Op2
true true true
true false true
false true true
false false false
Logical Not : This operator reverses the value of the expression it operates on i.e, it makes a
true expression false and false expression true.
Op1 Op1 !
true false
false true
#include <stdio.h>
C PROGRAMMING Page 23
int main()
return 0;
Output
(a = b) || (c < b) equals to 1
C PROGRAMMING Page 24
(a != b) || (c < b) equals to 0
!(a != b) equals to 1
!(a == b) equals to 0
Assignment Operators. Assignment operators are used to assign a value (or) an expression
(or) a value of a variable to another variable.
Ex : x=10;
y=a+b;
z=p;
„C‟ provides compound assignment operators to assign a value to variable in order to assign a
new value to a variable after performing a specified operation.
#include <stdio.h>
int main()
int a = 5, c;
c = a;
C PROGRAMMING Page 25
printf("c = %d \n", c);
c += a; // c = c+a
c -= a; // c = c-a
c *= a; // c = c*a
c /= a; // c = c/a
c %= a; // c = c%a
return 0;
Output
c=5
c = 10
c=5
c = 25
c=5
c=0
C PROGRAMMING Page 26
Unary operators are having higher priority than the other operators. Unary operators, meaning
they only operate on a single operand.
1. Increment operator is used to increment the current value of variable by adding integer 1.
We have two types of increment operator i.e Pre-Increment and Post-Increment Operator.
Pre-Increment
Pre-increment operator is used to increment the value of variable before using in the expression. In
the Pre-Increment value is first incremented and then used inside the expression.
b = ++y;
In this example suppose the value of variable „y‟ is 5 then value of variable „b‟ will be 6 because
the value of „y‟ gets modified before using it in a expression.
Post-Increment
Post-increment operator is used to increment the value of variable as soon as after executing
expression completely in which post increment is used. In the Post-Increment value is first used
in a expression and then incremented.
b = x++;
In this example suppose the value of variable „x‟ is 5 then value of variable „b‟ will be 5 because
old value of „x‟ is used.
Note :
We cannot use increment operator on the constant values because increment operator operates on
only variables. It increments the value of the variable by 1 and stores the incremented value back
to the variable
C PROGRAMMING Page 27
b = ++5;
or
b = 5++;
Operator Meaning
++x Pre increment
- -x Pre decrement
x++ Post increment
x-- Post decrement
Where
1 : ++x : Pre increment, first increment and then do the operation.
2 : - -x : Pre decrement, first decrements and then do the operation.
3 : x++ : Post increment, first do the operation and then increment.
4 : x- - : Post decrement, first do the operation and then decrement.
C PROGRAMMING Page 28
Syntax : condition ? exp1 : exp2;
#include <stdio.h>
int main(){
char February;
int days;
printf("If this year is leap year, enter 1. If not enter any integer: ");
scanf("%c",&February);
// If test condition (February == 'l') is true, days equal to 29.
// If test condition (February =='l') is false, days equal to 28.
days = (February == '1') ? 29 : 28;
printf("Number of days in February = %d",days);
return 0;
}
Output
If this year is leap year, enter 1. If not enter any integer: 1
Number of days in February = 29
Bitwise Operators:
Bitwise operators are used to manipulate the data at bit level. It operates on integers only. It
may not be applied to [Link] arithmetic-logic unit (which is within the CPU), mathematical
operations like: addition, subtraction, multiplication and division are done in bit-level which
makes processing faster and saves power. To perform bit-level operations in C programming,
bitwise operators are used.
Operator Meaning
& Bitwise AND
| Bitwise OR
^ Bitwise XOR
<< Shift left
>> Shift right
~ One‟s complement.
Bitwise OR operator |
The output of bitwise OR is 1 if at least one corresponding bit of two operands is 1. In C
Programming, bitwise OR operator is denoted by |.
12 = 00001100 (In Binary)
25 = 00011001 (In Binary)
Bitwise OR Operation of 12 and 25
00001100
| 00011001
C PROGRAMMING Page 30
}
Output
Output =29
Output
Output = 21
C PROGRAMMING Page 31
~ 00100011
Special Operators
1 ) Comma Operator :The comma operator is used to separate the statement elements such as
variables, constants or expressions, and this operator is used to link the related expressions
together, such expressions can be evaluated from left to right and the value of right most
expressions is the value of combined expressions
C PROGRAMMING Page 32
2 ) Sizeof Operator : The sizeof() is a unary operator, that returns the length in bytes o the
specified variable, and it is very useful to find the bytes occupied by the specified variable in the
memory.
Syntax : sizeof(variable-name);
int a;
Ex : sizeof(a); //OUTPUT ---- 2bytes
Compound statements
A compound statement (also called a "block") typically appears as the body of another statement,
such as the if statement, for statement, while statement, etc
C PROGRAMMING Page 33
{
pi=3.14;
area=pi*radius*radius;
Example:
C PROGRAMMING Page 34
Selection Statement/Conditional Statements/Decision Making Statements
A selection statement selects among a set of statements depending on the value of a controlling
expression. Or
Moving execution control from one place/line to another line based on condition
Or
Conditional statements control the sequence of statement execution, depending on the value of a
integer expression
1: if
2: switch.
1: simple if statement.
2: if –else statement
4: else if ladder.
if statement.
The if statement controls conditional branching. The body of an if statement is executed if the
value of the expression is nonzero. Or if statement is used to execute the code if condition
is true. If the expression/condition is evaluated to false (0), statements inside the body of if is
skipped from execution.
Syntax : if(condition/expression)
true statement;
C PROGRAMMING Page 35
}
statement-x;
If the condition/expression is true, then the true statement will be executed otherwise the true
statement block will be skipped and the execution will jump to the statement-x. The „true
statement‟ may be a single statement or group of statement.
If there is only one statement in the if block, then the braces are optional. But
if there is more than one statement the braces are compulsory
Flowchart
Example:
#include<stdio.h>
main()
int a=15,b=20;
C PROGRAMMING Page 36
if(b>a)
printf("b is greater");
Output
b is greater
#include <stdio.h>
int main()
{
int number;
return 0;
}
Output 1
Enter an integer: -2
You entered -2.
The if statement is easy.
Output 2
Enter an integer: 5
The if statement in C programming is easy.
If-else statement : The if-else statement is an extension of the simple if statement. The
general form is. The if...else statement executes some code if the test expression is true (nonzero)
and some other code if the test expression is false (0).
C PROGRAMMING Page 37
Syntax : if (condition)
{
true statement;
}
else
{
false statement;
}
statement-x;
If the condition is true , then the true statement and statement-x will be executed and if the
condition is false, then the false statement and statement-x is executed.
Or
If test expression is true, codes inside the body of if statement is executed and, codes inside the
body of else statement is skipped.
If test expression is false, codes inside the body of else statement is executed and, codes inside
the body of if statement is skipped.
Flowchart
Example:
// Program to check whether an integer entered by the user is odd or even
#include <stdio.h>
int main()
{
C PROGRAMMING Page 38
int number;
printf("Enter an integer: ");
scanf("%d",&number);
// True if remainder is 0
if( number%2 == 0 )
printf("%d is an even integer.",number);
else
printf("%d is an odd integer.",number);
return 0;
}
Output
Enter an integer: 7
7 is an odd integer.
Syntax : if(condition-1)
{ {
if (condition-2)
{
statement-1;
}
else
{
statement-2;
}
}
else
{
statement-3;
C PROGRAMMING Page 39
}
statement-x;
If the condition-1 is false, the statement-3 and statement-x will be executed. Otherwise it
continues to perform the second test. If the condition-2 is true, the true statement-1 will be
executed otherwise the statement-2 will be executed and then the control is transferred to the
statement-x
Flowchart
Example
#include<stdio.h>
int var1, var2;
printf("Input the value of var1:");
scanf("%d", &var1);
printf("Input the value of var2:");
scanf("%d",&var2);
if (var1 !=var2)
{
printf("var1 is not equal to var2");
//Below – if-else is nested inside another if block
if (var1 >var2)
{
printf("var1 is greater than var2");
}
else
{
printf("var2 is greater than var1");
}
}
else
C PROGRAMMING Page 40
{
printf("var1 is equal to var2");
}
…
Else if ladder.
The if else-if statement is used to execute one code from multiple conditions.
Syntax : if( condition-1)
{
statement-1;
}
else if(condition-2)
{
statement-2;
}
else if(condition-3)
{
statement-3;
}
else if(condition-n)
{
statement-n;
}
else
{
default-statement;
}
statement-x;
Flowchart
C PROGRAMMING Page 41
Example
#include<stdio.h>
#include<conio.h>
void main(){
int number=0;
clrscr();
printf("enter a number:");
scanf("%d",&number);
if(number==10){
printf("number is equals to 10");
}
else if(number==50){
printf("number is equal to 50");
}
else if(number==100){
printf("number is equal to 100");
}
else{
printf("number is not equal to 10, 50 or 100");
}
getch();
}
C PROGRAMMING Page 42
Switch statement : when there are several options and we have to choose only one option
from the available ones, we can use switch statement. Depending on the selected option, a
particular task can be performed. A task represents one or more statements.
Syntax:
switch(expression)
{
case value-1:
statement/block-1;
break;
case value-2:
statement/block t-2;
break;
case value-3:
statement/block -3;
break;
case value-4:
statement/block -4;
break;
default:
default- statement/block t;
break;
C PROGRAMMING Page 43
1
Example
#include<stdio.h>
main()
{
int a;
printf("Please enter a no between 1 and 5: ");
scanf("%d",&a);
switch(a)
{
case 1:
printf("You chose One");
break;
case 2:
C PROGRAMMING Page 67
printf("You chose Two");
break;
case 3:
printf("You chose Three");
break;
case 4:
printf("You chose Four");
break;
case 5: printf("You chose Five.");
break;
default :
printf("Invalid Choice. Enter a no between 1 and 5"); break;
}
}
Flowchart
C PROGRAMMING Page 68
Iteration Statements/ Loop Control Statements
A sequence of statements are executed until a specified condition is true. This sequence of
statements to be executed is kept inside the curly braces { } known as the Loop body. After
every execution of loop body, condition is verified, and if it is found to be true the loop body is
executed again. When the condition check returns false, the loop body is not executed.
The loops in C language are used to execute a block of code or a part of the program several
times. In other words, it iterates/repeat a code or group of code many times.
Or Looping means a group of statements are executed repeatedly, until some logical condition
is satisfied.
Suppose that you have to print table of 2, then you need to write 10 lines of [Link] using the
loop statement, you can do it by 2 or 3 lines of code only.
C PROGRAMMING Page 69
4 : Updating the condition variable.
1 : while loop
2 : do-while loop
3 : for loop
variable initialization ;
while (condition)
statements ;
The while loop is an entry controlled loop statement, i.e means the condition is evaluated
first and it is true, then the body of the loop is executed. After executing the body of the loop,
the condition is once again evaluated and if it is true, the body is executed once again, the
process of repeated execution of the loop continues until the condition finally becomes false and
the control is transferred out of the loop.
#include<conio.h>
C PROGRAMMING Page 70
void main( )
int x;
x=1;
while(x<=10)
printf("%d\t", x);
x++;
getch();
Output
1 2 3 4 5 6 7 8 9 10
C PROGRAMMING Page 71
Flowchart
C PROGRAMMING Page 72
do-while loop
Syntax : variable initialization ;
do{
statements ;
}while (condition);
The do-while loop is an exit controlled loop statement The body of the loop are executed first
and then the condition is evaluated. If it is true, then the body of the loop is executed once again.
The process of execution of body of the loop is continued until the condition finally becomes
false and the control is transferred to the statement immediately after the loop. The statements
are always executed at least once.
Flowchart
C PROGRAMMING Page 73
Example : Program to print first ten multiple of 5
#include<stdio.h>
#include<conio.h>
void main()
int a,i;
a=5;
i=1;
do
printf("%d\t",a*i);
i++;
getch();
C PROGRAMMING Page 74
Output
5 10 15 20 25 30 35 40 45 50
Example
main()
int i=0
do
printf("while vs do-while\n");
}while(i= =1);
printf("Out of loop");
Output:
while vs do-while
Out of loop
For Loop:
This is an entry controlled looping statement.
One of the most important features of this loop is that the three actions can be taken at a
time like variable initialization, condition checking and increment/decrement.
The for loop can be more concise and flexible than that of while and do-while loops.
Statements;
C PROGRAMMING Page 75
Example:
#include<stdio.h>
#include<conio.h>
void main( )
int x;
printf("%d\t",x);
getch();
Output
1 2 3 4 5 6 7 8 9 10
C PROGRAMMING Page 76
C PROGRAMMING Page 77
Basis of Difference For Loop While Loop Do While Loop
In case if the
Where to
test condition In case if the test
Use for Loop, while Loop
fails at the condition fails at the
and do while Loop
beginning, and beginning, and you
you may not may want to execute
want to execute the body of the loop
the body of the atleast once even in
loop even once the failed condition,
if it fails, then then the do while
the while loop loop should be
should be preferred.
preferred.
C PROGRAMMING Page 78
the update-expression expression
is executed which should be
updates the value of updated inside
counter variable. the body of the
while. However,
the counter
variable is
initialized
outside the body
of the loop.
update-expression
for (
initialization-
exp.(s);
while(test- do {
test-expression(s); expression)
body-of-the-
update- { loop;
expression(s)
body-of-the- update-
Syntax of Loops
) loop; expression(s);
{ update- }
expression(s);
body-of-the-loop while (test-
; } expression);
C PROGRAMMING Page 79
do while loop is an
exit controlled loop,
Which one is Entry
Both loops i.e. for loop and while loop are means means that
Controlled Loop
entry controlled loop, means condition is condition is placed
and
checked first and if the condition is true after the body of the
Which one is Exit
then the body of the loop will executes. loop and is evaluated
Controlled Loop ?
before exiting from
the loop.
int i = 1; int i = 1;
: :
:
: :
Conversion of one Loop
:
to another Loop do
while (i<=10)
or for (int i=1; i<=10;
Example : Print numbers i++) { {
from 1 to 10 using all the
{ Printf(“%d”,i);
three loops.
Printf(“%d”,i); ++i;
Printf(“%d”,i); }
++i }
} while (i<=10)
Syntax:
C PROGRAMMING Page 80
{
statement ;
Example:
main()
Break Continue
1 : break statement takes the control to the 1 :continue statement takes the control to
ouside of the loop the beginning of the loop..
C PROGRAMMING Page 81
ARRAYS
Using Arrays in C
C PROGRAMMING Page 82
C supports a derived data type known as array that can be used to handle large amounts of data
(multiple values) at a time.
Definition:
Or
An array is a collection of data that holds fixed number of values of same type.
Or
Or
An array is a data structured that can store a fixed size sequential collection of elements of same
data type.
Suppose you have to store marks of 50 students, one way to do this is allotting 50
variables. So it will be typical and hard to manage. For example we can not access the
value of these variables with only 1 or 2 lines of code.
Another way to do this is array. By using array, we can access the elements easily. Only
few lines of code is required to access the elements of array.
Advantage of C Array
2) Easy to traverse data: By using the for loop, we can retrieve the elements of an array easily.
C PROGRAMMING Page 83
3) Easy to sort data: To sort the elements of array, we need a few lines of code only.
4) Random Access: We can access any element randomly using the array.
Disadvantage of Array
Fixed Size: Whatever size, we define at the time of declaration of array, we can't exceed the
limit. So, it doesn't grow the size dynamically like LinkedList
Declaration of an Array
For example:
int arr[10];
Here int is the data type, arr is the name of the array and 10 is the size of array. It means
array arr can only contain 10 elements of int type. Index of an array starts from 0 to size-1 i.e
first element of arr array will be stored at arr[0] address and last element will occupy arr[9].
Initialization of an Array
C PROGRAMMING Page 84
After an array is declared it must be initialized. Otherwise, it will contain garbage value(any
random value). An array can be initialized at either compile time or at runtime.
Example
int age[5]={22,25,30,32,35};
4 : String initialization.
1 : Initilizing all specified memory locations : If the number of values to be initialized is equal
to size of array. Arrays can be initialized at the time of declaration. Array elements can be
initialized with data items of type int,float,char, etc.
int a[5]={10,20,30,40,50};
C PROGRAMMING Page 85
During compilation, 5 contiguous memory locations are reserved by the compiler for the
variable a and all these locations are initialized.
10 20 30 40 50
If the size of integer is 2 bytes, 10 bytes will be allocated for the variable a.
C O M P U T E R
//error : number of initial values are more than the size of array.
C PROGRAMMING Page 86
//error : Number of initial values are more than the size of array.
int a[5]={10,15};
10 15 0 0 0
You can access elements of an array by indices/index. You can use array subscript (or index) to
access any element stored in array. Subscript starts with 0, which means array_name[0] would be
used to access first element in an array.
In general array_name[n-1] can be used to access nth element of an array. where n is any integer
number.
Example
float mark[5];
Suppose you declared an array mark as above. The first element is mark[0], second element
is mark[1] and so on.
C PROGRAMMING Page 87
Few key notes:
As you can see, in above example that I have used „for loop‟ and „scanf statement‟ to enter data
into array. You can use any loop for data input.
Code:
scanf("%d", &num[x]);
For example you want to read and display array elements, you can do it just by using any
loop. Suppose array is mydata[20].
printf("%d\n", mydata[x]);
C PROGRAMMING Page 88
Exmaple
#include<stdio.h>
#include<conio.h>
void main()
int i;
printf("%d\t",arr[i]);
getch();
Output
2 3 4
Exmaple
1. include <stdio.h>
2. #include <conio.h>
3. void main(){
4. int i=0;
5. int marks[5]={20,30,40,50,60};//declaration and initialization of array
6. clrscr();
7.
8. //traversal of array
9. for(i=0;i<5;i++){
10. printf("%d \n",marks[i]);
11. }
12.
13. getch();
14. }
C PROGRAMMING Page 89
Output
20
30
40
50
60
An array can also be initialized at runtime using scanf() function. This approach is usually
used for initializing large array, or to initialize array with user specified values.
Example
#include<stdio.h>
#include<conio.h>
void main()
int arr[4];
int i, j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
printf("%d\n",arr[j]);
getch();
C PROGRAMMING Page 90
}
Two‐Dimensional Arrays
The two dimensional array in C language is represented in the form of rows and columns,
also known as matrix. It is also known as array of arrays or list of arrays.
The two dimensional, three dimensional or other dimensional arrays are also known
as multidimensional arrays.
data_type array_name[size1][size2];
Example
int twodimen[4][3];
Example :
int a[3][4];
Initialization of 2D Array
int arr[4][3]={{1,2,3},{2,3,4},{3,4,5},{4,5,6}};
C PROGRAMMING Page 91
Accessing Two-Dimensional Array Elements
An element in a two-dimensional array is accessed by using the subscripts, i.e., row index
and column index of the array.
Example
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. int i=0,j=0;
5. int arr[4][3]={{1,2,3},{2,3,4},{3,4,5},{4,5,6}};
6. clrscr();
7. //traversing 2D array
8. for(i=0;i<4;i++){
9. for(j=0;j<3;j++){
10. printf("arr[%d] [%d] = %d \n",i,j,arr[i][j]);
11. }//end of j
12. }//end of i
13. getch();
14. }
Output
arr[0][0] = 1
arr[0][1] = 2
arr[0][2] = 3
arr[1][0] = 2
arr[1][1] = 3
arr[1][2] = 4
arr[2][0] = 3
arr[2][1] = 4
arr[2][2] = 5
arr[3][0] = 4
arr[3][1] = 5
arr[3][2] = 6
#include<stdio.h>
#include<conio.h>
C PROGRAMMING Page 92
void main()
int a[25][25],b[25][25],c[25][25],i,j,m,n;
clrscr();
scanf("%d%d",&m,&n);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("\t%d",&a[i][j]);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("\t%d",&b[i][j]);
for(i=0;i<m;i++)
printf("\n");
for(j=0;j<n;j++)
C PROGRAMMING Page 93
printf("\t%d",a[i][j]);
for(i=0;i<m;i++)
printf("\n");
for(j=0;j<n;j++)
printf("\t%d",a[i][j]);
for(i=0;i<m;i++)
printf("\n");
for(j=0;j<n;j++)
c[i][j]=a[i][j]+b[i][j];
printf("\t%d",c[i][j]);
getch();
C PROGRAMMING Page 94
Write a C program Multiplication of Two Matrices.
#include<stdio.h>
#include<conio.h>
void main()
int a[25][25],b[25][25],c[25][25],i,j,m,n,k,r,s;
clrscr();
scanf("%d%d",&m,&n);
scanf("%d%d",&r,&s);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("\t%d",&a[i][j]);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("\t%d",&b[i][j]);
C PROGRAMMING Page 95
}
for(i=0;i<m;i++)
printf("\n");
for(j=0;j<n;j++)
printf("\t%d",a[i][j]);
for(i=0;i<m;i++)
printf("\n");
for(j=0;j<n;j++)
printf("\t%d",b[i][j]);
for(i=0;i<m;i++)
printf("\n");
for(j=0;j<n;j++)
c[i][j]=0;
for(k=0;k<m;k++)
C PROGRAMMING Page 96
c[i][j]=c[i][j]+a[i][k]*b[k][j];
for(i=0;i<m;i++)
printf("\n");
for(j=0;j<n;j++)
printf("\t%d",c[i][j]);
getch();
STRINGS:
String Concepts
Or
C PROGRAMMING Page 97
In „C‟ language the group of characters, digits, and symbols enclosed within double
quotation ( " " ) marks are called as string otherwise a string is an array of characters and
terminated by NULL character which is denoted by the escape sequence „\0‟.
C Strings
Declaration of String: C does not support string as a data type. However, it allows us to
represent strings as character arrays. In C, a string variable is any valid C variable name and it is
always declared as an array of characters.
Note: In declaration of string size must be required to mention otherwise it gives an error.
Using this declaration the compiler allocates 9 memory locations for the variable a
ranging from 0 to 8.
0 1 2 3 4 5 6 7 8
Here, the string variable a can hold maximum of 9 characters including NULL(\0)
character.
Note: In Initialization of the string if the specific number of character is not initialized it then
rest of all character will be initialized with NULL.
C PROGRAMMING Page 98
char str[5]={'5','+','A'};
str[0]; ---> 5
str[1]; ---> +
str[2]; ---> A
Note: In initialization of the string we can not initialized more than size of string elements.
Ex:
Char b[9]={„C‟,‟O‟,‟M‟,‟P‟,‟U‟,‟T‟,‟E‟,‟R‟};
The compiler allocates 9 memory locations ranging from 0 to 8 and these locations are
initialized with the characters in the order specified. The remaining locations are automatically
initialized to null characters.
C O M P U T E R \0
0 1 2 3 4 5 6 7 8
2 : Partial Array Initilization : If the characters to be initialized is less than the size of the
array, then the characters are stored sequentially from left to [Link] remaining locations will
be initialized to NULL characters automatically.
C PROGRAMMING Page 99
Ex : Consider the partial initilization
int a[10]={„R‟,‟A‟,‟M‟,‟A‟ };
The compiler allocates 10 bytes for the variable a ranging from 0 to 9 and
initializes first four locations with the ASCII characters of „R‟, „A‟, „M‟, „A‟.The remaining
locations are automatically filled with NULL characters (i.e,\0).
R A M A \0 \0 \0 \0 \0 \0
0 1 2 3 4 5 6 7 8 9
3 : Initilization without size : consider the declaration along with the initialization
char b[]={„C‟,‟O‟,‟M‟,‟P‟,‟U‟,‟T‟,‟E‟,‟R‟};
In this declaration, The compiler will set the array size to the total number of
initial values i.e 8. The character will be stored in these memory locations in the order specified.
C O M P U T E R
4) Array Initilization with a String : consider the declaration with string initialization.
char b[ ] = “COMPUTER”;
Here, the string length is 8 bytes. But , string size is 9 bytes. So the compiler reserves
8+1 memory locations and these locations are initialized with the characters in the order
specified. The string is terminated by \0 by the compiler.
C O M P U T E R \0
0 1 2 3 4 5 6 7 8
The string “COMPUTER” contin 8 charactes, because it is a string. It always ends with
null character. So, the array is 9 bytes (i.e string length+1 byte for null character).
scanf(“%s”,name);
printf(“%s”,name);
Example:
1. #include <stdio.h>
2. void main ()
3. {
4. char ch[13]={'c', 'p', 'r', 'o', 'g', 'r', 'a', 'm', 'm', i', „n‟, „g‟, „\0‟};
5. char ch2[13]="cprogramming";
6.
9. }
Output
Example:
#include <stdio.h>
int main()
char name[20];
scanf("%s", name);
return 0;
Output
The strings can be read from the keyboard and can be displayed onto the monitor
using various functions.
The various input and output functions that are associated with can be classified
as
I / O Functions
scanf() print()
getc() putc()
fscanf() fprintf()
getchar() putchar()
gets() puts()
getch()
getche()
1 : getchar() function : A single character can be given to the computer using „C‟ input library
function getchar().
The getchar() function is written in standared I/O library. It reads a single character from a
standared input device. This function do not require any arguments, through a pair of
parantheses, must follow the statements getchar().
#include<stdio.h>
#include<conio.h>
#include<ctype.h>
void main()
char ch;
clrscr();
ch=getchar();
if(isalpha(ch)>0)
printf("it is a alphabet:%c\n",ch);
else if(isdigit(ch)>0)
printf("it is a digit:%c\n",ch);
else
printf("it is a alphanumeric:%c\n",ch);
getch();
it is a alphabet:a
2 : putchar() function :The putchar() function is used to display one character at a time on the
standared output device. This function does the reverse operation of the single character input
function.
#include<stdio.h>
#include<conio.h>
#include<ctype.h>
void main()
char ch;
ch=getchar();
if(islower(ch))
putchar(toupper(ch));
else
putchar(tolower(ch));
getch();
Ex :#include<stdio.h>
#include<conio.h>
void main()
char str[40];
clrscr();
gets(str);
getch();
4 : puts() :The puts() function is used to display the string to the standared output device
(Monitor).
#include<stdio.h>
#include<conio.h>
void main()
char str[40];
gets(str);
puts(str);
getch();
subbareddy
subbareddy
getch() function :The getch function reads a single character directly from the keyboard,
without echoing to the screen.
Ex : #include<stdio.h>
void main()
char c;
c=getch();
getche() function :The getche() function reads a single character from the keyboard and echoes
it to the current text window.
Ex : #include<stdio.h>
void main()
c=getche();
getc() function : This function is used to accept a single character from the standared input to a
character variable.
putc() function :This function is used to display a single character in a character variable to
standared output device.
Array of Strings
1 : strlen(string) – String Length : This function is used to count and return the number of
characters present in a string.
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
char name[]="JBREC";
int len1,len2;
clrscr();
len1=strlen(name);
len2=strlen("JBRECECE");
getch();
OUTPUT :
#include<stdio.h>
#include<conio.h>
void main()
int index;
scanf("%s",str);
for(index=0;str[index]!=0;index++);
getch();
OUTPUT :
2 : strcpy(string1,string2) – String Copy : This function is used to copy the contents of one string
to another string.
Syntax : strcpy(string1,string2);
Where
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
char str2[10];
strcpy(str2,str1);
strcpy(str2,str1+1);
OUTPUT :
#include<stdio.h>
#include<conio.h>
void main()
char str1[10],str2[20];
int index;
scanf(“%s”,str1);
for(index=0;str1[index]!='\0';index++)
str2[index]='\0';
printf("String1 is :%s\n",str1);
printf("String2 is :%s\n",str2);
getch();
OUTPUT :
String1 is : cprogramming
String2 is : cprogramming
3 : strlwr(string) – String LowerCase : This function is used to converts upper case letters of the
string in to lower case letters.
Syntax : strlwr(string);
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
char str[]="JBREC";
clrscr();
strlwr(str);
getch();
#include<stdio.h>
#include<conio.h>
void main()
char str[10];
int index;
scanf("%s",str);
for(index=0;str[index]!='\0';index++)
str[index]=str[index]+32;
getch();
4 : strupr(string) – String UpperCase : This function is used to converts lower case letters of the
string in to upper case letters.
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
char str[]="jbrec";
strupr(str);
printf("UpperCase is :%s\n",str);
getch();
#include<stdio.h>
#include<conio.h>
void main()
char str[10];
int index;
scanf("%s",str);
for(index=0;str[index]!='\0';index++)
str[index]=str[index]-32;
getch();
Syntax : strcmp(string1,string2);
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
char str1[]="reddy";
char str2[]="reddy";
int i,j,k;
i=strcmp(str1,str2);
j=strcmp(str1,"subba");
k=strcmp(str2,"Subba");
printf("%5d%5d%5d\n",i,j,k);
OUTPUT : 0 -1 32
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
char str1[10],str2[20];
int index,l1,l2,flag=1;
scanf("%s",str1);
scanf("%s",str2);
l1=strlen(str1);
l2=strlen(str2);
printf("Length of string1:%d\n",l1);
printf("Length of string2:%d\n",l2);
if(l1==l2)
for(index=0;str1[index]!='\0';index++)
if(str1[index]!=str2[index])
flag=0;
else
flag=0;
if(flag==1)
else
Length of string1 :5
Length of string2 :5
Syntax : strcat(sting1,string2);
Where
when the above function is executed, string2 is combined with string1 and it
removes the null character (\0) of string1 and places string2 from there.
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
char str1[10]="jbrec";
char str2[]="ece";
strcat(str1,str2);
printf("%s\n",str1);
printf("%s\n",str2);
getch();
OUTPUT : jbrecece
ece
7 : strrev(string) - String Reverse :This function is used to reverse a string. This function takes
only one argument and return one argument.
Syntax : strrev(string);
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
scanf("%s",str);
getch();
FUNCTIONS:
User‐Defined Functions
To perform any task, we can create function. A function can be called many times. It
provides modularity and code reusability.
1) Code Reusability
By creating functions in C, you can call it many times. So we don't need to write the same code
again and again.
2) Code optimization
Example: Suppose, you have to check 3 numbers (781, 883 and 531) whether it is prime number or
not. Without using function, you need to write the prime number logic 3 times. So, there is repetition of
code.
But if you use functions, you need to write the logic only once and you can reuse it several times.
Types of Functions
1. Library Functions: are the functions which are declared in the C header files such as
scanf(), printf(), gets(), puts(), ceil(), floor() etc. You just need to include appropriate
header files to use these functions. These are already declared and defined in C
libraries. oints to be Remembered
System defined functions are implemented in .dll files. (DLL stands for Dynamic Link
Library).
To use system defined functions the respective header file must be included.
2. User-defined functions: are the functions which are created by the C programmer, so
that he/she can use it many times. It reduces complexity of a big program and optimizes
the code. Depending upon the complexity and requirement of the program, you can create
as many user-defined functions as you want.
In order to write an efficient user defined function, the programmer must familiar with the
following three elements.
2 : Function Call.
3 : Function Definition
A function declaration is the process of tells the compiler about a function name.
Syntax
return_type function_name(parameter/argument);
return_type function-name();
int add();
When we call any function control goes to function body and execute entire code.
Syntax : function-name();
function-name(parameter/argument);
Defining a function.
Defining of function is nothing but give body of function that means write logic inside function
body.
Syntax
declaration of variables;
{ {
int z; ( or ) return ( x + y );
z = x + y; }
When the compiler encounters functionName(); inside the main function, control of the program
jumps to
void functionName()
And, the compiler starts executing the codes inside the user-defined function.
The control of the program jumps to statement next to functionName(); once all the codes inside
the function definition are executed.
Example:
#include<stdio.h>
clrsct();
int a=10,b=20, c;
c=a+b;
void main()
Output
Sum:30
Example:
#include <stdio.h>
int main()
int n1,n2,sum;
scanf("%d %d",&n1,&n2);
return 0;
int result;
result = a+b;
Return Statement
or
For example,
return a;
return (a+b);
The return statement terminates the execution of a function and returns a value to the calling
function. The program control is transferred to the calling function after return statement.
In the above example, the value of variable result is returned to the variable sum in
the main() function.
PARAMETERS :
parameters provides the data communication between the calling function and called function.
2 : Formal parameters.
1 : Actual Parameters : These are the parameters transferred from the calling function (main
program) to the called function (function).
2 : Formal Parameters :These are the parameters transferred into the calling function (main
program) from the called function(function).
Ex : main()
..... .
Where
1 : Actual parameters are used in calling 1 : Formal parameters are used in the
function when a function is invoked. function header of a called function.
Here a,b are actual parameters. Here m,n are called formal parameters.
3 : Actual parameters sends values to the 3 : Formal parametes receive values from
formal parameters. the actual parametes.
PASSING PARAMETERS TO FUNCTIONS :There are two ways to pass value or data to
function in C language: call by value and call by reference. Original value is not modified in
The called function receives the information from the calling function through the parameters.
The variables used while invoking the calling function are called actual parameters and the
variables used in the function header of the called function are called formal parameters.
In call by value, value being passed to the function is locally stored by the function parameter in
stack memory location. If you change the value of function parameter, it is changed for the
current function only. It will not change the value of variable inside the caller method such as
main().
Or
Ex :
#include<stdio.h>
#include<conio.h>
void main()
int i,j;
scanf("%d%d",&i,&j);
printf("Before swapping:%d%d\n",i,j);
swap(i,j);
printf("After swapping:%d%d\n",i,j);
getch();
int temp;
temp=a;
a=b;
b=temp;
Output
Before swapping: 10 20
After swapping: 10 20
1 : In this category, there is no data transfer between the calling function and called function.
2 : But there is flow of control from calling function to the called function.
3 : When no parameters are there , the function cannot receive any value from the calling
function.
4: When the function does not return a value, the calling function cannot receive any value from
the called function.
Ex #include<stdio.h>
void sum();
void main()
sum();
getch();
void sum()
int a,b,c;
scanf("%d%d",&a,&b);
c=a+b;
printf("sum=%d",c);
2 : But there is data transfer from called function to the calling function.
3 : When no parameters are there , the function cannot receive any values from the calling
function.
4: When the function returns a value, the calling function receives one value from the called
function.
Ex : #include<stdio.h>
#include<conio.h>
int sum();
int c;
clrscr();
c=sum();
printf("sum=%d",c);
getch();
int sum()
int a,b,c;
scanf("%d%d",&a,&b);
c=a+b;
return c;
1 : In this category, there is data transfer from the calling function to the called function using
parameters.
2 : But there is no data transfer from called function to the calling function.
3 : When parameters are there , the function can receive any values from the calling function.
4: When the function does not return a value, the calling function cannot receive any value from
the called function.
Ex : #include<stdio.h>
#include<conio.h>
void main()
int m,n;
clrscr();
scanf("%d%d",&m,&n);
sum(m,n);
getch();
int c;
c=a+b;
printf("sum=%d",c);
1 : In this category, there is data transfer from the calling function to the called function using
parameters.
2 : But there is no data transfer from called function to the calling function.
3 : When parameters are there , the function can receive any values from the calling function.
4: When the function returns a value, the calling function receive a value from the called
function.
Ex : #include<stdio.h>
#include<conio.h>
int m,n,c;
clrscr();
scanf("%d%d",&m,&n);
c=sum(m,n);
printf("sum=%d",c);
getch();
int c;
c=a+b;
return c;
1 : stdio.h
2 : stdlib.h
4 : math.h
5 : ctype.h
6 : time.h
scanf() int Enter data items from the standard input device.
getchar() int Enter a single character from the standard input device.
fread(s,il,i2,f) int Enter i2 data items, each of size i1 bytes, from file f.
exit(u) void Close all files and buffers, and terminate the program.
floor(d) double Return a value rounded down to the next lower integer.
time(p) long int Return the number of seconds elapsed beyond a designated
base time.
A function that calls itself, and doesn't perform any task after function call, is know as tail
recursion. In tail recursion, we generally call the same function with return statement.
Features :
Advantages :
It is easy to use.
Disadvantages :
It is slower than that of looping statements because each time function is called.
Note: while using recursion, programmers need to be careful to define an exit condition from the
function, otherwise it will go into an infinite loop. Recursive functions are very useful to solve
many mathematical problems, such as calculating the factorial of a number, generating Fibonacci
series, etc.
Example of recursion.
recursionfunction()
#include<stdio.h>
#include<conio.h>
if ( n < 0)
if (n == 0)
void main(){
clrscr();
fact=factorial(5);
A program in C language involves into different processes. Below diagram will help you to
understand all the processes that a C program comes across.
The C Preprocessor is not a part of the compiler, but is a separate step in the compilation
process. In simple terms, a C Preprocessor is just a text substitution tool and it instructs the
o #include
o #define
o #undef
o #ifdef
o #ifndef
o #if
o #else
o #elif
o #endif
o #error
o #pragma
#endif