# Labmanual-CProgramming2023-workbook (1)

```KARPAGAM ACADEMY OF HIGHER EDUCATION
(Deemed to be University Established Under Section 3 Of UGC Act 1956)
Accredited with A+ Grade by NAAC in the Second cycle
Pollachi Main Road, Eachanari Post, Coimbatore – 641 021, INDIA
Faculty of Engineering
Department of Computer Science and Engineering
23BECC143 - PROGRAMMING IN C LABORATORY
NAME
: ……………………………………………..
REG. NUMBER
: ……………………………………………..
SEM / YEAR
: ……………………………………………..
(Deemed to be University Established Under Section 3 Of UGC Act 1956)
Accredited with A+ Grade by NAAC in the Second cycle
Pollachi Main Road, Eachanari Post, Coimbatore – 641 021, INDIA
DEPARTMENT: COMPUTER SCIENCE AND ENGINEERING
This is to Certify that this Programming for Problem Solving lab work done by
Mr./Ms.
…………………………………………………………..
……………………………………………………………. during
for
the
course
B.E
…….. SEM / …………
Year of Academic year 2023 – 2024 is bonafide.
Staff in-charge
REGISTER No.
The record is submitted for ……… Semester B. E. University Practical Examination conducted
on …………………………………………...
Internal Examiner
External Examiner
INDEX
S.
No
1
Date
Name of
Page
Experiment
No.
Develop a C Program to find the roots of
2
Develop Programs using simple control
statements such as if else, while, do while.
Example Extracting the digits of an integer,
reversing
digits,
finding sum of digits
3
Develop a C Program to implement a simple
calculator
to
perform
subtraction, multiplication and division
operations using switch construct. Display
appropriate messages for invalid operator and
divide by zero error.
4
5
Develop C Program to generate Fibonacci
sequence, calculation of factorials, printing
various patterns
and generate the Prime
numbers between the ranges m &amp; n using for
loop.
Develop a C program to read n elements into
an integer array, Insert and Delete element
from the array. Print the input array and the
resultant array with suitable messages.
6
Develop a C program to read two matrices A
(m x n) and B (p x q) and compute the
product of the two matrices. Print both the
input matrices and resultant matrix with
suitable headings and output should be in
matrix format only. Program must check
the compatibility of orders of the matrices for
multiplication.
Report
appropriate
message in case of incompatibility.
7
Develop a C function Program to sort the given
names in Ascending Order.
8
9
Develop a C program to count the vowels &amp;
consonants in a given string.
Develop a C Program to find the GCD of two
integers using Euclid’s algorithm
Total
Marks (20)
Staff
Sign
10
11
12
13
Develop a recursive C function to find the
factorial of a number, n! , defined by
fact(n)=1, if n=0. Otherwise fact(n)=n*fact(n1). Using this function, develop a C
program to compute the Binomial coefficient
nCr. Perform input validation as well.
Develop a C program to find the smallest and
largest elements in an array using
pointers and then swap these elements and
display the resultant array.
Develop a C program to find the sum of all the
elements of an integer array using
pointers.
Insert, update, delete and append telephone
details of an individual or a company into a
23BECC143 - C PROGRAMMING LABORATORY
COURSE OBJECTIVES:
The goal of this course is for the students is to
 Interpret problem solving using C.
 Apply the concept of arrays and strings.
 Identify the functions of C Language.
 Apply the concept of pointers .
 Develop C Programs using user defined function and file handling.
LABORATORY OUTCOMES:
 Apply problem solving techniques for a given problem
 Solve problems using arrays and strings.
 Build modular applications in C using functions.
 Categorize dynamic memory management operators with pointers.
 Examine sequential and random access file processing.
LIST OF EXPERIMENTS:
1. Develop a C Program to find the roots of quadratic equation for non-zero coefficient using if-else ladder construct.
2. Develop Programs using simple control statements such as if else, while, do while. Example
Extracting
the
digits
of
an
integer,
reversing
digits,
finding sum of digits
3. Develop a C Program to implement a simple calculator to perform addition,
subtraction, multiplication and division operations using switch construct. Display
appropriate messages for invalid operator and divide by zero error.
4. Develop
C
Program
to
generate
Fibonacci
sequence,
calculation
of
factorials, printing various patterns and generate the Prime numbers between the ranges m &amp; n
using for loop.
5. Develop a C program to read n elements into an integer array, Insert and Delete element from the
array.
Print
the
input
array
and
the
resultant
array
with
suitable messages.
6. Develop a C program to read two matrices A (m x n) and B (p x q) and compute the
product of the two matrices. Print both the input matrices and resultant matrix with
suitable headings and output should be in matrix format only. Program must check
the compatibility of orders of the matrices for multiplication. Report appropriate
message in case of incompatibility.
7. Develop a C function Program to sort the given names in Ascending Order.
8. Develop a C program to count the vowels &amp; consonants in a given string.
9. Develop a C Program to find the GCD of two integers using Euclid’s
algorithm.
5
10. Develop a recursive C function to find the factorial of a number, n! , defined by
fact(n)=1, if n=0. Otherwise fact(n)=n*fact(n-1). Using this function, develop a C
program to compute the Binomial coefficient nCr. Perform input validation as well.
11. Develop a C program to find the smallest and largest elements in an array using
pointers and then swap these elements and display the resultant array.
12. Develop a C program to find the sum of all the elements of an integer array using
pointers.
13. Insert, update, delete and append telephone details of an individual or a company into a
telephone directory using structures and pointers
6
INSTRUCTIONS TO THE STUDENTS
The following instructions must be followed by the students in their laboratory classes.
1) Students are expected to be punctual to the lab classes. If they are late, they will be
considered absent for that particular session.
2) Students should strictly maintain the dress code.
3) Students must bring their Workbook, record note (completed with previous experiment) to
every lab class without fail.
4) Students are advised to come with full preparation for their lab sessions by
Reading the detailed procedure of the exercise from the laboratory manual.
Completion of Workbook (i.e.) Aim, Procedure, Algorithm, Program should be written
and Flowchart should be drawn in the observation note before entering into the
laboratory.
5) Students must use pen for writing and pencil to draw Flowchart in Work book.
6) Students must get attestations immediately for their output/execution.
7) Students are advised to enter their results evaluated in the Work book on the same day of
that exercise.
8) Assessment marks for each exercise is based only on their performance in the laboratory.
9) Record note has to be completed then and there and get corrected when the students are
coming for the next lab class.
10) Students must strictly maintain silence during lab classes.
11) If any of the students is absent for the lab class for genuine reasons, he/she will be permitted
to do the exercise during the repetition class only.
12) If any student is found causing damage to the lab equipments, he/she shall replace the same
with a new.
7
LIST OF EXPERIMENTS
1
2
3
4
5
6
Develop a C Program to find the roots of quadratic equation for non-zero coefficient using if-else ladder construct.
Develop Programs using simple control statements such as if else, while, do while.
a) Extracting the digits of an integer
b) Reversing digits,
c) Finding sum of digits
Develop a C Program to implement a simple calculator to perform addition,
subtraction, multiplication and division operations using switch construct. Display
appropriate messages for invalid operator and divide by zero error.
Develop C Program
a) To generate Fibonacci sequence,
b) Calculation of factorials,
c) Printing various patterns
d) Generate the Prime numbers between the ranges m &amp; n using for loop.
Develop a C program to read n elements into an integer array, Insert and Delete element from
the array. Print the input array and the resultant array with
suitable messages
Develop a C program to read two matrices A (m x n) and B (p x q) and compute the
product of the two matrices. Print both the input matrices and resultant matrix with
suitable headings and output should be in matrix format only. Program must check
the compatibility of orders of the matrices for multiplication. Report appropriate
message in case of incompatibility.
7
Develop a C function Program to sort the given names in Ascending Order.
8
Develop a C program to count the vowels &amp; consonants in a given string.
11
Develop a C Program to find the GCD of two integers using Euclid’s
algorithm
Develop a recursive C function to find the factorial of a number, n! , defined by
fact(n)=1, if n=0. Otherwise fact(n)=n*fact(n-1). Using this function, develop a C
program to compute the Binomial coefficient nCr. Perform input validation as well.
Develop a C program to find the smallest and largest elements in an array using
pointers and then swap these elements and display the resultant array.
12
Develop a C program to find the sum of all the elements of an integer array using
pointers.
13
Insert, update, delete and append telephone details of an individual or a company into a
telephone directory using structures and pointers
9
10
8
PROBLEM SOLVING TECHNIQUES
The process of solving a real life problem to get a solution through computer
programming. There are three approaches for problem solving:
1. Algorithm
2. Flowchart
3. Pseudo Code
1. Algorithm
 The algorithm is a step-by-step procedure to be followed in solving a problem.
 It provides a scheme to solve a particular problem in finite number of
unambiguous steps. It helps in implementing the solution of a problem
using any of the programming languages.
 In order to qualify as an algorithm, a sequence of instructions must possess the
followingcharacteristics:
 Definiteness: Instructions must be precise and unambiguous i.e.
each and every instruction should be clear and should have only one
meaning.
 Finiteness: Not even a single instruction must be repeated infinitely. i.e., each
instruction should be performed in finite time.
 Termination: After the algorithm gets executed, the user should get the desired result
Key features of an algorithm:
Any algorithm has a finite number of steps and some steps may involve
decision making, repetition. Broadly speaking, an algorithm exhibits three key
features that can be given as:
 Sequence (straight line): Sequence means that each step of the algorithm is executed
in the specified order.
 Selection (branching): Decision statements are used when the outcome of the
process depends on some condition.
 Repetition(looping) : Repetition which involves executing one or more steps for a
number of times can be implemented using constructs like the while, do-while and for
loops. These loops executed one or more steps until some condition is true.
Example: Algorithm to compute the Area of Rectangle
This algorithm takes length and breadth, the sides of the rectangle as input and
computes the areaof rectangle using the formula area=length * breadth. Finally it
prints the area of rectangle.
Steps:
Step 1 [Initialize]Start
Step 2: [Input the sides of Rectangle]Read length,
Step 3: [Compute the area of rectangle]
Step 4: [Display the Area] Print Area
Step 5: [Finished] Stop
9
2. Flowcharts
A flowchart is a graphical or symbolic representation of an algorithm. They are basically used
to design and develop complex programs to help the users to visualize the logic of the program
for better understanding of the program and find flaws and other features within it. Basically, a
flowchart depicts the “flow” of a program.
The following table shows the symbols used in flowchart along with its descriptions.
Symbol
Name
Description
Oval
Represents Start or Stop of the
process.
Rectangle
Represents the process steps defined
in algorithm
Parallelogram
Indicate the reading operation used for
input/output or data or information
from/to any device.
Diamond
Indicates the decisions (questions) and
consequently the branch points or the
paths to be followed based on the
result of the question
Arrows
Shows the flowchart direction and
connects the various flow chart
symbols
Shows the continuation from one point
in the process flow to another.
Small circle
Hexagon
Represents Looping structures
Predefined
Process
Indicates Subroutines

A flowchart is a diagrammatic representation that illustrates the sequence of steps that
must be performed to solve a problem. They are usually drawn in the early stages of
formulating computer solutions to facilitate communication between programmers and
10

Flowcharts help programmers to understand the logic of complicated and lengthy
problems. They help to analyse the problem in a more effective manner.
 Flowchart can be used to debug programs that have error(s).
Limitations of using Flowcharts:



Drawing flowcharts is a laborious and a time consuming activity.
Flowchart of a complex program becomes, complex and clumsy. At times, a little bit of
alteration in the solution may require complete re-drawing of the flowchart.
There are no well-defined standards that limit the details that must be incorporated in a
flowchart.
Example of Flowchart to compute the Area of Rectangle
3. Pseudocode:
It is a form of structured English that describes algorithms. It facilitates the designers to focus on
the logic of the algorithm without getting bogged down by the details of language syntax.
Pseudocode is a compact and informal high-level description of an algorithm that uses the
structural conventions of a programming language.
It is meant for human reading rather than machine reading, so it omits the details that are not
essential for humans. Such details include keywords, variable declarations, system-specific code
and subroutines. There are no standards defined for writing a pseudocode because it is not an
executable program. Flowcharts can be considered as a graphical alternative to pseudocode, but
are more spacious on paper.
Example of Pseudocode to compute the area of Rectangle
Begin
Print Area
End
11
C LANGUAGE
Introduction
C is a programming language developed at AT&amp;T‟s BELL Laboratory of USA in 1972. Dennis
Ritchie designed it. Because of its reliability, C is very popular. C is highly portable &amp; it is well
suited for structured programming. C program consists of collection of functions.
Hardware Requirement
Software Requirement
System with TurboC
: Desktop Computer / laptop computer
: Linux Operating System with GCC or Windows Operating
GCC
gcc is a Linux-based C compiler usually operated via the command line, released by the Free
Software Foundation. It often comes distributed with a linux installation, so if you are running
Unix or a Linux variant you likely have it on your system. You can invoke gcc on a source code
file simply by typing :gcc filename
The default executable output of gcc is &quot;a.out&quot;, which can be run by typing “ ./a.out”
It is also possible to specify a name for the executable file at the command line by using the
syntax
-o outputfile , as shown in the following example :gcc filename -o outputfile
Again, you can run your program with &quot;./outputfile&quot;. (The ./ is there to ensure you run the
program for the current working directory.)
Note: If you need to use functions from the math library (generally functions from math.h such
as sin or sqrt), then you need to explicitly ask it to link with that library with the -l flag and the
library 'm':
gcc filename -o outputfile –lm
GENERAL PROCEDURE
PROGRAMS:
1. Create
: Type the command, “cd Desktop” to open the desktop directory. Open
editor with filename by “gedit filename.c” and save it.
2. Compile
3. Execute
: gcc filename.c
gcc filename.c -lm (if &lt;math.h&gt; library file is used in the program)
: ./a.out
12
Or Use online compiler for program execution. Turbo C/C++
Open Turbo C/C++ from your Desktop or Programs menu. Select “File” from
Menu bar and select option “New” and Save C program with filename „.C‟
extension.
To do compiling – Select -&gt; Compile from menu and click-&gt; compile.
If the compilation is successful – you will see a “success” message. Else you will
see the number of errors.
To RUN the program – you may select -&gt;Run from menu and click -&gt; Run
Now you will see the output screen.
Or any IDE like code blocks, and Dev c++
Or any online compiler
13
PRELIMINARY EXERCISES:
1. Write a program to greet a person using printf().
AIM:
To write a C program to greet a person.
DESCRIPTION:
To display text on the screen, and there are two ways: puts() and printf().
puts()
Puts probably stands for puts string, where a string is a bit of text you put to the screen.
puts(&quot;Greetings, human!&quot;);
The text to display is enclosed in the function‟s parentheses. Furthermore, it‟s enclosed in double
quotes, which is how you create text inside the C language, and how the compiler tells the
difference between text and programming statements. Finally, the statement ends in a semicolon.
The puts() function works inside the main() function. It‟s run first, displaying the text Hello
World ! on the screen. Then the return(0); statement is run next, which quits the program and
returns control to the operating system.
printf()
Another C language function that displays text on the screen is printf() which is used more often.
While the puts() function merely displays text on the screen, the printf() function
displays formatted text. This gives you more control over the output.
Putting two printf() statements on separate lines will not display two different lines of text.
But the puts() function automatically appends a newline character at the end of any text it
displays; the printf() function does not. Instead, you must manually insert the newline character
The printf() has the message to be displayed on the screen within double quotations “” and ended
with a semicolon ;
14
#include&lt;stdio.h&gt;
void main()
{
printf(“Hi”);
puts(“Welcome !”);
}
ALGORITHM:
Step 1 : Start
Step 2 : Display message using puts()
Step 3 : Display message using printf()
Step 4 : Stop
CODING:
void main()
{
puts(“Hi”);
printf(“Welcome”);
}
OUTPUT:
15
2. Write a program to add two numbers
AIM:
To write a c program to produce the addition of given two Numbers.
DESCRIPTION:
Add Two numbers using the formula sum = a+b
where a and b are input numbers
FLOWCHART:
ALGORITHM:
Step 1: Declare the necessary variables a, b and c as integer.
Step 2: Read the input of the integer a and b.
Step 3: Add a &amp; b and store the result in sum.
Step 3: Display the value of sum
CODING:
#include&lt;stdio.h&gt;
void main()
16
{
int a,b,sum;
printf(&quot;Enter Number 1\n&quot;);
scanf(&quot;%d&quot;,&amp;a);
printf(&quot;Enter Number 2\n&quot;);
scanf(&quot;%d&quot;,&amp;b);
sum=a*b;
printf(&quot;\nThe Multiplication Result is %d\n&quot;,sum);
}
OUTPUT:
17
3.Write a program to find area of circle
AIM:
To write a C program to compute the Area of a Circle.
DESCRIPTION:
The Area of a circle are computed by the following formula,
The Area of a circle = πr2
where r = radius of the circle and value of π is 3.14
float datatype displays 6 digit precision after decimal point. E.g) 3.142857 for pi value.
FLOWCHART:
18
ALGORITHM:
Step 1: Start
Step 2: Declare and read the variable r, radius of the Circle.
Step 3: Calculate the area of the circle
Area =3.14*r*r
Step 4: Display the Area Step 5: Stop
CODING:
#include&lt;stdio.h&gt;
int main()
{
float r, Area;
scanf(“%f”,&amp;r);
Area = 3.14*r*r;
printf(“The area of the circle is %f\n”,Area);
return 0;
}
OUTPUT:
19
4.Write a program to convert Fahrenheit value to centigrade
AIM:
Write a program to convert Fahrenheit value to centigrade
DESCRIPTION:
The centigrade value is computed by the following formula,
a = (f-32)*9/5
where f= Fahrenheit value and c =centigrade value
FLOWCHART:
ALGORITHM:
Step1: Start
Step2: Read the input of temperature in Fahrenheit is F
Step3 : C=(F-32)*5/9
Step4 : Print temperature in Celsius (say C)
Step5 : Stop
CODING:
#include&lt;stdio.h&gt;
int main()
{
float fahrenheit, celsius;
printf(&quot;Enter Temperature Value (in Fahrenheit): &quot;);
scanf(&quot;%f&quot;, &amp;fahrenheit);
celsius = (fahrenheit-32)*5/9;
printf(&quot;\nEquivalent Temperature (in Celsius)
= %0.2f&quot;, celsius);
20
return 0;
}
OUTPUT:
21
5.Write a program to find the square root of a number.
AIM:
Write a program to find the square root of a number.
DESCRIPTION:
sqrt() - The sqrt() function takes a single argument (in double ) and returns its square root (also in double ).
The sqrt() function is defined in math. h header file
FLOWCHART:
Start
of n
Calculate SR=sqrt(n)
Print SR
End
ALGORITHM:
Step1: Start
Step3 : Sroot=sqrt(num)
Step4 : Print Sroot
Step5 : Stop
CODING:
#include&lt;stdio.h&gt;
#include&lt;math.h&gt;
int main()
{
22
int num;
double sroot;
printf(&quot;Enter a Number: &quot;);
scanf(&quot;%d&quot;,&amp;num);
sroot = sqrt(num);
printf(&quot;Square Root of %d is %f&quot;,num,sroot);
return 0;
}
OUTPUT:
23
6.Write a program calculate simple and compound interest
AIM:
Write a program calculate simple and compound interest
DESCRIPTION:
Simple Interest is calculated using formula SI= (P*N*R)/100)
Compound interest is calculated using formula I= P*((1+R/100) N -1)
FLOWCHART:
ALGORITHM:
Step 1: Start.
Step 2: Read Principal Amount, Rate and Time.
Step 3: Calculate Interest using formula SI= (P*N*R)/100)
Step 4: Calculate Compound interest =CI= P*((1+R/100)N -1)
Step 4: Print SI and CI
Step 5: Stop
CODING:
#include&lt;stdio.h&gt;
#include&lt;math.h&gt;
int main()
{
float p, n, r, si, ci;
printf(&quot;Enter principal amount (p): &quot;);
24
scanf(&quot;%f&quot;, &amp;p);
printf(&quot;Enter time in year (t): &quot;);
scanf(&quot;%f&quot;, &amp;n);
printf(&quot;Enter rate in percent (r): &quot;);
scanf(&quot;%f&quot;, &amp;r);
/* Calculating simple interest */
si = (p * n * r)/100.0;
/* Calculating compound interest */
ci = p * (pow(1+r/100, n) - 1);
printf(&quot;Simple Interest = %0.3f\n&quot;, si);
printf(&quot;Compound Interest = %0.3f&quot;, ci);
return(0);
}
OUTPUT:
25
7.Write a program that determines whether a given integer is odd or even
AIM:
Write a program that determines whether a given integer is odd or even
DESCRIPTION:
Mod operator % - The modulo operator, denoted by %, is an arithmetic operator. The modulo
division operator produces the remainder of an integer division. produces the remainder when x is
divided by y.
FLOWCHART:
ALGORITHM:
Step 1: Declare a variable to get a Number
Step 3: Get the remainder of given number using modulo operator
Step 4: If remainder is 0 prints “Even Number”, else print “Odd Number”
26
CODING:
#include &lt;stdio.h&gt;
int main()
{
int num;
printf(&quot;Enter an integer: &quot;);
scanf(&quot;%d&quot;, &amp;num);
if(num % 2 == 0)
printf (“Even Number”);
else
printf(&quot;Odd Number”);
return 0;
}
OUTPUT:
27
8. Write a program to find the greater of three integers.
AIM:
To write a C program to find the greatest among three numbers using if..else statement.
DESCRIPTION:
if..else structure:
The if..else structure in C programming language is used to test set of conditions in sequence. An if
condition is tested only when all previous if conditions in if-else ladder is false.
If any of the conditional expression evaluates to true, then it will execute the corresponding
code block and exits whole if-else ladder.
Syntax:
if(condition_expression_One)
{
Statement 1;
}
else if (condition_expression_Two)
{
Statement 2;
}
else if (condition_expression_Three)
{
Statement 3;
}
else
{
Statement 4;
}
 First of all condition_expression_One is tested and if it is true then statement1 will be
executed and control comes out of whole if else ladder.
 If condition_expression_One is false, then only condition_expression_Two is tested. Control
will keep on flowing downward.
 If none of the conditional expression is true, the last else is the default block of code
whichwill gets executed if none of the conditional expression is true.
 If the Boolean expression evaluates to true, then the if block will be executed, otherwise,
the else block will be executed.
 C programming language assumes any non-zero and non-null values as true, and if it
is either zero or null, then it is assumed as false value.
28
Flowchart for the if-else
FLOWCHART:
ALGORITHM:
Step1: Start
Step2: Declare and read the variables a,b,c
Step3: if(a&gt;b) and (a&gt;c) go to step 4 otherwise go to step 5
Step4: Display a is greater. go to 8
Step5: if (b&gt;c) go to step 6. otherwise step 7
Step 6: Display b is greater, go to 8
Step 7: Display c is greater
Step 8: Stop
29
CODING:
#include&lt;stdio.h&gt;
void main()
{
int a,b,c;
printf(&quot;enter the values of a,b and c&quot;);
scanf(&quot;%d%d%d&quot;,&amp;a,&amp;b,&amp;c);
if(a&gt;b &amp;&amp; a&gt;c)
printf(&quot;%d is greatest of %d %d %d&quot;, a,a,b,c);
else if(b&gt;c)
printf(&quot;%d is greatest of %d %d %d&quot;,b,a,b,c);
else
printf(&quot;%d is greatest of %d %d %d&quot;,c,a,b,c);
}
OUTPUT:
30
9.Write a program to find whether the given year is leap year or Not? (Hint: not
every centurion year is a leap.
AIM:
To Write a a program to find whether the given year is leap year or Not? (Hint: not every
centurion year is a leap.
DESCRIPTION:
Finding a year is leap or not is a bit tricky. We generally assume that if a year number is evenly
divisible by 4 is leap year. But it is not the only case. A year is a leap year if −


It is evenly divisible by 100
o If it is divisible by 100, then it should also be divisible by 400
Except this, all other years evenly divisible by 4 are leap years.
FLOWCHART:
ALGORITHM:
Step 1:Take integer variable year
Step 2: Assign value to the variable
Step 3: Check if year is divisible by 4 but not 100, DISPLAY &quot;leap year&quot;
Step 4: Check if year is divisible by 400, DISPLAY &quot;leap year&quot;
Step 5: Otherwise, DISPLAY &quot;not leap year&quot;
31
CODING:
#include&lt;stdio.h&gt;
void main()
{
int yr;
printf(&quot;Enter the year you want to check.\n&quot;);
scanf(&quot;%d&quot;,&amp;yr);
if((yr%400==0)||((yr%4==0)&amp;&amp;(yr%100!=0)))
{
printf(&quot;The given year is leap-year.&quot;);
}
else
{
printf(&quot;The given year is not leap-year.&quot;);
}
}
OUTPUT:
32
10. Armstrong number
AIM:
To write a C program to check if a given number is Armstrong number.
DESCRIPTION:
An Armstrong number is a number which is equal to the sum of digits raise to the power „total
number of digits in the number‟. Some Armstrong numbers are: 153, 370, 407, 1634, 8208, etc.
First we calculate the number of digits in our program and then compute the sum of individual
digits raise to the power „number of digits‟. If this sum equals the input number, then the number
is an Armstrong number otherwise not.
In case of an Armstrong number of 3 digits, the sum of cubes of each digits is equal to the
number itself. For example:
153 = 1*1*1 + 5*5*5 + 3*3*3 // 153 is an Armstrong number.
This program is implemented using while loop.
while loop:
Syntax:
while (testExpression)
{
// statements
}
where, testExpression checks the condition is true or false before each loop.
 The while loop evaluates the test expression.
 If the test expression is true (nonzero), statements inside the body of while loop are exectued.
The test expression is evaluated again. The process goes on until the test expression is false.
 When the test expression is false, the while loop is terminated.
33
FLOWCHART:
ALGORITHM:
Step 1: Start
Step 2: Declare and Read the variable, number
Step 3: Assign temp=number and sum = 0
Step 4: while(temp!=0) do
Step 4a: rem= temp %10; // separating the one‟s digit, rem
Step 4b: sum =sum+( rem * rem * rem); // adding cube of one‟s digit with sum
Step 4c: temp = temp /10; // removing the one‟s digit
Step 4d: goto Step 4
Step 5: Else, check the condition if(sum = number)
Step 6: If the condition is true Print “Armstrong34
Number”
Step 7: Else Print “Not Armstrong Number”
Step 8: Stop
CODING:
void main()
{
int number, temp, rem, sum=0;
printf(&quot;\nPROGRAM TO CHECK WHETHER A GIVEN NO. IS ARMSTRONG NO. OR
NOT\n&quot;);
printf(&quot;\nEnter a Three digit positive integer: &quot;);
scanf(&quot;%d&quot;, &amp;number);
temp=number;
while(temp!=0)
{
rem=temp%10;
sum=sum+(rem*rem*rem);
temp=temp/10;
}
if(sum==number)
printf(&quot;\n%d is an Armstrong number&quot;,number);
else
printf(&quot;\n%d is not an Armstrong number&quot;,number);
}
OUTPUT:
35
11. From a given paragraph, find the total number of words. using
built-in functions
AIM:
To write a C program to , find the total number of words using built-in functions
ALGORITHM:
Step 1: Start
Step 2: Read the text until an empty line
Step 3: Compare each character with tab char ‘\t\’ or space char ‘ ‘ or newline ‘\n’ to count no of
words
Step 4: Increment the count for number of words and print.
Step 6: Stop.
CODING:
int main(void)
{
char p[50];
int i,c=0;
printf(&quot;Enter line&quot;);
fgets(p,sizeof(p),stdin);
for(i=0; i&lt;= strlen(p);i++)
if (p[i]==' '||p[i]=='\t' || p[i]=='\n')
{
c++;
}
printf(&quot;%d&quot;,c);
return 0;
}
OUTPUT:
36
12.From a given paragraph, capitalize the first letter of each sentence.
AIM:
To write C programs to capitalize the first word of each sentence.
ALGORITHM:
Step 1: Start
Step 2: Read the text until an empty line
Step 3: Compare each character with tab char ‘\t\’ or space char ‘ ‘ to count no of words
Step 4: if not convert t uppercase and display.
Step 6: Stop.
CODING:
#include &lt;stdio.h&gt;
#include&lt;string.h&gt;
#include &lt;ctype.h&gt; //this is isalpha's library
int main(void)
{
char v[50];
int i=0;
printf(&quot;Enter line &quot;);
fgets(v,sizeof(v),stdin);
while(v[i]!='\0')
{
if (v[i]==' '||v[i]=='\t'||i==0)
{
if(i!=0)
{
i++;
printf(&quot; &quot;);
}
printf(&quot;%c&quot;,toupper(v[i]));
}
else
printf(&quot;%c&quot;,v[i]);
i++;
}
return 0;
}
OUTPUT:
37
LIST OF EXPERIMENTS:
Ex.No: 1
Date :
AIM:
To Write a C Program to find the Roots of a Quadratic equation.
DESCRIPTION:
The standard form of a quadratic equation is:
ax2 + bx + c = 0, where a, b and c are real numbers and a ≠ 0.
2
The term (b -4ac) is known as the discriminant of a quadratic equation. The discriminant tells the
nature of the roots.



If discriminant is greater than 0, the roots are real and different.
If discriminant is equal to 0, the roots are real and equal.
If discriminant is less than 0, the roots are complex and different.
The two roots of Quadratic equation are,
𝑥=
−𝑏 &plusmn; √𝑏2 − 4𝑎𝑐
2𝑎
Sample Input:
Input
Enter a,b,c values:
1
-5
6
Output
Real and different roots
Root1 = 3.000000
Root2 = 2.000000
Enter a,b,c values:
1
1
1
Complex and different roots
Enter a,b,c values:
1
-8
16
Real and equal roots
Root1 = -0.500000+0.866025i
Root2 = -0.500000-0.866025i
Root1 = Root2 = 4.000000
38
FLOWCHART:
39
ALGORITHM:
Step 1: Start
Step 3: Initialize d ← b*b-4*a*c
Step 4: if d==0 do
Step 4a: then print “roots are real and
equal”Step 4b: r1← -b/2*a, r2 ← r1
Step 5: else if d&gt;0 do
Step 5a: then print “roots are real and distinct”
Step 5b: r1← (-b+sqrt(d))/2*a, r2← (-bsqrt(d))/2*a
Step 6: else if d&lt;0 do
Step 6a: then print “roots are complex”
Step 6b: rp ← -b/2a,
imp←sqrt(d)/2*a
Step 6c: print r1 and r2.
Step 7: Stop
CODING:
#include &lt;stdio.h&gt;
#include &lt;math.h&gt;
int main()
{
float a, b, c, discriminant, root1, root2, real, imaginary;
printf(&quot;Enter coefficients a, b and c: &quot;);
scanf(&quot;%f %f %f&quot;,&amp;a, &amp;b, c);
discriminant = b*b-4*a*c;
if (discriminant &gt; 0)
// condition for real and different roots
{
// sqrt() function returns square root
root1 = (-b+sqrt(discriminant))/(2*a);
root2 = (-b-sqrt(discriminant))/(2*a);
printf(&quot;root1 = %f \n root2 = %f&quot;,root1 , root2);
}
else if (discriminant == 0)
//condition for real and equal roots
{
root1 = root2 = -b/(2*a);
printf(&quot;root1 = root2 = %f&quot;,
root1);
}
40
else // if roots are not real
{
real = -b/(2*a);
imaginary = sqrt(-discriminant)/(2*a);
printf(&quot;root1 = %f+%fi \n root2 = %f-%fi&quot;, real, imaginary, real, imaginary);
}
return 0;
}
OUTPUT:
VIVA QUESTIONS:
1.What is Fibonacci series?
2. What is syntax error?
3. What are the various types of conditional statements?
41
4. What is identifier ?
5. Mention the different types of operators used in C ?
RESULT:
42
Ex.No: 2
Date:
Develop Programs using simple control statements such as if else, while, do
while. Example Extracting the
digits of
an
integer, reversing
digits,finding sum of digits
AIM:
To write a C program to develop programs using simple control statements such as if
else, while, do while.
DESCRIPTION:
This program uses simple control statements such as if else, while, do while for Extracting
the
digits of
an
integer, reversing digits, finding sum of digits.
For:

If-else Statement
In some situations, you may have to execute statements based on true or false under certain conditions,
therefore; you use if-else statements. If the condition is true, then if block will be executed otherwise the
else block is executed.
Syntax of the if-else statement is as given below:
Flow Chart
 While Loop

A while loop is also known as an entry loop because in a while loop the condition is tested first then the
statements underbody of the while loop will be executed.
If the while loop condition is false for the first time itself then the statements under the while loop will
not be executed even once.
43
The syntax of the while loop is as given below:
Flow Chart:
 do-while Loop
The do-while is also known as an exit loop because in the do-while loop, the statements will be
executed first and then the condition is checked.
If the condition of the while loop is true then the body of the loop will be executed again and again
until the condition is false. Once the condition is false, the control will transfer outside the do-while
loop and execute statements followed soon after the do-while loop.
The syntax of the do-while loop is as given below:
Flow Chart
44
2.1 EXTRACTING THE DIGITS
OF
AN
INTEGER
AIM:
To extract digits of an given integer using while loop.
ALGORITHM:
Step 1: Input : An Integer n
Step 3: If number not equal to 0 Go to Step 4 , else Go to Step 8
digit = number % 10
number = number / 10
Step4: print digit
Step5: Repeat Step 3
Step6: Stop
CODING:
#include&lt;stdio.h&gt;
int main()
{
int number;
printf(&quot;Enter a number: &quot;);
scanf(&quot;%d&quot;,&amp;number);
while(number != 0){
int digit = number % 10;
number = number /10;
printf(&quot;%d &quot;, digit);
}
return 0;
}
OUTPUT :
45
2.2 REVERSING DIGITS AND FINDING SUM OF DIGITS
AIM:
To Reverse digits and sum the digits of a given number using while loop.
ALGORITHM:
Step 1:Start
Step 3: Set sum=0 and rev=0
Step 4: Repeat step 5 to 8 while num
Step 5: Set d=num mod 10
Step 6: Set num=num/10
Step 7: Set sum=sum+d
Step 8: Set rev=rev*10+d
Step 9: Print sum
Step 10: Print rev
Step 11: Stop
CODING:
/* Program to reversing digits and finding sum of digits */
#include&lt;stdio.h&gt;
void main( )
{
int num,sum=0,rev=0,d;
printf(&quot;Enter the number: &quot;);
scanf(&quot;%d&quot;,&amp;num);
while(num){
d=num%10;
num=num/10;
sum=sum+d;
rev=rev*10+d;
46
}
printf(&quot;Sumof digits = %d&quot;,sum);
printf(&quot;\nReverse of the number = %d&quot;,rev);
}
OUTPUT:
VIVA QUESTIONS:
1. What are the loop control statements in C?
2. What are the sections present in loop?
3. What is infinite loop?
47
4. Differentiate Entry controlled and Exit Controlled Loop in C.
5. Which loop statement is executed at least once even loop test condition if false?
RESULT:
48
Ex.No: 3
Date :
Develop a C Program to implement a simple calculator to perform
addition, subtraction, multiplication and division operations using switch
construct. Display appropriate messages for invalid operator and divide by
zero error
AIM:
To write a C program to compute Arithmetic operations with Type conversion using
switchstatement.
(Consider the operators +,-,*, /, % and use Switch Statement)
DESCRIPTION:
This program uses Switch Statement for selection of operation to be performed
Type Conversion:
A type conversion is basically a conversion from one type of data to another. E.g) If you
want tostore a 'long' value into a simple integer then you can type cast 'long' to 'int'.
Switch:
A switch statement allows a variable to be tested for equality against a list of values. Each
value is called a case, and the variable being switched on is checked for each switch case.
Syntax:
The syntax for a switch statement in C programming language is as follows:
switch(expression)
{
case constant-expression :
statement(s);
break; /* optional */
case constant-expression :
statement(s);
break; /* optional */
/* you can have any number of case
statements */default : /* Optional */
statement(s);
}
The following rules apply to a switch statement:


The expression used in a switch statement must have an integral or enumerated
type, or be of a class type in which the class has a single conversion function to an
integral or enumerated type.
You can have any number of case statements within a switch. Each case is followed
49





by the value to be compared to and a colon.
The constant-expression for a case must be the same data type as the variable in
the switch, and it must be a constant or a literal.
When the variable being switched on is equal to a case, the statements following
that casewill execute until a break statement is reached.
When a break statement is reached, the switch terminates, and the flow of control
jumps tothe next line following the switch statement.
Not every case needs to contain a break. If no break appears, the flow of
control will fallthrough to subsequent cases until a break is reached.
A switch statement can have an optional default case, which must appear at the end
of the switch. The default case can be used for performing a task when none of the
cases is true. No break is needed in the default case.
To take the two integer operands and one operator from user to perform the some arithmetic
operations by using the following operators like 1,2,3,4,5 for +,-,*, /, % respectively.
FLOWCHART:
50
ALGORITHM:
Step 1: Start
Step 2: Declare and read the values of a,b and operator
Step 3: if the operator is “1” then
result=a+b Go to
step 8
Step 4: Else if the operator is “2”
thenresult =a-b
Go to step 8
Step 5: Else if the operator is “3”
thenresult =a*b
Go to step 8
Step 6: Else if the operator is “4”
thenresult =a/b
Go to step 8
Step 7: Else if the operator is “5”
thenresult =a%b
Go to step 8
Step 8: write result
Step 9:End
CODING:
#include&lt;stdio.h&gt;
#include&lt;stdlib.h&gt;
int main()
{
char operator;
int a,b, result ;
division)\n&quot;);
scanf(&quot;%c&quot;,&amp;operator);
printf(&quot;\nEnter two numbers.\n&quot;);
scanf(&quot;%d%df&quot;,&amp;a,&amp;b);
switch(operator)
{
case '+'.result=a+b;
break;
case '-'.result=a-b;
break;
case '*'.result=a*b;
break;
51
case '/'.
if(b==0)
{printf(&quot;Divide by zero&quot;);
exit(0);
}
else
result=a/b;
break;
case '%'.result=a%b;
break;
default.
printf(&quot;\nInvalid!! Enter correct operator…\n&quot;);
break;
}
printf(&quot;\nResult=%d\n&quot;, result );
return 0;
}
OUTPUT.
52
VIVA QUESTIONS.
1. What is the difference between the = symbol and == symbol?
2: What is the modulus operator?
3: What is logical error?
4: What does the &amp;&amp; operator do in a program code?
5: What are reserved words?
RESULT:
53
Ex.No. 4
Develop C Program to generate Fibonacci sequence, calculation of
factorials, printing various patterns and generate the Prime numbers
between the ranges m &amp; n using for loop.
Date .
AIM.
To write a C program to Develop C Program to generate Fibonacci sequence,
calculation of factorials, printing various patterns and generate the Prime numbers between
the ranges m &amp; n using for loop.
DESCRIPTION.
This program uses for loop to generate Fibonacci sequence, calculation of factorials,
printing various patterns and generate the Prime numbers between the ranges m &amp; n
When you know exactly how many times you want to loop through a block of code, use
the for loop instead of a while loop.
Syntax.
for (statement 1; statement 2; statement 3) {
// code block to be executed
}
Statement 1 is executed (one time) before the execution of the code block.
Statement 2 defines the condition for executing the code block.
Statement 3 is executed (every time) after the code block has been executed.
The example below will print the numbers 0 to 4.
Example
int i;
for (i = 0; i &lt; 5; i++)
{
printf(&quot;%d\n&quot;, i);
}
4.1 GENERATING FIBONACCI
SEQUENCE
AIM:
To write C Program to generate Fibonacci Sequence.
54
DESCRIPTION:
Fibonacci sequence
Fibonacci series is defined as a sequence of numbers in which the first two numbers are 1 and
1, or 0 and 1, depending on the selected beginning point of the sequence, and each subsequent
number is the sum of the previous two. So, in this series, the nth term is the sum of (n1)th term and (n-2)th term. In this tutorial, we’re going to discuss a
simple algorithm and flowchart for Fibonacci series along with a brief introduction to
Fibonacci Series and some of its important properties.
Mathematically, the nth term of the Fibonacci series can be represented as:
tn = tn-1 + tn-2
The Fibonacci numbers upto certain term can be represented as: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,
89, 144….. or 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144….
This the major property used in algorithm and flowchart for Fibonacci series. The series starts
with either 0 or 1 and the sum of every subsequent term is the sum of previous two terms as
follows:
First Term = 0
Second term = 1
Third Term = First + Second = 0+1 =1
Fourth term = Second + Third =1+1 = 2
Fifth Term = Third + Fourth = 2+1 = 3
Sixth Term= Fourth + Fifth = 3+2 = 5
Seventh Term = Fifth + Sixth = 3+5 = 8
Eighth Term = Sixth + Seventh = 5+8 = 13 … and so on.
ALGORITHM:
Step 1:Start
Step 2:Declare variables term1,term2,sum
Step 3:Initialize the variables, term1=0, term2=1, and sum =0
Step 4:Enter the number of terms of Fibonacci series to be printed
Step 5:Print First two terms of series
55
Step 6:Use loop for the following steps
sum=term1+term2
term1=term2
term2=sum
increase value of i each time by 1
print the value of sum
Step 7:End
FLOWCHART:
CODING:
#include &lt;stdio.h&gt;
int main()
{
int i, n, term1 = 0, term2 = 1;
56
int nextTerm = term1 + term2;
printf(&quot;Enter the number of terms you want: &quot;);
scanf(&quot;%d&quot;, &amp;n);
printf(&quot;Fibonacci Series: %d, %d, &quot;, term1, term2);
for (i = 2; i &lt; n; ++i)
{
printf(&quot;%d, &quot;, nextTerm);
term1 = term2;
term2 = nextTerm;
nextTerm = term1 + term2;
}
return 0;
}
OUTPUT.
57
4.2 FACORIAL OF A GIVEN NUMBER
AIM:
To write C program to find factorial of a given number.
DESCRIPTION:
Factorial is an important concept in mathematics, and it is used in various fields, such as probability
theory, combinatorics, and calculus. In programming, it is often used to solve problems related to
permutations and combinations. to calculate the factorial of 8. We can write it as 8! and it can be
calculated as follows.
8! = 8 x 6 x 5 x 4 x 3 x 2 x 1
= 40320
Therefore, the factorial of 8 is 40320.
ALGORITHM :
Step 1: Start
Step 2. Read a number n
Step 3: Initialize variables.
i = 1, fact = 1
Step 4: if i &lt;= n go to step 4 otherwise go to step 7
Step 5: Calculate
fact = fact * i
Step 6: Increment the i by 1 (i=i+1) and go to step 3
Step 7: Print fact
Step 8: Stop
}
CODING:
int main()
{
int num, fact = 1,i, result;
//user input
printf(&quot;Enter the number to find factorial. &quot;);
scanf(&quot;%d&quot;, &amp;num);
for (i = 1; i &lt;= num; i++)
fact = fact * i;
//display
printf(&quot;Factorial of %d is. %d\n&quot;, num, fact);
return 0;
}
58
OUTPUT:
4.3 PRINTING VARIOUS PATTERNS
AIM.
To write C program to genetare patterns.
DESCRIPTION.
Printing patterns using C programs has always been an interesting problem domain. Different
patterns like star patterns, pyramid patterns, Floyd’s triangle, Pascal’s triangle, etc. in C
language. These problems generally require the knowledge of loops and if-else statements.
59
4.3 a) PROGRAMS TO PRINT PATTERNS IN C
AIM.
To write C program to genetare Right Half Pyramid patterns.
DESCRIPTION.
Right Half Pyramid Pattern in C
The right-half pyramid is nothing but a right-angle triangle whose hypotenuse is in the right
direction. We can print the right half pyramid pattern using numbers, alphabets, or any other
character like a star (*).
CODING.
// C program to print right half pyramid pattern of star
#include &lt;stdio.h&gt;
int main()
{
int rows;
printf(&quot;Enter the number of rows.&quot;);
scanf(&quot;%d&quot;,&amp;rows);
// first loop for printing rows
for (int i = 0; i &lt; rows; i++) {
// second loop for printing character in each rows
for (int j = 0; j &lt;= i; j++) {
printf(&quot;* &quot;);
}
printf(&quot;\n&quot;);
}
return 0;
}
OUTPUT.
60
4.3 b). LEFT HALF PYRAMID PATTERN IN C
AIM.
To write C program to genetare left Half Pyramid patterns.
DESCRIPTION.
The Left Half Pyramid looks like a right-angled triangle with its hypotenuse facing the left.
We can also print this pattern using a character, alphabets, or numbers.
Coding
// c program to print left half pyramid pattern of star
#include &lt;stdio.h&gt;
int main()
{
int rows ;
printf(&quot;Enter the number of rows.&quot;);
scanf(&quot;%d&quot;,&amp;rows);
// first loop is for printing the rows
for (int i = 0; i &lt; rows; i++) {
// loop for printing leading whitespaces
for (int j = 0; j &lt; 2 * (rows - i) - 1; j++) {
printf(&quot; &quot;);
}
// loop for printing * character
for (int k = 0; k &lt;= i; k++) {
printf(&quot;* &quot;);
}
printf(&quot;\n&quot;);
}
return 0;
}
OUTPUT:
61
34.3.c) FULL PYRAMID PATTERN IN C
AIM.
To write C program to genetare full Half Pyramid patterns.
DESCRIPTION.
The Full Pyramid pattern looks similar to the Equilateral triangle. We can see this as the
combination of the Left Half and Right Half pyramids patterns. The following example
demonstrates how to print this pattern using alphabets, numbers, or a star (*).
CODING
// C program to print the full pyramid pattern of stars
#include&lt;stdio.h&gt;
int main()
{
int rows;
printf(&quot;Enter the number of rows.&quot;);
scanf(&quot;%d&quot;,&amp;rows);
// first loop to print all rows
for (int i = 0; i &lt; rows; i++) {
// inner loop 1 to print white spaces
for (int j = 0; j &lt; 2 * (rows - i) - 1; j++) {
printf(&quot; &quot;);
}
// inner loop 2 to print star * character
for (int k = 0; k &lt; 2 * i + 1; k++) {
printf(&quot;* &quot;);
}
printf(&quot;\n&quot;);
}
return 0;
}
OUTPUT:
62
4.3.d) PRIME NUMBERS BETWEEN THE RANGES M &amp; N:
AIM:
To write C program to genetare full Half Pyramid patterns prime numbers between the
ranges m &amp; n
DESCRIPTION:
A prime number is a whole number greater than 1 whose only factors are 1 and itself. A
factor is a whole number that can be divided evenly into another number. The first few
prime numbers are 2, 3, 5, 7, 11, 13, 17, 19, 23 and 29.
ALGORITHM:
Step 2: Initialize count = 0
Step 3: for i = 2 to n
a. for j = 1 to i
b. if i % j = 0
c. then increment count
d. if count is equal to 2
e. then print i value
Step 4: stop
FLOWCHART:
.
63
CODING:
#include&lt;stdio.h&gt;
void main()
{
int i, num, n, count;
printf(&quot;Enter the range from 1 to &quot;);
scanf(&quot;%d&quot;, &amp;n);
printf(&quot;The prime numbers in between the range 1 to %d are : &quot;,n);
for(num = 1;num&lt;=n;num++)
{
count = 0;
for(i=2;i&lt;=num/2;i++)
{
if(num%i==0)
{
count++;
break;
}
}
if(count==0 &amp;&amp; num!= 1)
printf(&quot;%d &quot;,num);
}
}
OUTPUT:
64
VIVA VOCE QUESTIONS.
1. What is scope of a variable? How are variables scoped in C?
2. How will you print “Hello World” without semicolon?
3. Can we compile a program without main() function?
4. How a negative integer is stored.
5. What is difference between including the header file with-in angular braces &lt; &gt; and
double quotes “ “
RESULT:
65
Ex.No: 5
Date :
Develop a C program to read n elements into an integer array, Insert and
Delete element from the array. Print the input array and the resultant
array with suitable messages.
AIM:
To write a c program to insert and delete element from the array.
DESCRIPTION:
Insert operation in an array at any position can be performed by shifting elements to the right,
which are on the right side of the required position
In the delete operation, the element to be deleted is searched using the linear search, and then the delete
operation is performed followed by shifting the elements.
66
ALGORITHM:
Step 1: Get the element value which needs to be inserted.
Step 2: Get the position value.
Step 3: Check whether the position value is valid or not.
Step 4: If it is valid,
Shift all the elements from the last index to position index by 1 position to the right.
insert the new element in arr[position]
Step 5: Otherwise,
Invalid Position
Step 6: Get the element value which needs to be deleted
Step 7: Find the given element in the given array and note the index.
Step 8: If the element found,
Shift all the elements from index + 1 by 1 position to the left.
Reduce the array size by 1.
CODING:
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
int main()
{
int a[100];
int element,i,loc,size,n=0,j=0;
printf(&quot;Enter the size of an array\n&quot;);
scanf(&quot;%d&quot;,&amp;size);
printf(&quot;Enter %d array elements\n&quot;,size);
for(i=0;i&lt;size;i++)
{
scanf(&quot;%d&quot;,&amp;a[i]);
}
printf(&quot;List before Insertion: &quot;);
for(i=0;i&lt;size;i++)
{
printf(&quot;%d &quot;,a[i]);
}
printf(&quot;\nEnter an element to insert\n&quot;);
scanf(&quot;%d&quot;,&amp;element);
printf(&quot;Enter a position to insert an element %d\n&quot;,element);
scanf(&quot;%d&quot;,&amp;loc);
loc--;
for(i=size-1;i&gt;=loc;i--)
{
a[i+1]=a[i];
}
a[loc]=element;
printf(&quot;\nList after Insertion: &quot;);
67
for(i=0;i&lt;size+1;i++)
{
printf(&quot;%d &quot;,a[i]);
}
printf(&quot;\nEnter an element to delete\n&quot;);
scanf(&quot;%d&quot;,&amp;n);
i=0;
for(i=0;i&lt;size;i++)
{
if(a[i]==n)
{
for(j=i;j&lt;(size-1);j++)
{
a[j]=a[j+1];
}
break;
}
}
printf(&quot;List after deletion\n&quot;);
for(i=0;i&lt;(size+1);i++)
{
printf(&quot;%d &quot;,a[i]);
}
return 0;
}
OUTPUT:
68
VIVA VOCE QUESTIONS:
1: What is the difference between the Equality operator (==) and the Assignment operator
(=)?
2: What is Multidimensional Arrays.
3: Can you declare an array without assigning the size of an array?
4: What is the difference between 'break' and 'continue' statements?
5: Can I use “int” data type to store the value 32768? Why?
RESULT:
69
Ex.No: 6
Date :
Develop a C program to read two matrices A (m x n) and B (p x q) and compute
the product of the two matrices. Print both the input matrices and resultant matrix
with suitable headings and output should be in matrix format only. Program must
check the compatibility of orders of the matrices for multiplication. Report
appropriate message in case of incompatibility.
AIM:
To write a c program to compute the product of the two matrices.
DESCRIPTION:
A matrix is a rectangular array of numbers or symbols which are generally arranged in rows and
columns.The order of the matrix is defined as the number of rows and columns.The entries are the
numbers in the matrix and each number is known as an element.The plural of matrix is matrices.The size
of a matrix is referred to as ‘n by m’ matrix and is written as m&times;n, where n is the number of rows and m
is the number of columns.For example, we have a 3&times;2 matrix, that’s because the number of rows here is
equal to 3 and the number of columns is equal to 2.
Matrix Multiplication Formula
Let’s take two matrices A and B of order 3&times;3 such that A = [aij] and B = [bij]. Then the multiplication of
A and B is obtained in the image such that,
ALGORITHM:
Step 1: Start the program
Step 2: Enter the number of rows and columns of matrix A
Step 3: Enter the number of rows and columns of matrix B
Step 4: Enter the values of the A and B matrices
Step 5: Display the entered values of A and B in matrix format
Step 6: Set a loop up to row
Step 7 Set a inner loop up to column
Step 81: Set another inner loop up to column
Step 9: Multiply the A and B matrix and store the element in the C matrix
Step 10: Display the resultant matrix.
Step 11: Stop
70
CODING:
/* MULTPLICATION OF TWO MATRIX*/
#include&lt;stdio.h&gt;
void main()
{
int a[15][15],b[15][15],c[15][15],i,j,k,r,s;
int m,n;
printf(&quot;\nEnter the Rows and Columns of A matrix...&quot;);
scanf(&quot;%d %d&quot;,&amp;m,&amp;n);
printf(&quot;\nEnter the Rows and Columns of B matrix...&quot;);
scanf(&quot;%d %d&quot;,&amp;r,&amp;s);
if(m!=r)
printf(&quot;\nMatrix multiplication cannot be performed&quot;);
else
{
printf(&quot;\nEnter the elements of A matrix&quot;);
for(i=0;i&lt;m;i++)
{
for(j=0;j&lt;n;j++)
scanf(&quot;\t%d&quot;,&amp;a[i][j]);
}
printf(&quot;\nEnter the elements of B matrix&quot;);
for(i=0;i&lt;m;i++)
{
for(j=0;j&lt;n;j++)
scanf(&quot;\t%d&quot;,&amp;b[i][j]);
}
printf(&quot;\nThe elements of A matrix&quot;);
for(i=0;i&lt;m;i++)
{
printf(&quot;\n&quot;);
for(j=0;j&lt;n;j++)
printf(&quot;\t%d&quot;,a[i][j]);
}
printf(&quot;\n The elements of B matrix&quot;);
for(i=0;i&lt;m;i++)
{
printf(&quot;\n&quot;);
for(j=0;j&lt;n;j++)
printf(&quot;\t%d&quot;,b[i][j]);
}
for(i=0;i&lt;m;i++)
{
printf(&quot;\n&quot;);
for(j=0;j&lt;n;j++)
{
c[i][j]=0;
71
for(k=0;k&lt;m;k++)
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
}
}
printf(&quot;The multiplication of two matrixes&quot;);
for(i=0;i&lt;m;i++)
{
printf(&quot;\n&quot;);
for(j=0;j&lt;n;j++)
printf(&quot;\t%d&quot;,c[i][j]);
}
}
OUTPUT:
72
VIVA VOCE QUESTIONS:
1: What is || operator and how does it function in a program?
2: What are logical errors and how does it differ from syntax errors?
3: What is flow chart?
4: When is a “switch” statement preferable over an “if” statement?
5: What are run-time errors?
RESULT:
73
Ex.No: 7
Develop a C function Program to sort the given names in Ascending Order.
Date :
AIM:
To write a c program to sort the given names in Ascending Order.
DESCRIPTION:
Sorting names in an Alphabetical order there are multiple ways to sort the array, using normal sorting
algorithms like the bubble sort
Example:
Input : Array[] = {&quot;Sourabh&quot;, &quot;Anoop, &quot;Harsh&quot;, &quot;Alok&quot;, &quot;Tanuj&quot;}
Output: Array[] = {&quot;Alok&quot;, &quot;Anoop&quot;, &quot;Harsh&quot;, &quot;Sourabh&quot;, &quot;Tanuj&quot;}
ALGORITHM:
Step 1: Start the program.
Step 3: Get the names using for loop.
Step 4: CALL FUNCTION SORT()
Initialize i to 0, j=i+1.
Compare the names by using strcmp function.
Print the names in alphabetical order.
Step 7: Stop the execution.
CODING:
#include&lt;stdio.h&gt;
#include&lt;string.h&gt;
/* Function prototype */
void sort(char a[50][50], int n);
void main()
{
char a[50][50];
int i, n;
printf(&quot;Enter number of names:\n&quot;);
scanf(&quot;%d&quot;, &amp;n);
for(i=0;i&lt; n;i++)
{
printf(&quot;a[%d]=&quot;,i);
74
scanf(&quot;%s&quot;, a[i]);
}
/* Function Call */
sort(a,n);
/* Displaying sorted array */
printf(&quot;Array in ascending order is:\n&quot;);
for(i=0;i&lt; n;i++)
{
printf(&quot;%s\t&quot;, a[i]);
}
}
/* Function definition for asc_sort */
void sort(char a[50][50], int n)
{
int i, j;
char temp[50][50];
for(i=0;i&lt; n-1;i++)
{
for(j=i+1;j&lt; n;j++)
{
if(strcmp(a[i],a[j])&gt;0)
{
strcpy(temp[i], a[i]);
strcpy(a[i],a[j]);
strcpy(a[j],temp[i]);
}
}
}
}
OUTPUT:
75
VIVA VOCE QUESTIONS:
1: What is structure of C program?
2: What is a C token and types of C tokens?
3: Can a C keyword used as a variable name?
4: What does an expression contains?
5: What is equality operator?
RESULT:
76
Ex.No: 8
Develop a C program to count the vowels &amp; consonants in a given string.
Date :
AIM:
To write a c program to count the vowels &amp; consonants in a given string.
DESCRIPTION:
The characters a, e, i, o, u or A, E, I, O, U are known as vowels in the English alphabet. Any character
other than that is known as the consonant.
ALGORITHM:
Step 1: Read the string s
Step 2:CALLL FUNCTION STRINGCOUNT()
do{ Check if(s[i] is between a and z)
Check if(s[i] is a,e,i,o,u)
vowels =vowels+1
else
consonants =consonants+1 }
Step 3: Print vowels, consonants.
CODING:
* C Program to Count Vowels and Consonants in a String */
#include &lt;string.h&gt;
#include &lt;stdio.h&gt;
void stringcount(char *s)
{
int i,vowels=0,consonants=0;
for(i=0;s[i];i++)
{
if((s[i]&gt;=65 &amp;&amp; s[i]&lt;=90)|| (s[i]&gt;=97 &amp;&amp; s[i]&lt;=122))
{
if(s[i]=='a'|| s[i]=='e'||s[i]=='i'||s[i]=='o'||s[i]=='u'||s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O' ||s[i]=='U')
vowels++;
else
consonants++;
}
}
77
printf(&quot;vowels = %d\n&quot;,vowels);
printf(&quot;consonants = %d\n&quot;,consonants);
}
int main()
{
char s[1000];
printf(&quot;Enter the string: &quot;);
fgets(s,100,stdin);
stringcount(s);
}
OUTPUT:
VIVA QUESTIONS:
1: What are 2D arrays?
2: Does compiler perform bound checking on an arrays?
78
3: How are array elements stored?
4: What type of arithmetic can be done on pointer?
5: How is individual element in an array can be accessed?
RESULT:
79
Ex.No: 9
Date :
Develop a C Program to find the GCD of two integers using Euclid’s
algorithm
AIM:
To write a c program to find GCD of given two Numbers using Euclid’s algorithm.
DESCRIPTION:
The GCD of two integers, X and Y, is the largest number that divides both X and Y without leaving a
remainder.
For example,
Euclid(30, 50) = 10
Euclid(2740, 1760) = 20
A simple way to find GCD is to factorize both numbers and multiply common prime factors.
Euclid’s algorithm (or Euclidean algorithm) is a method for efficiently finding the greatest common
divisor (GCD) of two numbers. Euclidean algorithm was formulated as follows: subtract the smaller
number from the larger one until one of the numbers is zero.
ALGORITHM:
Step 1: Input Two numbers x and y.
Step 2: a, b be the two numbers which will have greater and smaller number.
Step 3: Find a mod b = R
Step 4: Let a = b and b = R
Step 5: Repeat Steps 2 and 3 until a mod b is greater than 0
Step 6: GCD = b
Step 7: Finish
CODING:
#include &lt;stdio.h&gt;
int gcd(int x, int y)
{
int r = 0, a, b;
a = (x &gt; y) ?x : y; // a is greater number
b = (x &lt; y) ?x : y; // b is smaller number
80
r = b;
while (a % b != 0)
{
r = a % b;
a = b;
b = r;
}
return r;
}
int main()
{
printf(&quot;Enter the two numbers: &quot;);
int x, y;
scanf(&quot;%d&quot;, &amp;x);
scanf(&quot;%d&quot;, &amp;y);
printf(&quot;The GCD of two numbers is: %d&quot;, gcd(x, y));
return 0;
}
OUTPUT:
VIVA VOCE QUESTIONS:
1. What are sections present in for loop?
2. What is the difference between normal variable and array variable?
81
3. Which are called built-in functions?
4. What is the use of break statements?
5. What is a goto statement?
RESULT:
82
Ex.No: 11
Date :
Develop a recursive C function to find the factorial of a number, n! , defined by
fact(n)=1, if n=0. Otherwise fact(n)=n*fact(n-1). Using this function, develop a C
program to compute the Binomial coefficient nCr. Perform input validation as
well.
AIM:
To write a c program to find GCD of given two Numbers using Euclid’s algorithm.
DESCRIPTION:
1) A binomial coefficients C(n, k) can be defined as the coefficient of X k in the expansion of
(1 + X)n.
2) A binomial coefficients C(n, k) also gives the number of ways, disregarding order, that k
objects can be chosen from among n objects; more formally, the number of k-element subsets (or kcombinations) of an n-element set.
this coefficient can be computed by the multiplicative formula
which using factorial notation can be compactly expressed as
ALGORITHM:
Step 1: Start
Step 3: Invoke function factorial()and binomialCoeff()
Step 4: Print binomialCoeffi
Step 5: Stop
Function factorial (n)
if(n&lt;=0)
return 1;
else
return n*factorial(n- 1);
end if
Function binomialCoeff(n,r)
return factorial(n) / ( factorial(r) * factorial(n-r) );
83
CODING:
#include &lt;stdio.h&gt;
float fact(int n);
void main() {
int n,r;
float result;
clrscr();
printf(“\nEnter the value of n and r (0&lt;=r&lt;=n) \n”);
scanf(“%d%d”,&amp;n,&amp;r);
if(n&lt;0||r&lt;0||n&lt;r)
printf(“\nInvalid input\n”);
else
{
result=fact(n)/(fact(r)*fact(n-r));
printf(“\nC(%d,%d)=%.2f”,n,r,result);
}
getch();
}
/* function definition factorial recursively*/
float fact(int n)
{
if(n==0)
return(1);
else
return(n*fact(n-1));
}
OUTPUT:
84
VIVA VOCE QUESTIONS:
1. Can you convert a recursive functional program into a loop?
2. How dynamic programming is different from recursion and memoization?
3. Return the nth value of the Fibonacci sequence recursively
4. What is the difference between recursion and backtracking?
5. Is it possible to write a non-recursive form for every recursive function?
RESULT:
85
Ex.No: 11
Date :
Develop a C program to find the smallest and largest elements in an array
using pointers and then swap these elements and display the resultant array
AIM:
To write a C program to find the smallest and largest elements in an array using pointers and
then swap these elements and display the resultant array
DESCRIPTION:
we have a pointer ptr that points to the 0th element of the array. Similarly, we can also declare a
pointer that can point to whole array instead of only one element of the array. This pointer is
useful when talking about multidimensional arrays.
Syntax:
data_type (*var_name) [size_of_array];
Example:
int (*ptr)[10];
Here ptr is pointer that can point to an array of 10 integers. Since subscript have higher
precedence than indirection, it is necessary to enclose the indirection operator and pointer name
inside parentheses. Here the type of ptr is ‘pointer to an array of 10 integers’.
Note : The pointer that points to the 0th element of array and the pointer that points to the whole
array are totally different.
p: is pointer to 0th element of the array arr, while ptr is a pointer that points to the whole
array arr.
The base type of p is int while base type of ptr is ‘an array of 5 integers’.
We know that the pointer arithmetic is performed relative to the base size, so if we write ptr++,
then the pointer ptr will be shifted forward by 20 bytes.
The following figure shows the pointer p and ptr. Darker arrow denotes pointer to an array.
On dereferencing a pointer expression we get a value pointed to by that pointer expression.
Pointer to an array points to an array, so on dereferencing it, we should get the array, and the
name of array denotes the base address. So whenever a pointer to an array is dereferenced, we
get the base address of the array to which it points.
86
ALGORITHM:
Step 1: Input the array elements.
Step 2: Initialize small = large = arr[0]
Step 3: Repeat from i = 2 to n
Step 4: if(arr[i] &gt; large)
Step 5: large = arr[i]
Step 6: if(arr[i] &lt; small)
Step 7: small = arr[i]
Step : Print small and large.
CODING:
#include&lt;stdio.h&gt;
void minmax(int arr[], int len, int *min, int *max)
{
*min=*max=arr[0];
int i;
for(i=1;i&lt;len;i++)
{
if(arr[i]&gt;*max)
*max=arr[i];
if(arr[i]&lt;*min)
*min=arr[i];
}
}
int main()
{
int a[20];
int min,max,n,i;
printf(&quot;Enter the number of elements:&quot;);
scanf(&quot;%d&quot;,&amp;n);
printf(&quot;Enter elements:&quot;);
for(i=0;i&lt;n;i++)
scanf(&quot;%d&quot;,&amp;a[i]);
minmax(a,n,&amp;min,&amp;max);
printf(&quot;Minimum value in the array is:%d and maximum value is: %d&quot;, min,max);
return 0;
}
OUTPUT:
87
VIVA VOCE QUESTIONS:
1. What is a Null Pointer?
2. How can you combine the following two statements into one?
char *pointer;
pointer = (char*)malloc(100);
3. What is the size of a generic pointer?
4. What is a dangling pointer in C?
5. Explain the term double-pointer.
RESULT:
88
Ex.No: 12
Date :
Develop a C program to find the sum of all the elements of an integer
array using pointers.
AIM:
To write a C program to find the sum of all the elements of an integer array using
pointers.
DESCRIPTION:
Array of Pointers
It is collection of addresses (or) collection of pointers.
Declaration
Following is the declaration for array of pointers −
datatype *pointername [size];
For example,
int *p[5];
It represents an array of pointers that can hold five integer element addresses.
Initialization
‘&amp;’ is used for initialization
For example,
int a[3] = {10,20,30};
int *p[3], i;
for (i=0; i&lt;3; i++) (or) for (i=0; i&lt;3,i++)
p[i] = &amp;a[i];
p[i] = a+i;
Accessing
Indirection operator (*) is used for accessing.
For example,
for (i=0, i&lt;3; i++)
printf (&quot;%d&quot;, *p[i]);
89
ALGORITHM:
Step 1: Create a pointer variable, which points to an integer data:
Step 2: Take a number i.e size of array as input.
Step 3: Create a block of space fo size (size-ofarray*sizeof(int)) using malloc() assigning the starting address of this
whole space to the pointer variable.
Step 4: Iterate via for loop for reading array elements as input.
Step 5: Iterate again via for loop to access the address stored in pointer variable,
adding the iterator value to it, so as to access every element of array, and
calculating the overall sum.
CODING:
#include &lt;stdio.h&gt;
#include &lt;malloc.h&gt;
int main()
{
int i, n, sum = 0;
int *ptr;
printf(&quot;Enter size of array : &quot;);
scanf(&quot;%d&quot;, &amp;n);
ptr = (int *) malloc(n * sizeof(int));
printf(&quot;Enter elements in the List &quot;);
for (i = 0; i &lt; n; i++){
scanf(&quot;%d&quot;, array elements using ptr + i );
}
//calculate sum of elements
90
for (i = 0; i &lt; n; i++)
{
sum = sum + *(ptr + i)
;
}
printf(&quot;Sum of all elements in an array is = %d&quot;, sum);
return 0;
}
OUTPUT:
VIVA VOCE QUESTIONS:
1.
What is a wild pointer?
2.
What does it mean when a pointer is used inside an if statement?
3.
What is Dereference or Indirection Operator ( * )?
91
4.
How do you dereference a pointer?
5.
How many pointers can point to the same address?
RESULT:
92
Ex.No: 13
Date :
Insert, update, delete and append telephone details of an individual or a
company into a telephone directory using structures and pointers
AIM:
To Write a C Program to Insert, update, delete and append telephone details of an individual or a
company into a telephone directory using structures and pointers
DESCRIPTION:
The data to be displayed may be very large, and only a limited amount of data can be displayed on
the console, and since the memory is volatile, it is impossible to recover the programmatically
generated data again and again. However, if we need to do so, we may store it onto the local file
system which is volatile and can be accessed every time. Here, comes the need of file handling in
C.
File handling in C enables us to create, update, read, and delete the files stored on the local file
system through our C program. The following operations can be performed on a file.
 Creation of the new file
 Opening an existing file
 Writing to the file
 Deleting the file
Functions for file handling
There are many functions in the C library to open, read, write, search and close the file. A list of file
functions are given below:
Function
Description
fopen()
opens new or existing file
fprintf()
write data into the file
fscanf()
fputc()
writes a character into the file
fgetc()
fclose()
closes the file
fseek()
sets the file pointer to given position
fputw()
writes an integer to file
fgetw()
ftell()
returns current position
rewind()
sets the file pointer to the beginning of
the file
ALGORITHM:
Step1: Start the program
Step2: Store the telephone details into a file
Step3: Read the data &amp; Display it
Step4: Enter the telephone number to be modified &amp; the new number
Ste5: Use fseek() function to randomly access the record
Step6: Copy the contents from source file to destination file
Step7: Store the updated record into the new file
Step8: Stop the program
CODING:
#include &quot;stdio.h&quot;
#include &quot;string.h&quot;
#include&lt;stdlib.h&gt;
#include&lt;fcntl.h&gt;
struct dir
{
char name[20];
char number[10];
};
void insert(FILE *);
void update(FILE *);
void del(FILE *);
void display(FILE *);
void search(FILE *);
int record = 0;
int main(void) {
int choice = 0;
FILE *fp = fopen( &quot;telephone.dat&quot;, &quot;rb+&quot; );
if (fp == NULL ) perror (&quot;Error opening file&quot;);
while (choice != 6)
{
printf(&quot;\n1 insert\t 2 update\n&quot;);
94
printf(&quot;3 delete\t 4 display\n&quot;);
printf(&quot;5 search\t 6 Exit\n Enter choice:&quot;);
scanf(&quot;%d&quot;, &amp;choice);
switch(choice)
{
case 1: insert(fp); break;
case 2: update(fp); break;
case 3: del(fp); break;
case 4: display(fp); break;
case 5: search(fp); break;
default: ;
}
}
fclose(fp);
return 0;
}
void insert(FILE *fp)
{
struct dir contact, blank;
fseek( fp, -sizeof(struct dir), SEEK_END );
printf(&quot;Enter individual/company name: &quot;);
scanf(&quot;%s&quot;, contact.name);
printf(&quot;Enter telephone number: &quot;);
scanf(&quot;%s&quot;, contact.number);
fwrite(&amp;contact, sizeof(struct dir), 1, fp);
}
void update(FILE *fp)
{
char name[20], number[10];
int result;
struct dir contact, blank;
printf(&quot;Enter name:&quot;);
scanf(&quot;%s&quot;, name);
rewind(fp);
while(!feof(fp))
{
result = fread(&amp;contact, sizeof(struct dir), 1, fp);
if(result != 0 &amp;&amp; strcmp(name, contact.name) == 0)
{
printf(&quot;Enter number:&quot;);
scanf(&quot;%s&quot;, number);
strcpy(contact.number, number);
fseek(fp, -sizeof(struct dir), SEEK_CUR);
fwrite(&amp;contact, sizeof(struct dir), 1, fp);
printf(&quot;Updated successfully\n&quot;);
return;
95
}
}
}
void del(FILE *fp)
{
char name[20], number[10];
int result, record=0;
struct dir contact, blank = {&quot;&quot;, &quot;&quot;};
printf(&quot;Enter name:&quot;);
scanf(&quot;%s&quot;, name);
rewind(fp);
while(!feof(fp))
{
result = fread(&amp;contact, sizeof(struct dir), 1, fp);
if(result != 0 &amp;&amp; strcmp(name, contact.name) == 0)
{
fseek(fp, record*sizeof(struct dir), SEEK_SET);
fwrite(&amp;blank, sizeof(struct dir), 1, fp);
printf(&quot;%d Deleted successfully\n&quot;, record-1);
return;
}
record++;
}
}
void display(FILE *fp)
{
struct dir contact;
int result;
rewind(fp);
printf(&quot;\n\n Telephone directory\n&quot;);
printf(&quot;%20s %10s\n&quot;, &quot;Name&quot;, &quot;Number&quot;);
printf(&quot;*******************************\n&quot;);
while(!feof(fp))
{
result = fread(&amp;contact, sizeof(struct dir), 1, fp);
if(result != 0 &amp;&amp; strlen(contact.name) &gt; 0)
printf(&quot;%20s %10s\n&quot;,contact.name, contact.number);
}
printf(&quot;*******************************\n&quot;);
}
void search(FILE *fp)
{
struct dir contact;
int result; char name[20];
rewind(fp);
96
printf(&quot;\nEnter name:&quot;);
scanf(&quot;%s&quot;, name);
while(!feof(fp))
{
result = fread(&amp;contact, sizeof(struct dir), 1, fp);
if(result != 0 &amp;&amp; strcmp(contact.name, name) == 0)
{
printf(&quot;\n%20s %10s\n&quot;,contact.name, contact.number);
return;
}
}
}
OUTPUT:
97
VIVA QUESTIONS:
1.
What is the use of printf() and scanf() functions? Also explain format specifiers?
2.
What's the value of the expression 5[&quot;abxdef&quot;]?
3.
What is a Preprocessor?
4.
What is the difference between global int and static int declaration?
5.
What is the difference between struct and union in C?
RESULT:
98
```