Practical C Programming Exercises with Solutions

Calculate Rectangle Area

Given a rectangle with length 4 and width 3, compute its area.

#include<stdio.h>

int main() {
    int length = 4, width = 3;
    int area = length * width;
    printf("Rectangle area: %d", area);
    return 0;
}

Convert Uppercase to Lowercase

Read a uppercase character and convert it to lowercase.

#include <stdio.h>

int main() {
    char uppercase_char;
    printf("Enter uppercase letter: ");
    scanf("%c", &uppercase_char);
    printf("Lowercase: %c", uppercase_char + 32);
    return 0;
}

Calculate Compound Interest

Compute total deposit value after n years with given principal and annual interest rate.

#include <stdio.h>

int main() {
    double principal, rate, total;
    int years;
    
    printf("Enter annual interest rate: ");
    scanf("%lf", &rate);
    printf("Enter deposit period (years): ");
    scanf("%d", &years);
    printf("Enter principal amount: ");
    scanf("%lf", &principal);
    
    total = principal * (1 + rate * years);
    printf("Total after %d years: %.2lf", years, total);
    return 0;
}

Leap Year Detection

Determine if a given year is a leap year.

#include <stdio.h>

int main() {
    int input_year;
    printf("Enter year: ");
    scanf("%d", &input_year);
    
    if((input_year % 4 == 0 && input_year % 100 != 0) || input_year % 400 == 0)
        printf("Leap year");
    else
        printf("Not a leap year");
    return 0;
}

Triangle Validity Check

Verify if three sides can form a valid triangle.

#include <stdio.h>

int main() {
    float side1, side2, side3;
    printf("Enter three sides: ");
    scanf("%f %f %f", &side1, &side2, &side3);
    
    if(side1 + side2 > side3 && side1 + side3 > side2 && side2 + side3 > side1)
        printf("VALID");
    else
        printf("INVALID");
    return 0;
}

Mlutiplication Table Generator

Print a 9x9 multiplication table.

#include <stdio.h>

int main() {
    for(int row = 1; row <= 9; row++) {
        for(int col = 1; col <= row; col++) {
            printf("%dx%d=%d\t", row, col, row * col);
        }
        printf("\n");
    }
    return 0;
}

Array Sorting with Bubble Sort

Sort a integer array using bubble sort algorithm.

#include <stdio.h>

int main() {
    int numbers[] = {10, 7, 4, 5, 8};
    int size = 5;
    
    for(int i = 0; i < size - 1; i++) {
        for(int j = 0; j < size - i - 1; j++) {
            if(numbers[j] > numbers[j + 1]) {
                int temp = numbers[j];
                numbers[j] = numbers[j + 1];
                numbers[j + 1] = temp;
            }
        }
    }
    
    for(int k = 0; k < size; k++)
        printf("%d ", numbers[k]);
    return 0;
}

Recursive Sum Calculation

Compute the sum of integers from 1 to n using recursion.

#include<stdio.h>

int recursive_sum(int n) {
    if(n == 1) return 1;
    return n + recursive_sum(n - 1);
}

int main() {
    int max_value;
    printf("Enter maximum value: ");
    scanf("%d", &max_value);
    printf("Sum from 1 to %d: %d", max_value, recursive_sum(max_value));
    return 0;
}

Student Grade Management System

Manage student grades with multiple functions.

#include<stdio.h>

void input_grades(int grades[3][2]) {
    for(int student = 0; student < 3; student++) {
        for(int subject = 0; subject < 2; subject++) {
            printf("Student %d, Subject %d: ", student + 1, subject + 1);
            scanf("%d", &grades[student][subject]);
        }
    }
}

void student_averages(int grades[3][2]) {
    for(int student = 0; student < 3; student++) {
        int total = 0;
        for(int subject = 0; subject < 2; subject++) {
            total += grades[student][subject];
        }
        printf("Student %d average: %.2f\n", student + 1, total / 2.0);
    }
}

void subject_averages(int grades[3][2]) {
    for(int subject = 0; subject < 2; subject++) {
        int total = 0;
        for(int student = 0; student < 3; student++) {
            total += grades[student][subject];
        }
        printf("Subject %d average: %.2f\n", subject + 1, total / 3.0);
    }
}

int main() {
    int grade_data[3][2];
    input_grades(grade_data);
    student_averages(grade_data);
    subject_averages(grade_data);
    return 0;
}

Pointer-Based Grade Analysis

Process student grades using pointer arithmetic.

#include<stdio.h>

int main() {
    int grade_list[5], total = 0;
    int *grade_ptr = grade_list;
    
    printf("Enter 5 grades: \n");
    for(int i = 0; i < 5; i++) {
        scanf("%d", grade_ptr + i);
        total += grade_list[i];
    }
    
    float average = total / 5.0;
    printf("Average: %.2f\nAbove average: ", average);
    
    for(grade_ptr = grade_list; grade_ptr < grade_list + 5; grade_ptr++) {
        if(*grade_ptr > average)
            printf("%d ", *grade_ptr);
    }
    return 0;
}

Tags: c-programming programming-exercises algorithm-practice code-examples beginner-programming

Posted on Sat, 29 Aug 2026 16:29:45 +0000 by rilana