C Programming • Pointers & File handling
C Programming / Use of Pointers — Exercises

Use of Pointers — Exercises

Practical 5 Pointers & File handling

Write a C program to modify the value of an integer variable using a pointer.

Practical / Solution

Use of Pointers — Exercise 1

Problem

Write a C program to modify the value of an integer variable using a pointer.

Program

#include <stdio.h> int main() { int number; int *ptr; printf("Enter a number: "); scanf("%d", &number); ptr = &number; printf("Original value = %d\n", number); *ptr = *ptr + 20; printf("Updated value = %d\n", number); return 0; }

Explanation

The pointer stores the address of number. Using *ptr, the program can directly modify the original variable.

Expected Output

Enter a number: 30

Original value = 30

Updated value = 50

Use of Pointers — Exercise 2

Problem

Write a C program to swap two numbers using pointers.

Program

#include <stdio.h> void swap(int *a, int *b) { int temp; temp = *a; *a = *b; *b = temp; } int main() { int a, b; printf("Enter two numbers: "); scanf("%d %d", &a, &b); printf("Before swap: a = %d, b = %d\n", a, b); swap(&a, &b); printf("After swap: a = %d, b = %d\n", a, b); return 0; }

Explanation

The addresses of the two variables are passed to swap(). The function changes the original values through the pointers.

Expected Output

Enter two numbers: 10 20

Before swap: a = 10, b = 20

After swap: a = 20, b = 10

Use of Pointers — Exercise 3

Problem

Write a C program to calculate the sum and difference of two numbers using pointers.

Program

#include <stdio.h> int main() { int a, b; int *p1, *p2; printf("Enter two numbers: "); scanf("%d %d", &a, &b); p1 = &a; p2 = &b; printf("Sum = %d\n", *p1 + *p2); printf("Difference = %d\n", *p1 - *p2); return 0; }

Explanation

The pointers provide access to the values stored in a and b. The dereferenced values are used in arithmetic expressions.

Expected Output

Enter two numbers: 25 10

Sum = 35

Difference = 15

Use of Pointers — Exercise 4

Problem

Write a C program to find the largest of three numbers using pointers.

Program

#include <stdio.h> int main() { int a, b, c; int *p1, *p2, *p3; int largest; printf("Enter three numbers: "); scanf("%d %d %d", &a, &b, &c); p1 = &a; p2 = &b; p3 = &c; largest = *p1; if (*p2 > largest) largest = *p2; if (*p3 > largest) largest = *p3; printf("Largest number = %d\n", largest); return 0; }

Explanation

Pointers are used to access the three input values. Their dereferenced values are compared to determine the largest number.

Expected Output

Enter three numbers: 45 92 67

Largest number = 92

Use of Pointers — Exercise 5

Problem

Write a C program to calculate the square of a number using a pointer.

Program

#include <stdio.h> int main() { int number; int *ptr; printf("Enter a number: "); scanf("%d", &number); ptr = &number; printf("Square = %d\n", (*ptr) * (*ptr)); return 0; }

Explanation

The pointer is used to access the input value. The dereferenced value is multiplied by itself to calculate the square.

Expected Output

Enter a number: 12

Square = 144

Use of Pointers — Exercise 6

Problem

Write a C program to find the sum of all elements of an integer array using a pointer.

Program

#include <stdio.h> int main() { int arr[5]; int *ptr; int i; int sum = 0; printf("Enter 5 numbers:\n"); for (i = 0; i < 5; i++) { scanf("%d", &arr[i]); } ptr = arr; for (i = 0; i < 5; i++) { sum += *(ptr + i); } printf("Sum = %d\n", sum); return 0; }

Explanation

The array name gives the address of its first element. Pointer arithmetic is then used to access each array element through *(ptr + i).

Expected Output

Enter 5 numbers:

10 20 30 40 50

Sum = 150

Use of Pointers — Exercise 7

Problem

Write a C program to find the largest element in an array using a pointer.

Program

#include <stdio.h> int main() { int arr[5]; int *ptr; int i; int largest; printf("Enter 5 numbers:\n"); for (i = 0; i < 5; i++) { scanf("%d", &arr[i]); } ptr = arr; largest = *ptr; for (i = 1; i < 5; i++) { if (*(ptr + i) > largest) { largest = *(ptr + i); } } printf("Largest element = %d\n", largest); return 0; }

Explanation

Pointer arithmetic allows the program to access each array element. The largest value is tracked while traversing the array.

Expected Output

Enter 5 numbers:

12 45 8 72 31

Largest element = 72

Use of Pointers — Exercise 8

Problem

Write a C program to count the even and odd elements in an array using a pointer.

Program

#include <stdio.h> int main() { int arr[6]; int *ptr; int i; int even = 0; int odd = 0; printf("Enter 6 numbers:\n"); for (i = 0; i < 6; i++) { scanf("%d", &arr[i]); } ptr = arr; for (i = 0; i < 6; i++) { if (*(ptr + i) % 2 == 0) even++; else odd++; } printf("Even numbers = %d\n", even); printf("Odd numbers = %d\n", odd); return 0; }

Explanation

Each array element is accessed through pointer arithmetic. The modulo operator determines whether the value is even or odd.

Expected Output

Enter 6 numbers:

10 15 20 25 30 35

Even numbers = 3

Odd numbers = 3

Use of Pointers — Exercise 9

Problem

Write a C program to reverse an array using two pointers.

Program

#include <stdio.h> int main() { int arr[5]; int *left; int *right; int temp; int i; printf("Enter 5 numbers:\n"); for (i = 0; i < 5; i++) { scanf("%d", &arr[i]); } left = arr; right = arr + 4; while (left < right) { temp = *left; *left = *right; *right = temp; left++; right--; } printf("Reversed array:\n"); for (i = 0; i < 5; i++) { printf("%d ", arr[i]); } printf("\n"); return 0; }

Explanation

One pointer starts at the first element and another at the last element. Their values are swapped while the pointers move toward each other.

Expected Output

Enter 5 numbers:

10 20 30 40 50

Reversed array:

50 40 30 20 10

Use of Pointers — Exercise 10

Problem

Write a C program to calculate the average of array elements using a pointer and a function.

Program

#include <stdio.h> float calculateAverage(int *ptr, int size) { int i; int sum = 0; for (i = 0; i < size; i++) { sum += *(ptr + i); } return (float)sum / size; } int main() { int arr[5]; int i; float average; printf("Enter 5 numbers:\n"); for (i = 0; i < 5; i++) { scanf("%d", &arr[i]); } average = calculateAverage(arr, 5); printf("Average = %.2f\n", average); return 0; }

Explanation

The array address is passed to the function through a pointer. The function uses pointer arithmetic to access every element and calculates the average.

Expected Output

Enter 5 numbers:

70 80 90 60 100

Average = 80.00