C Lab Manual Mca
C Lab Manual Mca
04
*Date : 10 August 2022
***************************************************************************/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
/***************************************************************************
*Function : main
*Input parameters : no parameters
*RETURNS : 0 on success
***************************************************************************/
int main()
{
int iChoice, iOperand1, iOperand2;
char cOperator;
for(;;)
{
printf("\nEnter the arithmetic expression(Do not add spaces in the
expression)\n");
scanf("%d%c%d", &iOperand1, &cOperator, &iOperand2);
switch(cOperator)
{
case '+': printf("\nResult = %d", iOperand1 +
iOperand2);
break;
}
printf("\nPress 1 to continue and 0 to quit : ");
scanf("%d", &iChoice);
if(0==iChoice)
{
break;
}
}
return 0;
}
Output
/***************************************
Enter the arithmetic expression
4+6
Result = 10
Press 1 to continue and 0 to quit : 1
Result = -7
Press 1 to continue and 0 to quit : 1
Result = 10
Press 1 to continue and 0 to quit : 1
Result = 0.8
Press 1 to continue and 0 to quit : 1
Result = 2
Press 1 to continue and 0 to quit : 1
Result = 3
Press 1 to continue and 0 to quit : 0
***************************************/
Question 2
Quadratic Equation
Compute the roots of a quadratic equation by accepting the
coefficients. Print appropriate messages.
C Code
/***************************************************************************
*File : A02Quadratic.c
*Description : Program to find the roots of a Quadratic Equation
*Author : Prabodh C P
*Compiler : gcc compiler, Ubuntu 22.04
*Date : 10 August 2022
***************************************************************************/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
/***************************************************************************
*Function : main
*Input parameters : no parameters
*RETURNS : 0 on success
***************************************************************************/
int main(void)
{
float fA,fB,fC,fDesc,fX1,fX2,fRealp,fImagp;
int iState;
printf("\n*************************************************************");
printf("\n*\tPROGRAM TO FIND ROOTS OF A QUADRATIC EQUATION\t *\n");
printf("*************************************************************");
Question 3
Electricity Bill
An electricity board charges the following rates for the use of
electricity: for the first 200 units 80 paise per unit: for the next
100 units 90 paise per unit: beyond 300 units Rs 1 per unit. All
users are charged a minimum of Rs. 100 as meter charge. If the
total amount is more than Rs 400, then an additional surcharge of
15% of total amount is charged. Write a program to read the
name of the user, number of units consumed and print out the
charges.
C Code
/***************************************************************************
*File : A03ElectricBill.c
*Description : Program to perform a binary search on 1D Array
*Author : Prabodh C P
*Compiler : gcc compiler, Ubuntu 22.04
*Date : 10 August 2022
***************************************************************************/
#include<stdio.h>
#include<stdlib.h>
/***************************************************************************
*Function : main
*Input parameters : no parameters
*RETURNS : 0 on success
***************************************************************************/
int main(void)
{
char cName[30];
int iUnits;
const int iMinCharge = 100;
const double dSlab1 = 0.8;
const double dSlab2 = 0.9;
const double dSlab3 = 1.0;
const double dSurcharge = 0.15;
double dBillAmount = 0.0;
dBillAmount += iMinCharge;
if(iUnits <= 200)
{
dBillAmount += iUnits*dSlab1;
}
else if(iUnits > 200 && iUnits <= 300)
{
dBillAmount += (200*dSlab1)+((iUnits-200)*dSlab2);
}
else
{
dBillAmount += (200*dSlab1)+(100*dSlab2)+((iUnits-300)*dSlab3);
}
if(dBillAmount > 400)
{
dBillAmount += dBillAmount * dSurcharge;
}
printf("\nElectricity Bill\
n===================================");
printf("\nCustomer Name\t: %s", cName);
printf("\nUnits Consumed\t: %d", iUnits);
printf("\nBill Amount\t: %0.2lf Rupees\n\n", dBillAmount);
return 0;
}
Output
/***************************************
Enter the name of the customer : Ramesh
Enter the number of units consumed : 457
Electricity Bill
===================================
Customer Name : Ramesh
Units Consumed : 457
Bill Amount : 583.05 Rupees
Electricity Bill
===================================
Customer Name : Sayeed
Units Consumed : 150
Bill Amount : 220.00 Rupees
Electricity Bill
===================================
Customer Name : Jaswinder
Units Consumed : 300
Bill Amount : 350.00 Rupees
Electricity Bill
===================================
Customer Name : Shyam
Units Consumed : 182
Bill Amount : 245.60 Rupees
***************************************/
Output
/***************************************
Enter Customer name:SHAM
***************************************/
Question 4
Printing Pattern
Write a C Program to display the following by reading the number
of rows as input
C Code
/***************************************************************************
*File : A04Pattern.c
*Description : Program to print a Pattern
*Author : Prabodh C P
*Compiler : gcc compiler, Ubuntu 22.04
*Date : 26 December 2022
***************************************************************************/
#include<stdio.h>
#include<stdlib.h>
/***************************************************************************
*Function : main
*Input parameters : no parameters
*RETURNS : 0 on success
***************************************************************************/
int main()
{
int iNum, iSp_cnt, iNum_cnt, iVal, i, j, k;
printf("Enter the number of rows : ");
scanf("%d", &iNum);
iSp_cnt = iNum - 1;
iNum_cnt = 1;
for(i=0;i<iNum;i++)
{
iVal = 1;
for(j=0;j<iSp_cnt;j++)
{
printf(" ");
}
for(k=0;k<iNum_cnt;k++)
{
if(k <= iNum_cnt/2)
{
printf("%d ", iVal);
iVal++;
}
else
{
iVal--;
printf("%d ", iVal-1);
}
}
printf("\n");
iSp_cnt--;
iNum_cnt += 2;
}
return 0;
}
Output
/****************************
Question 5
Binary Search
Implement Binary Search on Integers.
C Code
/***************************************************************************
*File : A05BinarySearchIntegers.c
*Description : Program to perform a binary search on 1D Array of Integers
*Author : Prabodh C P
*Compiler : gcc compiler, Ubuntu 22.04
*Date : 10 August 2022
***************************************************************************/
#include<stdio.h>
#include<stdlib.h>
/***************************************************************************
*Function : main
*Input parameters : no parameters
*RETURNS : 0 on success
***************************************************************************/
int main(void)
{
int iaArr[100],iNum,i,iMid,iLow,iHigh,iFound,iKey;
iFound = 0;
iLow = 0;
iHigh = iNum-1;
while(iLow <= iHigh)
{
iMid = (iLow+iHigh)/2;
if(iKey == iaArr[iMid])
{
iFound = 1;
break;
}
else if(iKey < iaArr[iMid])
{
iHigh = iMid-1;
}
else
{
iLow = iMid+1;
}
}
if(iFound)
printf("\nKey element %d found at position %d\n",iKey,iMid+1);
else
printf("\nKey element not found\n");
return 0;
}
Output
/****************************
Enter the number of elements
5
Question 6
Matrix Multiplication
Implement Matrix multiplication and validate the rules of
multiplication.
C Code
/***************************************************************************
*File : A06MatrixMul.c
*Description : Program to implement Matrix Multiplication
*Author : Prabodh C P
*Compiler : gcc compiler, Ubuntu 22.04
*Date : 10 August 2022
***************************************************************************/
#include<stdio.h>
#include<stdlib.h>
/***************************************************************************
*Function : main
*Input parameters : no parameters
*RETURNS : 0 on success
***************************************************************************/
int main(void)
{
int iM, iN, iP, iQ, i, j, k, iaMat1[10][10], iaMat2[10][10];
int iaProd[10][10] = {0};
printf("\n*********************************************************");
printf("\n*\tPROGRAM TO IMPLEMENT MATRIX MULIPLICATION\t*\n");
printf("*********************************************************");
if( iN != iP)
{
printf("\nMatrix Multiplication not possible\n");
exit(0);
}
for(i=0;i<iM;i++)
{
for(j=0;j<iQ;j++)
{
for(k=0;k<iN;k++)
{
iaProd[i][j] += iaMat1[i][k] * iaMat2[k][j];
}
}
}
/
******************************************************************************************
********
|*| |*|
a00 a01 a02|*|b00 b01 b02|*|
|*| |*|
a10 a11 a12|*|b10 b11 b12|*|
|*| |*|
a20 a21 a22|*|b20 b21 b22|*|
|*| |*|
(a00*b00+a01*b10+a02*b20) (a00*b01+a01*b11+a02*b21)
(a00*b02+a01*b12+a02*b22)
(a10*b00+a11*b10+a12*b20) (a10*b01+a11*b11+a12*b21)
(a10*b02+a11*b12+a12*b22)
(a20*b00+a21*b10+a22*b20) (a20*b01+a21*b11+a22*b21)
(a20*b02+a21*b12+a22*b22)
******************************************************************************************
********/
printf("\nMatrix 1\n");
for(i=0;i<iM;i++)
{
for(j=0;j<iN;j++)
{
printf("%d\t",iaMat1[i][j]);
}
printf("\n");
}
printf("\n");
printf("\nMatrix 2\n");
for(i=0;i<iP;i++)
{
for(j=0;j<iQ;j++)
{
printf("%d\t",iaMat2[i][j]);
}
printf("\n");
}
printf("\n");
for(i=0;i<iM;i++)
{
for(j=0;j<iQ;j++)
{
printf("%d\t",iaProd[i][j]);
}
printf("\n");
}
printf("\n");
return 0;
}
Output
/***************************************
*********************************************************
* PROGRAM TO IMPLEMENT MATRIX MULIPLICATION *
*********************************************************
Enter the order of Matrix1
23
*********************************************************
* PROGRAM TO IMPLEMENT MATRIX MULIPLICATION *
*********************************************************
Enter the order of Matrix1
23
Matrix 1
1 2 3
4 5 6
Matrix 2
1 2
3 4
5 6
*********************************************************
* PROGRAM TO IMPLEMENT MATRIX MULIPLICATION *
*********************************************************
Enter the order of Matrix1
22
Matrix 1
1 2
3 4
Matrix 2
1 0
0 1
Question 7
Compute Sine and Cosine of an Angle
Compute sin(x)/cos(x) using Taylor series approximation.
Compare your result with the built-in library function. Print both
the results with appropriate inferences.
C Code
/***************************************************************************
*File : A07SineCosAngle.c
*Description : Program to calculate Sin(x)/Cos(x) using Taylor series
*Author : Prabodh C P
*Compiler : gcc compiler, Ubuntu 22.04
*Date : 10 August 2022
***************************************************************************/
#include<stdio.h>
#include<stdlib.h>
#include <math.h>
/***************************************************************************
*Function : main
*Input parameters : no parameters
*RETURNS : 0 on success
***************************************************************************/
int main()
{
float fAngD, fAngR;
float fTerm, fNum, fDen, fSVal,fCVal;
int i,iNum;
printf("\nEnter the Angle : "); scanf("%f",&fAngD);
printf("\nEnter the Number of terms : "); scanf("%d",&iNum);
printf("\nInput Angle = %g\n",fAngD);
printf("No of terms = %d\n",iNum);
fAngR= (fAngD*M_PI)/180 ;
return 0;
}
Output
/***************************************
Question 8
Bubble sort.
Sort the given set of N numbers using Bubble sort.
C Code
/***************************************************************************
*File : A08BubbleSort.c
*Description : Program to implement Bubble Sort Algorithm
*Author : Prabodh C P
*Compiler : gcc compiler, Ubuntu 22.04
*Date : 10 August 2022
***************************************************************************/
#include<stdio.h>
#include<stdlib.h>
/***************************************************************************
*Function : main
*Input parameters : no parameters
*RETURNS : 0 on success
***************************************************************************/
int main(void)
{
int iNum, i, j, iaArr[10], iTemp;
printf("\n*************************************************");
printf("\n*\tPROGRAM TO IMPLEMENT BUBBLE SORT\t*\n");
printf("*************************************************");
printf("\nEnter no of elements\n");
scanf("%d",&iNum);
for(i=0;i<iNum;i++)
{
for(j=0;j<iNum-i-1;j++)
{
if(iaArr[j] > iaArr[j+1])
{
iTemp = iaArr[j];
iaArr[j] = iaArr[j+1];
iaArr[j+1] = iTemp;
}
for(i=0;i<iNum;i++)
printf("%d\t",iaArr[i]);
printf("\n");
return 0;
}
Output
/***************************************
*************************************************
* PROGRAM TO IMPLEMENT BUBBLE SORT *
*************************************************
Enter no of elements
5
*************************************************
* PROGRAM TO IMPLEMENT BUBBLE SORT *
*************************************************
Enter no of elements
6
Question 9
String Operations
Write functions to implement string operations such as compare,
concatenate, and find string length. Use the parameter passing
techniques.
C Code
/***************************************************************************
*File : A09StringFunctions.c
*Description : Program to implement string operations as functions
*Author : Prabodh C P
*Compiler : gcc compiler, Ubuntu 22.04
*Date : 10 August 2022
***************************************************************************/
#include<stdio.h>
#include<stdlib.h>
/***************************************************************************
*Function : main
*Input parameters : no parameters
*RETURNS : 0 on success
***************************************************************************/
int main()
{
int iChoice;
char acStr1[30], acStr2[30];
int iLen;
printf("\n=====================\n");
printf("STRING OPERATIONS");
printf("\n=====================\n");
for(;;)
{
printf("\nEnter two strings\n");
printf("\nString 1 : "); scanf("%s", acStr1);
printf("\nString 2 : "); scanf("%s", acStr2);
printf("\n1.String Compare\n2.String Concatenate\n3.String Length");
printf("\nEnter your choice : "); scanf("%d", &iChoice);
switch(iChoice)
{
case 1: if(fnMyStrCmp(acStr1, acStr2) == 0)
printf("\nTwo strings are equal");
else if(fnMyStrCmp(acStr1, acStr2) > 0)
printf("\nString %s is greater than
String %s", acStr1, acStr2);
else
printf("\nString %s is greater than
String %s", acStr2, acStr1);
break;
}
printf("\nPress 1 to continue and 0 to quit : ");
scanf("%d", &iChoice);
if(0==iChoice)
{
break;
}
}
return 0;
}
/***************************************************************************
*Function : fnMyStrCmp
*Description : Function that compares the two strings s1 and s2.
*Input parameters :
* const char *s1, const char *s2 - two strings to be compared
*RETURNS :
* 1 if s1 is greater than s2.
* 0 if s1 matches s2.
* -1 if s1 is less than s2.
***************************************************************************/
/***************************************************************************
*Function : fnMyStrCat
*Description : function that appends the src string to the dest string
*Input parameters :
* char *dest - first string
* const char *src - second string
*RETURNS : nothing
***************************************************************************/
/***************************************************************************
*Function : fnMyStrLen
*Description : function that calculates the length of a string
*Input parameters :
* const char *str - string whose length needs to be found
*RETURNS :
* integer which is the length of the string
***************************************************************************/
String 1 : shiva
String 2 : shankar
1.String Compare
2.String Concatenate
3.String Length
Enter your choice : 2
Concatenated String is
shivashankar
Press 1 to continue and 0 to quit : 1
String 1 : ramesh
String 2 : sumesh
1.String Compare
2.String Concatenate
3.String Length
Enter your choice : 1
String 1 : sam
String 2 : samantha
1.String Compare
2.String Concatenate
3.String Length
Enter your choice : 3
Question 10
C Structures
Implement structures to read, write and compute average- marks
and the students scoring above and below the average marks for
a class of N students.
C Code
/***************************************************************************
*File : A10StudentStructure.c
*Description : Program to implement structure and compute average marks
*Author : Prabodh C P
*Compiler : gcc compiler, Ubuntu 22.04
*Date : 10 August 2022
***************************************************************************/
#include<stdio.h>
#include<stdlib.h>
#define STRSIZE 30
typedef struct
{
char cName[STRSIZE];
char cUSN[11];
int iMarks;
}STUDENT_TYPE;
/***************************************************************************
*Function : main
*Input parameters : no parameters
*RETURNS : 0 on success
***************************************************************************/
int main(void)
{
STUDENT_TYPE students[100];
int iNum, i;
double dAvg = 0.0;
dAvg /= iNum;
for(i=0;i<iNum;i++)
{
printf("\n###############################");
return 0;
}
Output
/***************************************
Enter the number of students : 4
Enter the Student details
=========================================
Name : Raju
USN : 1SI17CS036
Marks : 67
=========================================
Name : Michael
USN : 1SI17CS045
Marks : 87
=========================================
Name : Sahana
USN : 1SI17CS405
Marks : 77
=========================================
Name : Jonathan
USN : 1SI17CS025
Marks : 83
=========================================
Name : Raju
USN : 1SI17CS036
Marks : 67
The student has scored below average
=========================================
Name : Michael
USN : 1SI17CS045
Marks : 87
The student has scored above average
=========================================
Name : Sahana
USN : 1SI17CS405
Marks : 77
The student has scored below average
=========================================
Name : Jonathan
USN : 1SI17CS025
Marks : 83
The student has scored above average
***************************************/
Question 11
Pointers and Arrays
Develop a program using pointers to compute the sum, mean and
standard deviation of all elements stored in an array of N real
numbers.
C Code
/***************************************************************************
*File : A11MeanVarianceSD.c
*Description : Program to compute Mean, Variance and Standard Deviation
using pointer to an array
*Author : Prabodh C P
*Compiler : gcc compiler, Ubuntu 22.04
*Date : 10 August 2022
***************************************************************************/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
/***************************************************************************
*Function : main
*Input parameters : no parameters
*RETURNS : 0 on success
***************************************************************************/
int main(void)
{
int i,iNum;
float fMean = 0.0f, fVariance = 0.0f, fSd = 0.0f,faArray[100],fSum=0.0f;
float *fptr;
printf("\n**************************************\n");
printf("\tSum\t = \t%g\n\tMean\t = \t%g\n\tVariance = \t%g\nStandard Deviation = \t
%g",fSum,fMean,fVariance,fSd);
printf("\n**************************************\n");
return 0;
}
Output
/***************************************
Enter the number of Values : 4
Enter 4 values
1.1 2.2 3.3 4.4
The values entered are 1.1 2.2 3.3 4.4
**************************************
Sum = 11
Mean = 2.75
Variance = 1.5125
Standard Deviation = 1.22984
**************************************
=====================================================
=======
Enter the number of Values : 5
Enter 5 values
5.345 6.765 7.234 8.675 9.765
**************************************
Sum = 37.784
Mean = 7.5568
Variance = 2.34995
Standard Deviation = 1.53295
**************************************
***************************************/
Question 12
File Copy
Write a C program to copy a text file to another, read both the
input file name and target file name.
C Code
/***************************************************************************
*File : A12FileCopy.c
*Description : Program to copy a text file to another
*Author : Prabodh C P
*Compiler : gcc compiler, Ubuntu 22.04
*Date : 22 December 2022
***************************************************************************/
#include<stdio.h>
#include<stdlib.h>
/***************************************************************************
*Function : main
*Input parameters : no parameters
*RETURNS : 0 on success
***************************************************************************/
int main(void)
{
FILE *fp1,*fp2;
int ch;
char fname1[100], fname2[100];
printf("\nEnter File name to be copied\n");
scanf("%s",fname1);
fp1 = fopen(fname1,"r");
if(fp1 == NULL)
{
printf("\nInput File %s doesn't exist\n", fname1);
exit(0);
}
fp2 = fopen(fname2,"w");
while((ch=fgetc(fp1)) != EOF)
{
fputc(ch,fp2);
}
printf("\nFile %s successfully created\n",fname2);
fclose(fp1);
fclose(fp2);
return 0;
}
Output
/**************************************************
Enter File name to be copied
out9.c
===============================================
**********************