C Programming Lab Exam Questions With Solutions For Engineers
Hello guys, welcome back to my blog. In this article, I will discuss the C programming lab exam questions with solutions for engineers, C programming viva questions, interview questions on C programming, etc.
If you have any doubts related to electrical, electronics, and computer science, then ask questions. You can also catch me on Instagram – Chetan Shidling.
Also, read:
- What Is Vectors, Benefits Of Using Vectors, Cpp Code On Vectors
- Difference Between Structured, Unstructured, And Semi-structured Data
- What Is Processing Workloads, Batch Processing, Transactional Processing
C Programming Lab Exam Questions
Note: Change the double inverted comma ( ” ) in the code to avoid an error.
01. Develop a program to solve simple computational problems using arithmetic expressions and the use of each operator leading to the simulation of a commercial calculator. (No built-in math function)?
#include<stdio.h>
int main()
{
int a,b,choice;
int result;
printf("Enter two values\n");
scanf("%d%d",&a,&b);
printf("enter your choice\n");
printf("1.Addition\n 2.Subtraction\n 3.Multiplication\n 4.Division\n 5.Modulus\n");
scanf("%d",&choice);
switch(choice)
{
case 1: result = a + b;
break;
case 2: result = a - b;
break;
case 3: result = a * b;
break;
case 4: result = a / b;
break;
case 5: result = a % b;
break;
default:printf("invalid choice");
}
printf("The Result = %d",result);
return 0;
}
Output:
Enter two values
2
3
enter your choice
1.Addition
2.Subtraction
3.Multiplication
4.Division
5.Modulus
1
The Result = 5
02. Develop a program to compute the roots of a quadratic equation by accepting the coefficients. Print appropriate messages?
#include <stdio.h>
#include <math.h>
int main()
{
float a, b, c, d, r1, r2;
printf("Enter non-zero coefficients: ");
scanf("%f %f %f", &a, &b, &c);
d = (b * b) - 4 * a * c;
if (d == 0)
{
r1 = r2 = (-b) / (2 * a);
printf("Root are equal\n");
printf("Root1 = %f\n and Root2 = %f\n", r1, r2);
}
else if (d > 0)
{
r1 = (-b + sqrt(d)) / (2 * a);
r2 = (-b - sqrt(d)) / (2 * a);
printf("Roots are real and distinct\n");
printf("Root1 = %f\n", r1);
printf("Root2 = %f\n", r2);
}
else
{
r1 = (-b) / (2 * a);
r2 = sqrt(fabs(d)) / (2 * a);
printf("Roots are complex\n");
printf("Root1 = %f+i%f \n", r1, r2);
printf("Root2 = %f-i%f \n", r1, r2);
}
}
Output:
Enter non-zero coefficients: 1
2
1
Root are equal
Root1 = -1.000000
and Root2 = -1.000000
03. Develop a program to find the reverse of a positive integer and check for palindrome or not Display appropriate messages?
#include <stdio.h>
int main()
{
int rev, digit, n, m;
printf("Enter four digit number :");
scanf("%d", &n);
m = n;
while (n != 0)
{
digit = n % 10;
n = n / 10;
rev = rev * 10 + digit;
}
printf("Reverse number is %d \n", rev);
if (m == rev)
printf("Number is a palindrome");
else
printf("Not a palindrome");
}
Output:
Enter four digit number :1234
Reverse number is 594321
Not a palindrome
04. 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 changed 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.
#include <stdio.h>
#include <stdlib.h>
int main()
{
char name[10];
int units;
const int mincharge = 100;
const double slab1 = 0.80;
const double slab2 = 0.90;
const double slab3 = 1.00;
const double surcharge = 0.15;
double billamt = 0.0;
printf("enter the name of consumer\n");
scanf("%s", &name);
printf("enter the number of units consumed\n");
scanf("%d", &units);
billamt = billamt + mincharge;
if (units <= 200)
{
billamt = billamt + (units * slab1);
}
else if (units > 200 && units <= 300)
{
billamt = billamt + ((200 * slab1) + (units - 200) * slab2);
}
else
{
billamt = billamt + (200 * slab1) + (100 * slab2) + ((units - 300) * slab3);
}
if (billamt > 400)
{
billamt = billamt + (billamt * surcharge);
}
printf("consumer name=%s\n", name);
printf("units consumed =%d\n", units);
printf("billamount=%f rupees\n", billamt);
}
Output:
enter the name of consumer
Chetan
enter the number of units consumed
300
consumer name=Chetan
units consumed =300
billamount=350.000000 rupees
05. Introduce 1D Array manipulation and implement Binary search
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main()
{
int n, i, low, mid, high;
char a[20][20], key[20];
printf("Enter the number of names\n");
scanf("%d", &n);
printf("Enter the names\n");
for (i = 0; i < n; i++)
{
scanf("%s", a[i]);
}
printf("Enter the key\n");
scanf("%s", key);
low = 0;
high = n - 1;
while (low <= high)
{
mid = (high + low) / 2;
if (strcmp(a[mid], key) == 0)
{
printf("Name found at %d\n", mid + 1);
exit(0);
}
else if (strcmp(a[mid], key) > 0)
high = mid - 1;
else
low = mid + 1;
}
printf("Unsuccessful search \n");
}
Output:
Enter the number of names
3
Enter the names
Chetan
Nitin
Ratan
Enter the key
2
Unsuccessful search
06. Implement using functions to check whether the given number is prime and display appropriate messages(No built-in math function)
#include <stdio.h>
#include <stdlib.h>
int Isprime(int n);
int main()
{
int n;
printf("Enter a positive integer\n");
scanf("%d", &n);
if (Isprime(n))
printf("%d is a prime number\n", n);
else
printf("%d is not a prime number\n", n);
return 0;
}
int Isprime(int n)
{
int i;
if (n == 1)
{
printf("its a unique number\n");
exit(0);
}
for (i = 2; i <= n / 2; i++)
{
if (n % i == 0)
{
return (0);
}
}
return 1;
}
Output:
Enter a positive integer
6
6 is not a prime number
07. Develop a program to introduce 2D Array manipulation and implement Matrix multiplication and ensure the rules of multiplication are checked
#include <stdio.h>
#include <stdlib.h>
int main()
{
int m, n, p, q, i, j, k, a[10][10], b[10][10], c[10][10];
printf("Enter the size of first matrix a\n");
scanf("%d%d", &m, &n);
printf("Enter the size of second matrix b\n");
scanf("%d%d", &p, &q);
if (n != p)
{
printf("Matix multiplication not possible\n");
exit(0);
}
printf("Enter the first matix elements a\n");
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
scanf("%d", &a[i][j]);
}
}
printf("The Matrix a is \n");
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
printf("%d\t", a[i][j]);
}
printf("\n");
}
printf("Enter the second matix elements b\n");
for (i = 0; i < p; i++)
{
for (j = 0; j < q; j++)
{
scanf("%d", &b[i][j]);
}
}
printf("The Matrix b is \n");
for (i = 0; i < p; i++)
{
for (j = 0; j < q; j++)
{
printf("%d\t", b[i][j]);
}
printf("\n");
}
for (i = 0; i < m; i++)
{
for (j = 0; j < q; j++)
{
c[i][j] = 0;
for (k = 0; k < n; k++)
{
c[i][j] = c[i][j] + (a[i][k] * b[k][j]);
}
}
}
printf("Resultant matrix c\n");
for (i = 0; i < m; i++)
{
for (j = 0; j < q; j++)
{
printf("%d\t", c[i][j]);
}
printf("\n");
}
}
Output:
Enter the size of first matrix a
3
3
Enter the size of second matrix b
3
3
Enter the first matix elements a
2
3
4
5
1
2
1
4
3
The Matrix a is
2 3 4
5 1 2
1 4 3
Enter the second matix elements b
5
3
6
3
5
3
4
2
1
The Matrix b is
5 3 6
3 5 3
4 2 1
Resultant matrix c
35 29 25
36 24 35
29 29 21
08. Develop a program to compute Sin(x) using Taylor series approximation. Compare your result with the built-in Library function. Print both the result with appropriate messages
#include <stdio.h>
#include <math.h>
#define PI 3.142
int main()
{
int n, i;
float deg, x, sum = 0, term = 0;
printf("Enter number of terms, say n\n");
scanf("%d", &n);
printf("Enter the degree\n");
scanf("%f", °);
x = (deg * PI) / 180;
printf("In Radians = %f \n", x);
term = x;
sum = term;
for (i = 3; i <= n; i += 2)
{
term = (-term * x * x) / (i * (i - 1));
sum = sum + term;
}
printf("sin(%f)=%f\n", deg, sum);
printf("Inbuilt function Sin(%f) = %f \n", deg, sin(x));
printf("User function Sin(%f) = %f", deg, sum);
}
Output:
Enter number of terms, say n
4
Enter the degree
34
In Radians = 0.593489
sin(34.000000)=0.558648
Inbuilt function Sin(34.000000) = 0.559257
User function Sin(34.000000) = 0.558648
09. Develop a program to sort the given set of N numbers using Bubble sort
#include <stdio.h>
int main()
{
int a[20], n, i, temp = 0, j;
printf("Enter number of array elements\n");
scanf("%d", &n);
printf("Enter array elements\n");
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
for (i = 1; i < n; i++)
{
for (j = 0; j < n - i; j++)
{
if (a[j] > a[j + 1])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
printf("The sorted array is \n");
for (i = 0; i < n; i++)
printf("%d\n", a[i]);
}
Output:
Enter number of array elements
5
Enter array elements
44
3
66
5
4
The sorted array is
3
4
5
44
66
10. Develop a program to find the square root of a given number N and execute for all possible Inputs with appropriate messages. Note: Don’t use library function sqrt(n)
#include <stdio.h>
int main()
{
float sqrt, temp, n;
printf("Enter a number\n");
scanf("%f", &n);
sqrt = n / 2;
temp = 0;
while (temp != sqrt)
{
temp = sqrt;
sqrt = (n / sqrt + sqrt) / 2;
}
printf("The square root of the number is %f", sqrt);
}
Output:
Enter a number
9
The square root of the number is 3.000000
11. 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
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
char name[20];
int usn;
int marks;
} stud;
int main()
{
int i, n;
float avg = 0;
stud st[50];
printf("Enter the number of students\n");
scanf("%d", &n);
printf("enter the student details\n");
for (i = 0; i < n; i++)
{
printf("\n name:");
scanf("%s", st[i].name);
printf("\n usn:");
scanf("%d", &st[i].usn);
printf("\n marks:");
scanf("%d", &st[i].marks);
avg = avg + st[i].marks;
}
avg = avg / n;
for (i = 0; i < n; i++)
{
printf("\n name \t %s", st[i].name);
printf("\n usn \t %d", st[i].usn);
printf("\n marks\t:%d\n", st[i].marks);
if (st[i].marks < avg)
printf("the student is below the average\n");
else
printf("the student is above average\n");
}
}
Output:
Enter the number of students
2
enter the student details
name:Chetan
usn:22
marks:99
name:Nikhil
usn:43
marks:89
name Chetan
usn 22
marks :99
the student is above average
name Nikhil
usn 43
marks :89
the student is below the average
12. Develop a program using pointers to compute the sum and standard deviation of all elements stored in an array of n real numbers.
#include <stdio.h>
#include <math.h>
int main()
{
float a[10], *ptr, mean, sum = 0, var, sumstd = 0, std;
int n, i;
printf("Enter the number of elements\n");
scanf("%d", &n);
printf("Enter the array elements\n");
for (i = 0; i < n; i++)
{
scanf("%f", &a[i]);
}
ptr = a;
for (i = 0; i < n; i++)
{
sum = sum + (*ptr);
ptr++;
}
mean = sum / n;
ptr = a;
for (i = 0; i < n; i++)
{
sumstd = sumstd + pow((*ptr - mean), 2);
ptr++;
}
var = sumstd / n;
std = sqrt(var);
printf("Sum = %f \n", sum);
printf("Mean = %f \n", mean);
printf("Variance = %f \n", var);
printf("Standard Deviation = %f", std);
}
Output:
Enter the number of elements
4
Enter the array elements
34
22
56
12
Sum = 124.000000
Mean = 31.000000
Variance = 269.000000
Standard Deviation = 16.401220
13. Implement Recursive functions for binary to Decimal Conversion
#include <stdio.h>
int binarytodecimal(int binarynum)
{
if (!(binarynum / 10))
return binarynum;
return (binarynum % 10 + binarytodecimal(binarynum / 10) * 2);
}
int main()
{
int binarynum;
printf("Enter the binary number \n");
scanf("%d", &binarynum);
printf("equivalant decimal number is %d", binarytodecimal(binarynum));
return 0;
}
Output:
Enter the binary number
10101
equivalant decimal number is 21
14. Write a function to implement string operations such as compare, concatenate, string length. Convince the parameters passing techniques
#include <stdio.h>
#include <string.h>
int main()
{
int length(char str[100]);
int compare(char s1[100], char s2[100]);
void concat(char s1[100], char s2[100]);
int option, result;
char str[100], s1[100], s2[100];
do
{
printf("1.String length \n");
printf("2.string comparision \n");
printf("3.string concatenation \n");
printf("4.quit \n");
printf("enter your choice \n");
scanf("%d", &option);
switch (option)
{
case 1:
printf("enter string \n");
scanf("%s", &str);
result = length(str);
printf("the length of string= %d\n", result);
break;
case 2:
printf("enter 1st string\n");
scanf("%s", &s1);
printf("enter 2nd string\n");
scanf("%s", &s2);
result = compare(s1, s2);
if (result == 0)
{
printf("strings are equal \n");
}
else
{
printf("strings are not equal \n");
break;
}
case 3:
printf("enter two strings\n");
scanf("%s%s", s1, s2);
concat(s1, s2);
printf("result=%s \n", s1);
break;
}
} while (option <= 3);
return 0;
}
int length(char str[100])
{
int i = 0;
while (str[i] != '\0')
i++;
return (i);
}
int compare(char s1[100], char s2[100])
{
int i = 0;
while (s1[i] != '\0')
{
if (s1[i] > s2[i])
return (1);
else if (s1[i] < s2[i])
return (-1);
i++;
}
return 0;
}
void concat(char s1[100], char s2[100])
{
int i, j;
i = 0;
while (s1[i] != '\0')
i++;
for (j = 0; s2[j] != '\0'; i++, j++)
s1[i] = s2[j];
s1[i] = '\0';
}
Output:
1.String length
2.string comparision
3.string concatenation
4.quit
enter your choice
1
enter string
Chetan
the length of string= 6
1.String length
2.string comparision
3.string concatenation
4.quit
enter your choice
I hope this article “C Programming Lab Exam Questions With Solutions For Engineers” may help you all a lot. Thank you for reading.
Also, read:
- 100+ C Programming Projects With Source Code, Coding Projects Ideas
- 1000+ Interview Questions On Java, Java Interview Questions, Freshers
- App Developers, Skills, Job Profiles, Scope, Companies, Salary
- Applications Of Artificial Intelligence (AI) In Renewable Energy
- Applications Of Artificial Intelligence, AI Applications, What Is AI
- Applications Of Data Structures And Algorithms In The Real World
- Array Operations In Data Structure And Algorithms Using C Programming
- Artificial Intelligence Scope, Companies, Salary, Roles, Jobs