[go: up one dir, main page]

0% found this document useful (0 votes)
14 views47 pages

Complete C Programs

The document contains a series of C programs organized into practical exercises, covering various topics such as basic operations, conditional statements, loops, patterns, and array/string manipulations. Each practical section includes a menu-driven interface allowing users to select different programs to execute, such as arithmetic operations, factorial calculations, and pattern printing. The document serves as a comprehensive guide for learning and practicing fundamental programming concepts in C.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views47 pages

Complete C Programs

The document contains a series of C programs organized into practical exercises, covering various topics such as basic operations, conditional statements, loops, patterns, and array/string manipulations. Each practical section includes a menu-driven interface allowing users to select different programs to execute, such as arithmetic operations, factorial calculations, and pattern printing. The document serves as a comprehensive guide for learning and practicing fundamental programming concepts in C.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 47

Complete C Programs for All Practical Exercises

// ==================== PRACTICAL 1 FUNCTIONS ====================

void practical1() {

int choice;

printf("\n--- Practical 1 - Basic Programs ---\n");

printf("1. Print name and address\n");

printf("2. Arithmetic operations\n");

printf("3. Area and circumference of circle\n");

printf("4. Swap two numbers\n");

printf("5. Fahrenheit to Celsius conversion\n");

printf("6. Pay slip calculation\n");

printf("0. Back to main menu\n");

printf("Enter your choice: ");

scanf("%d", &choice);

switch(choice) {

case 0: return;

case 1: {

// Program to print name and address

printf("Name: John Doe\n");

printf("Address: 123 Main Street, City, State, 12345\n");

break;

case 2: {

// Program for arithmetic operations

float num1, num2;


printf("Enter two numbers: ");

scanf("%f %f", &num1, &num2);

printf("Addition: %.2f\n", num1 + num2);

printf("Subtraction: %.2f\n", num1 - num2);

printf("Multiplication: %.2f\n", num1 * num2);

if(num2 != 0) {

printf("Division: %.2f\n", num1 / num2);

printf("Modulo: %d\n", (int)num1 % (int)num2);

} else {

printf("Division by zero is not allowed.\n");

break;

case 3: {

// Program for area and circumference of circle

float radius;

printf("Enter the radius of the circle: ");

scanf("%f", &radius);

printf("Area: %.2f\n", 3.14159 * radius * radius);

printf("Circumference: %.2f\n", 2 * 3.14159 * radius);

break;

case 4: {

// Program to swap two numbers

int a, b;
printf("Enter two numbers: ");

scanf("%d %d", &a, &b);

printf("Before swap: a = %d, b = %d\n", a, b);

// With extra variable

int temp = a;

a = b;

b = temp;

printf("After swap with extra variable: a = %d, b = %d\n", a, b);

// Without extra variable

a = a + b;

b = a - b;

a = a - b;

printf("After swap without extra variable: a = %d, b = %d\n", a, b);

break;

case 5: {

// Program to convert Celsius to Fahrenheit

float celsius;

printf("Enter temperature in Celsius: ");

scanf("%f", &celsius);

float fahrenheit = 1.8 * celsius + 32;

printf("Temperature in Fahrenheit: %.2f\n", fahrenheit);

break;

case 6: {
// Program for pay slip calculation

float basic;

printf("Enter basic salary: ");

scanf("%f", &basic);

float da = 0.10 * basic;

float hra = 0.075 * basic;

float ma = 300;

float pf = 0.125 * basic;

float gross = basic + da + hra + ma;

float net = gross - pf;

printf("\nPay Slip:\n");

printf("Basic: %.2f\n", basic);

printf("DA: %.2f\n", da);

printf("HRA: %.2f\n", hra);

printf("MA: %.2f\n", ma);

printf("PF: %.2f\n", pf);

printf("Gross: %.2f\n", gross);

printf("Net: %.2f\n", net);

break;

default:

printf("Invalid choice!\n");

// ==================== PRACTICAL 2 FUNCTIONS ====================


void practical2() {

int choice;

printf("\n--- Practical 2 - Conditional Programs ---\n");

printf("1. Check even or odd\n");

printf("2. Find maximum of three numbers\n");

printf("3. Check character type\n");

printf("4. Menu-based calculator\n");

printf("5. Grade calculation\n");

printf("0. Back to main menu\n");

printf("Enter your choice: ");

scanf("%d", &choice);

switch(choice) {

case 0: return;

case 1: {

// Check even or odd

int num;

printf("Enter a number: ");

scanf("%d", &num);

if(num % 2 == 0)

printf("%d is even.\n", num);

else

printf("%d is odd.\n", num);

break;

case 2: {
// Find maximum of three numbers

int a, b, c;

printf("Enter three numbers: ");

scanf("%d %d %d", &a, &b, &c);

if(a >= b && a >= c)

printf("%d is the maximum.\n", a);

else if(b >= a && b >= c)

printf("%d is the maximum.\n", b);

else

printf("%d is the maximum.\n", c);

break;

case 3: {

// Check character type

char ch;

printf("Enter a character: ");

scanf(" %c", &ch);

if(ch >= 'A' && ch <= 'Z')

printf("%c is a capital letter.\n", ch);

else if(ch >= 'a' && ch <= 'z')

printf("%c is a small letter.\n", ch);

else if(ch >= '0' && ch <= '9')

printf("%c is a digit.\n", ch);

else

printf("%c is a special character.\n", ch);


break;

case 4: {

// Menu-based calculator

int op;

float num1, num2;

printf("Menu:\n");

printf("1. Addition\n");

printf("2. Subtraction\n");

printf("3. Multiplication\n");

printf("4. Division\n");

printf("Enter your choice: ");

scanf("%d", &op);

printf("Enter two numbers: ");

scanf("%f %f", &num1, &num2);

switch(op) {

case 1: printf("Result: %.2f\n", num1 + num2); break;

case 2: printf("Result: %.2f\n", num1 - num2); break;

case 3: printf("Result: %.2f\n", num1 * num2); break;

case 4:

if(num2 != 0)

printf("Result: %.2f\n", num1 / num2);

else

printf("Division by zero is not allowed.\n");

break;
default: printf("Invalid choice!\n");

break;

case 5: {

// Grade calculation

int marks;

printf("Enter marks: ");

scanf("%d", &marks);

// Using if-else ladder

printf("Using if-else ladder: ");

if(marks >= 80 && marks <= 100)

printf("Distinction\n");

else if(marks >= 60 && marks <= 79)

printf("First Class\n");

else if(marks >= 40 && marks <= 59)

printf("Second Class\n");

else if(marks < 40)

printf("Fail\n");

else

printf("Invalid marks\n");

// Using switch case

printf("Using switch case: ");

switch(marks/10) {

case 10:
case 9:

case 8: printf("Distinction\n"); break;

case 7:

case 6: printf("First Class\n"); break;

case 5:

case 4: printf("Second Class\n"); break;

case 3:

case 2:

case 1:

case 0: printf("Fail\n"); break;

default: printf("Invalid marks\n");

break;

default:

printf("Invalid choice!\n");

// ==================== PRACTICAL 3 FUNCTIONS ====================

void practical3() {

int choice;

printf("\n--- Practical 3 - Loop Programs ---\n");

printf("1. Check first and last digit\n");

printf("2. Factorial of a number\n");

printf("3. Reverse a number\n");


printf("4. Fibonacci series\n");

printf("5. Check prime number\n");

printf("6. Sum of squares series\n");

printf("7. Sum of reciprocal factorials\n");

printf("0. Back to main menu\n");

printf("Enter your choice: ");

scanf("%d", &choice);

switch(choice) {

case 0: return;

case 1: {

// Check first and last digit

int num, first, last;

printf("Enter a number: ");

scanf("%d", &num);

last = num % 10;

while(num >= 10) {

num /= 10;

first = num;

printf("First digit: %d is %s\n", first, (first % 2 == 0) ? "even" : "odd");

printf("Last digit: %d is %s\n", last, (last % 2 == 0) ? "even" : "odd");

break;

case 2: {

// Factorial of a number
int n;

printf("Enter a number: ");

scanf("%d", &n);

long fact = 1;

for(int i = 1; i <= n; i++) {

fact *= i;

printf("Factorial of %d is %ld\n", n, fact);

break;

case 3: {

// Reverse a number

int num, reversed = 0;

printf("Enter a number: ");

scanf("%d", &num);

int original = num;

while(num != 0) {

int digit = num % 10;

reversed = reversed * 10 + digit;

num /= 10;

printf("Reverse of %d is %d\n", original, reversed);

break;

case 4: {
// Fibonacci series

int n, t1 = 0, t2 = 1, nextTerm;

printf("Enter the number of terms: ");

scanf("%d", &n);

printf("Fibonacci Series: ");

for(int i = 1; i <= n; i++) {

printf("%d ", t1);

nextTerm = t1 + t2;

t1 = t2;

t2 = nextTerm;

printf("\n");

break;

case 5: {

// Check prime number

int n;

printf("Enter a number: ");

scanf("%d", &n);

if(check_prime(n))

printf("%d is a prime number.\n", n);

else

printf("%d is not a prime number.\n", n);

break;

}
case 6: {

// Sum of squares series

int n;

long sum = 0;

printf("Enter the value of n: ");

scanf("%d", &n);

for(int i = 1; i <= n; i++) {

sum += i * i;

printf("Sum of squares series: %ld\n", sum);

break;

case 7: {

// Sum of reciprocal factorials

int n;

double sum = 0.0;

printf("Enter the value of n: ");

scanf("%d", &n);

for(int i = 1; i <= n; i++) {

sum += 1.0 / factorial(i);

printf("Sum of reciprocal factorials: %.6f\n", sum);

break;

default:
printf("Invalid choice!\n");

// ==================== PRACTICAL 4 FUNCTIONS ====================

void practical4() {

int choice;

printf("\n--- Practical 4 - Pattern Programs ---\n");

printf("1. Pattern 1\n");

printf("2. Pattern 2\n");

printf("3. Pattern 3\n");

printf("4. Pattern 4\n");

printf("5. Pattern 5\n");

printf("6. Pattern 6\n");

printf("7. Pattern 7\n");

printf("8. Pattern 8\n");

printf("9. Pattern 9\n");

printf("10. Pattern 10\n");

printf("11. Pattern 11\n");

printf("12. Pattern 12\n");

printf("0. Back to main menu\n");

printf("Enter your choice: ");

scanf("%d", &choice);

int rows, i, j;

switch(choice) {

case 0: return;
case 1: {

// Pattern 1

printf("Enter number of rows: ");

scanf("%d", &rows);

for(i = 1; i <= rows; i++) {

for(j = 1; j <= i; j++) {

printf("*");

printf("\n");

break;

case 2: {

// Pattern 2

printf("Enter number of rows: ");

scanf("%d", &rows);

for(i = 1; i <= rows; i++) {

for(j = 1; j <= i; j++) {

printf("%d", j);

printf("\n");

break;

case 3: {
// Pattern 3

printf("Enter number of rows: ");

scanf("%d", &rows);

for(i = 1; i <= rows; i++) {

for(j = 1; j <= i; j++) {

printf("%d", i);

printf("\n");

break;

case 4: {

// Pattern 4

printf("Enter number of rows: ");

scanf("%d", &rows);

for(i = 1; i <= rows; i++) {

for(j = 1; j <= i; j++) {

printf("%c", 'A' + j - 1);

printf("\n");

break;

case 5: {

// Pattern 5
printf("Enter number of rows: ");

scanf("%d", &rows);

int num = 1;

for(i = 1; i <= rows; i++) {

for(j = 1; j <= i; j++) {

printf("%d ", num++);

printf("\n");

break;

case 6: {

// Pattern 6 (same as Pattern 1)

printf("Enter number of rows: ");

scanf("%d", &rows);

for(i = 1; i <= rows; i++) {

for(j = 1; j <= i; j++) {

printf("*");

printf("\n");

break;

case 7: {

// Pattern 7 (same as Pattern 3)


printf("Enter number of rows: ");

scanf("%d", &rows);

for(i = 1; i <= rows; i++) {

for(j = 1; j <= i; j++) {

printf("%d", i);

printf("\n");

break;

case 8: {

// Pattern 8

printf("Enter number of rows: ");

scanf("%d", &rows);

for(i = rows; i >= 1; i--) {

for(j = 1; j <= i; j++) {

printf("*");

printf("\n");

break;

case 9: {

// Pattern 9

printf("Enter number of rows: ");


scanf("%d", &rows);

for(i = rows; i >= 1; i--) {

for(j = 1; j <= i; j++) {

printf("%d", j);

printf("\n");

break;

case 10: {

// Pattern 10

printf("Enter number of rows: ");

scanf("%d", &rows);

for(i = rows; i >= 1; i--) {

for(j = 1; j <= i; j++) {

printf("%d", i);

printf("\n");

break;

case 11: {

// Pattern 11

printf("Enter number of rows: ");

scanf("%d", &rows);
for(i = 0; i < rows; i++) {

for(j = 0; j < rows - i; j++) {

printf("%c", 'A' + i);

printf("\n");

break;

case 12: {

// Pattern 12

printf("Enter number of rows: ");

scanf("%d", &rows);

for(i = rows; i >= 1; i--) {

for(j = 1; j <= i; j++) {

printf("%c", 'A' + j - 1);

printf("\n");

break;

default:

printf("Invalid choice!\n");

// ==================== PRACTICAL 5 FUNCTIONS ====================


void practical5() {

int choice;

printf("\n--- Practical 5 - Array & String Programs ---\n");

printf("1. Find max and min from array\n");

printf("2. Sort array in ascending order\n");

printf("3. Count people by height and weight\n");

printf("4. Student marks average and total\n");

printf("5. Matrix addition\n");

printf("6. Find character in string\n");

printf("7. Copy string without function\n");

printf("8. String handling functions\n");

printf("0. Back to main menu\n");

printf("Enter your choice: ");

scanf("%d", &choice);

switch(choice) {

case 0: return;

case 1: {

// Find max and min from array

int arr[10], i, max, min;

printf("Enter 10 numbers:\n");

for(i = 0; i < 10; i++) {

scanf("%d", &arr[i]);

max = min = arr[0];

for(i = 1; i < 10; i++) {


if(arr[i] > max)

max = arr[i];

if(arr[i] < min)

min = arr[i];

printf("Maximum: %d\n", max);

printf("Minimum: %d\n", min);

break;

case 2: {

// Sort array in ascending order

int arr[10], i, j, temp;

printf("Enter 10 numbers:\n");

for(i = 0; i < 10; i++) {

scanf("%d", &arr[i]);

for(i = 0; i < 9; i++) {

for(j = 0; j < 9 - i; j++) {

if(arr[j] > arr[j+1]) {

temp = arr[j];

arr[j] = arr[j+1];

arr[j+1] = temp;

}
printf("Sorted array: ");

for(i = 0; i < 10; i++) {

printf("%d ", arr[i]);

printf("\n");

break;

case 3: {

// Count people by height and weight

struct Person {

float height;

float weight;

} people[5];

int count = 0;

printf("Enter height and weight for 5 people:\n");

for(int i = 0; i < 5; i++) {

printf("Person %d: ", i+1);

scanf("%f %f", &people[i].height, &people[i].weight);

if(people[i].height > 170 && people[i].weight < 50)

count++;

printf("Number of people with height > 170 and weight < 50: %d\n", count);

break;

case 4: {
// Student marks average and total

int marks[5][3], i, j;

float total, average;

printf("Enter marks for 5 students in 3 subjects:\n");

for(i = 0; i < 5; i++) {

printf("Student %d: ", i+1);

for(j = 0; j < 3; j++) {

scanf("%d", &marks[i][j]);

printf("\nStudent\tTotal\tAverage\n");

for(i = 0; i < 5; i++) {

total = 0;

for(j = 0; j < 3; j++) {

total += marks[i][j];

average = total / 3;

printf("%d\t%.2f\t%.2f\n", i+1, total, average);

break;

case 5: {

// Matrix addition

int A[3][3], B[3][3], C[3][3], i, j;

printf("Enter elements of matrix A (3x3):\n");


for(i = 0; i < 3; i++) {

for(j = 0; j < 3; j++) {

scanf("%d", &A[i][j]);

printf("Enter elements of matrix B (3x3):\n");

for(i = 0; i < 3; i++) {

for(j = 0; j < 3; j++) {

scanf("%d", &B[i][j]);

for(i = 0; i < 3; i++) {

for(j = 0; j < 3; j++) {

C[i][j] = A[i][j] + B[i][j];

printf("Resultant matrix C:\n");

for(i = 0; i < 3; i++) {

for(j = 0; j < 3; j++) {

printf("%d ", C[i][j]);

printf("\n");

break;

}
case 6: {

// Find character in string

char str[100], ch;

int found = 0;

printf("Enter a string: ");

scanf(" %[^\n]s", str);

printf("Enter a character to search: ");

scanf(" %c", &ch);

for(int i = 0; str[i] != '\0'; i++) {

if(str[i] == ch) {

printf("Character '%c' found at position %d\n", ch, i+1);

found = 1;

break;

if(!found)

printf("Character '%c' not found in the string\n", ch);

break;

case 7: {

// Copy string without function

char src[100], dest[100];

int i;

printf("Enter a string: ");

scanf(" %[^\n]s", src);


for(i = 0; src[i] != '\0'; i++) {

dest[i] = src[i];

dest[i] = '\0';

printf("Original string: %s\n", src);

printf("Copied string: %s\n", dest);

break;

case 8: {

// String handling functions

char str1[100], str2[100];

printf("Enter first string: ");

scanf(" %[^\n]s", str1);

printf("Enter second string: ");

scanf(" %[^\n]s", str2);

// strlen

printf("Length of first string: %lu\n", strlen(str1));

// strcpy

char copy[100];

strcpy(copy, str1);

printf("Copy of first string: %s\n", copy);

// strcat

strcat(str1, " ");

strcat(str1, str2);

printf("Concatenated string: %s\n", str1);


// strcmp

int result = strcmp(copy, str2);

if(result == 0)

printf("Strings are equal\n");

else if(result < 0)

printf("First string is less than second string\n");

else

printf("First string is greater than second string\n");

break;

default:

printf("Invalid choice!\n");

// ==================== PRACTICAL 6 FUNCTIONS ====================

void practical6() {

int choice;

printf("\n--- Practical 6 - Function Programs ---\n");

printf("1. Add first n numbers\n");

printf("2. Check prime number\n");

printf("3. Swap values\n");

printf("4. Calculate nCr\n");

printf("5. Factorial using recursion\n");

printf("6. Convert to uppercase\n");

printf("7. Menu-based calculator using functions\n");


printf("0. Back to main menu\n");

printf("Enter your choice: ");

scanf("%d", &choice);

switch(choice) {

case 0: return;

case 1: {

// Add first n numbers

int n;

printf("Enter n: ");

scanf("%d", &n);

int sum = 0;

for(int i = 1; i <= n; i++) {

sum += i;

printf("Sum of first %d numbers: %d\n", n, sum);

break;

case 2: {

// Check prime number

int n;

printf("Enter a number: ");

scanf("%d", &n);

if(check_prime(n))

printf("%d is a prime number.\n", n);

else
printf("%d is not a prime number.\n", n);

break;

case 3: {

// Swap values

int a, b;

printf("Enter two numbers: ");

scanf("%d %d", &a, &b);

printf("Before swap: a = %d, b = %d\n", a, b);

// Call by value

swap_call_by_value(a, b);

printf("After call by value: a = %d, b = %d\n", a, b);

// Call by reference

swap_call_by_reference(&a, &b);

printf("After call by reference: a = %d, b = %d\n", a, b);

break;

case 4: {

// Calculate nCr

int n, r;

printf("Enter n and r: ");

scanf("%d %d", &n, &r);

if(n >= r && n >= 0 && r >= 0)

printf("%dC%d = %ld\n", n, r, nCr(n, r));

else
printf("Invalid input for nCr calculation.\n");

break;

case 5: {

// Factorial using recursion

int n;

printf("Enter a number: ");

scanf("%d", &n);

printf("Factorial of %d is %ld\n", n, factorial_recursive(n));

break;

case 6: {

// Convert to uppercase

char str[100];

printf("Enter a string: ");

scanf(" %[^\n]s", str);

to_uppercase(str);

printf("Uppercase string: %s\n", str);

break;

case 7: {

// Menu-based calculator using functions

int op;

float num1, num2, result;

printf("Menu:\n");
printf("1. Addition\n");

printf("2. Subtraction\n");

printf("3. Multiplication\n");

printf("4. Division\n");

printf("Enter your choice: ");

scanf("%d", &op);

printf("Enter two numbers: ");

scanf("%f %f", &num1, &num2);

switch(op) {

case 1: result = num1 + num2; break;

case 2: result = num1 - num2; break;

case 3: result = num1 * num2; break;

case 4:

if(num2 != 0)

result = num1 / num2;

else {

printf("Division by zero is not allowed.\n");

return;

break;

default:

printf("Invalid choice!\n");

return;

printf("Result: %.2f\n", result);


break;

default:

printf("Invalid choice!\n");

// ==================== PRACTICAL 7 FUNCTIONS ====================

void practical7() {

int choice;

printf("\n--- Practical 7 - Structure Programs ---\n");

printf("1. Personal information\n");

printf("2. Student records\n");

printf("3. Student marks and total\n");

printf("0. Back to main menu\n");

printf("Enter your choice: ");

scanf("%d", &choice);

switch(choice) {

case 0: return;

case 1: {

// Personal information

struct personal {

char name[50];

char doj[20];

float salary;

} people[5];
printf("Enter information for 5 people:\n");

for(int i = 0; i < 5; i++) {

printf("Person %d:\n", i+1);

printf("Name: ");

scanf(" %[^\n]s", people[i].name);

printf("Date of Joining: ");

scanf(" %[^\n]s", people[i].doj);

printf("Salary: ");

scanf("%f", &people[i].salary);

printf("\nPersonal Information:\n");

for(int i = 0; i < 5; i++) {

printf("Person %d: %s, %s, %.2f\n", i+1, people[i].name, people[i].doj, people[i].salary);

break;

case 2: {

// Student records

struct student {

char name[50];

char branch[50];

float total_marks;

} students[10];

printf("Enter information for 10 students:\n");

for(int i = 0; i < 10; i++) {


printf("Student %d:\n", i+1);

printf("Name: ");

scanf(" %[^\n]s", students[i].name);

printf("Branch: ");

scanf(" %[^\n]s", students[i].branch);

printf("Total Marks: ");

scanf("%f", &students[i].total_marks);

printf("\nStudent Records:\n");

for(int i = 0; i < 10; i++) {

printf("Student %d: %s, %s, %.2f\n", i+1, students[i].name, students[i].branch, students[i].total_marks);

break;

case 3: {

// Student marks and total

struct marks {

int rollno;

int subject1;

int subject2;

int subject3;

int total;

} students[3];

printf("Enter marks for 3 students:\n");

for(int i = 0; i < 3; i++) {


printf("Student %d:\n", i+1);

students[i].rollno = i+1;

printf("Subject 1: ");

scanf("%d", &students[i].subject1);

printf("Subject 2: ");

scanf("%d", &students[i].subject2);

printf("Subject 3: ");

scanf("%d", &students[i].subject3);

students[i].total = students[i].subject1 + students[i].subject2 + students[i].subject3;

printf("\nStudent Marks:\n");

printf("Roll No\tSubject1\tSubject2\tSubject3\tTotal\n");

for(int i = 0; i < 3; i++) {

printf("%d\t%d\t\t%d\t\t%d\t\t%d\n",

students[i].rollno,

students[i].subject1,

students[i].subject2,

students[i].subject3,

students[i].total);

break;

default:

printf("Invalid choice!\n");

}
}

// ==================== PRACTICAL 8 FUNCTIONS ====================

void practical8() {

int choice;

printf("\n--- Practical 8 - Pointer & File Programs ---\n");

printf("1. Swap using pointers\n");

printf("2. Copy file\n");

printf("3. Sorting using pointer\n");

printf("4. Separate odd and even numbers in file\n");

printf("0. Back to main menu\n");

printf("Enter your choice: ");

scanf("%d", &choice);

switch(choice) {

case 0: return;

case 1: {

// Swap using pointers

int a, b;

printf("Enter two numbers: ");

scanf("%d %d", &a, &b);

printf("Before swap: a = %d, b = %d\n", a, b);

int *p1 = &a, *p2 = &b, temp;

temp = *p1;

*p1 = *p2;

*p2 = temp;

printf("After swap: a = %d, b = %d\n", a, b);


break;

case 2: {

// Copy file

FILE *source, *target;

char sourceFile[100], targetFile[100], ch;

printf("Enter source file name: ");

scanf("%s", sourceFile);

printf("Enter target file name: ");

scanf("%s", targetFile);

source = fopen(sourceFile, "r");

if(source == NULL) {

printf("Cannot open source file.\n");

return;

target = fopen(targetFile, "w");

if(target == NULL) {

printf("Cannot open target file.\n");

fclose(source);

return;

while((ch = fgetc(source)) != EOF) {

fputc(ch, target);

printf("File copied successfully.\n");


fclose(source);

fclose(target);

break;

case 3: {

// Sorting using pointer

int arr[10], n, i, j, temp;

int *ptr = arr;

printf("Enter number of elements (max 10): ");

scanf("%d", &n);

printf("Enter %d numbers:\n", n);

for(i = 0; i < n; i++) {

scanf("%d", ptr + i);

// Bubble sort using pointers

for(i = 0; i < n-1; i++) {

for(j = 0; j < n-i-1; j++) {

if(*(ptr + j) > *(ptr + j + 1)) {

temp = *(ptr + j);

*(ptr + j) = *(ptr + j + 1);

*(ptr + j + 1) = temp;

printf("Sorted array: ");


for(i = 0; i < n; i++) {

printf("%d ", *(ptr + i));

printf("\n");

break;

case 4: {

// Separate odd and even numbers in file

FILE *source, *oddFile, *evenFile;

int num;

// Create a sample data file

source = fopen("data.txt", "w");

if(source == NULL) {

printf("Cannot create data file.\n");

return;

printf("Enter numbers to store in data file (-1 to stop):\n");

while(1) {

scanf("%d", &num);

if(num == -1) break;

fprintf(source, "%d ", num);

fclose(source);

// Read from data file and separate odd and even

source = fopen("data.txt", "r");


oddFile = fopen("odd.txt", "w");

evenFile = fopen("even.txt", "w");

if(source == NULL || oddFile == NULL || evenFile == NULL) {

printf("Cannot open files.\n");

return;

while(fscanf(source, "%d", &num) != EOF) {

if(num % 2 == 0)

fprintf(evenFile, "%d ", num);

else

fprintf(oddFile, "%d ", num);

fclose(source);

fclose(oddFile);

fclose(evenFile);

// Display contents of all files

printf("\nContents of data file: ");

source = fopen("data.txt", "r");

while(fscanf(source, "%d", &num) != EOF) {

printf("%d ", num);

fclose(source);

printf("\nContents of odd file: ");

oddFile = fopen("odd.txt", "r");

while(fscanf(oddFile, "%d", &num) != EOF) {


printf("%d ", num);

fclose(oddFile);

printf("\nContents of even file: ");

evenFile = fopen("even.txt", "r");

while(fscanf(evenFile, "%d", &num) != EOF) {

printf("%d ", num);

fclose(evenFile);

printf("\n");

break;

default:

printf("Invalid choice!\n");

// ==================== PRACTICAL 9 FUNCTIONS ====================

void practical9() {

int choice;

printf("\n--- Practical 9 - Debugging & Testing ---\n");

printf("1. Find error in program\n");

printf("2. Rewrite code efficiently\n");

printf("3. Test case for hall management\n");

printf("0. Back to main menu\n");

printf("Enter your choice: ");


scanf("%d", &choice);

switch(choice) {

case 0: return;

case 1: {

// Find error in program

printf("Original code with errors:\n");

printf("void main() {\n");

printf(" int i;\n");

printf(" system(\"cls\")\n");

printf(" for(i=1;i>=10;i++) {\n");

printf(" printf(\"/n value of i is:%d\",&i);\n");

printf(" }\n");

printf("}\n\n");

printf("Errors found:\n");

printf("1. Missing semicolon after system(\"cls\")\n");

printf("2. Loop condition is incorrect (i>=10 will be false initially)\n");

printf("3. Incorrect format specifier in printf (should be %%d without &)\n");

printf("4. Use of \\n instead of /n for newline\n\n");

printf("Corrected code:\n");

printf("#include <stdio.h>\n");

printf("#include <stdlib.h>\n");

printf("int main() {\n");

printf(" int i;\n");

printf(" system(\"cls\");\n");

printf(" for(i=1;i<=10;i++) {\n");


printf(" printf(\"\\n value of i is: %d\", i);\n");

printf(" }\n");

printf(" return 0;\n");

printf("}\n");

break;

case 2: {

// Rewrite code efficiently

printf("Original code:\n");

printf("void main() {\n");

printf(" int a=5,b=2;\n");

printf(" a=a+b;\n");

printf(" b=b+1;\n");

printf(" printf(\"a=%d and b=%d\",a,b);\n");

printf("}\n\n");

printf("More efficient version:\n");

printf("#include <stdio.h>\n");

printf("int main() {\n");

printf(" int a=5, b=2;\n");

printf(" a += b; // Compound assignment\n");

printf(" b++; // Increment operator\n");

printf(" printf(\"a=%d and b=%d\", a, b);\n");

printf(" return 0;\n");

printf("}\n");

break;
}

case 3: {

// Test case for hall management

printf("Test cases for listofhall() and allocatehall() functions:\n\n");

printf("Test Case 1: listofhall()\n");

printf("Input: None\n");

printf("Expected Output: List of all available halls with their capacities and facilities\n\n");

printf("Test Case 2: allocatehall() with valid request\n");

printf("Input: Hall number, date, time slot, purpose\n");

printf("Expected Output: Hall allocated successfully, confirmation message\n\n");

printf("Test Case 3: allocatehall() with already booked hall\n");

printf("Input: Hall number that is already booked for the requested time\n");

printf("Expected Output: Error message, suggestion of alternative halls\n\n");

printf("Test Case 4: allocatehall() with invalid hall number\n");

printf("Input: Non-existent hall number\n");

printf("Expected Output: Error message, list of valid hall numbers\n\n");

printf("Test Case 5: allocatehall() with invalid time slot\n");

printf("Input: Time slot outside working hours\n");

printf("Expected Output: Error message, information about valid time slots\n");

break;

default:

printf("Invalid choice!\n");

}
// ==================== HELPER FUNCTIONS ====================

int check_prime(int n) {

if(n <= 1) return 0;

if(n <= 3) return 1;

if(n % 2 == 0 || n % 3 == 0) return 0;

for(int i = 5; i * i <= n; i += 6) {

if(n % i == 0 || n % (i + 2) == 0)

return 0;

return 1;

long factorial(int n) {

long fact = 1;

for(int i = 1; i <= n; i++) {

fact *= i;

return fact;

long nCr(int n, int r) {

return factorial(n) / (factorial(r) * factorial(n - r));

long factorial_recursive(int n) {

if(n == 0 || n == 1)

return 1;

else
return n * factorial_recursive(n - 1);

void to_uppercase(char *str) {

for(int i = 0; str[i] != '\0'; i++) {

if(str[i] >= 'a' && str[i] <= 'z') {

str[i] = str[i] - 'a' + 'A';

void swap_call_by_value(int a, int b) {

int temp = a;

a = b;

b = temp;

// Changes are local to this function

void swap_call_by_reference(int *a, int *b) {

int temp = *a;

*a = *b;

*b = temp;

// Changes affect the original variables

```

You might also like