Unit 1
1. Hello World
#include <stdio.h>
int main(void) {
printf("HELLO WORLD\n");
return 0;
}
2. Sum and average of three numbers
#include <stdio.h>
int main(void) {
double a, b, c;
printf("Enter three numbers: ");
if (scanf("%lf %lf %lf", &a, &b, &c) != 3) return 1;
double sum = a + b + c;
double avg = sum / 3.0;
printf("Sum = %.2f\nAverage = %.2f\n", sum, avg);
return 0;
}
3. Even or odd
#include <stdio.h>
int main(void) {
int n;
printf("Enter integer: ");
if (scanf("%d", &n) != 1) return 1;
printf("%d is %s\n", n, (n % 2 == 0) ? "Even" : "Odd");
return 0;
}
4. Largest of three numbers
#include <stdio.h>
int main(void) {
double a, b, c;
printf("Enter three numbers: ");
if (scanf("%lf %lf %lf", &a, &b, &c) != 3) return 1;
double max = a;
if (b > max) max = b;
if (c > max) max = c;
printf("Largest = %.2f\n", max);
return 0;
}
5. Simple calculator (switch-case)
#include <stdio.h>
int main(void) {
double x, y;
char op;
printf("Enter expression (e.g. 2 + 3): ");
if (scanf("%lf %c %lf", &x, &op, &y) != 3) return 1;
switch(op) {
case '+': printf("%.2f\n", x + y); break;
case '-': printf("%.2f\n", x - y); break;
case '*': printf("%.2f\n", x * y); break;
case '/': if (y==0) printf("Division by zero\n"); else printf("%.2f\n", x / y); break;
default: printf("Unknown operator\n");
}
return 0;
}
6. Check leap year
#include <stdio.h>
#include <stdbool.h>
int main(void) {
int year;
printf("Enter year: ");
if (scanf("%d", &year) != 1) return 1;
bool leap = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
printf("%d is %s leap year\n", year, leap ? "" : "not a");
return 0;
}
7. Reverse a number
#include <stdio.h>
int main(void) {
int n;
printf("Enter integer: ");
if (scanf("%d", &n) != 1) return 1;
int num = n, rev = 0;
while (num != 0) {
rev = rev * 10 + (num % 10);
num /= 10;
}
printf("Reversed: %d\n", rev);
return 0;
}
8. Palindrome number
#include <stdio.h>
int main(void) {
int n;
printf("Enter integer: ");
if (scanf("%d", &n) != 1) return 1;
int orig = n, rev = 0;
while (n != 0) {
rev = rev * 10 + (n % 10);
n /= 10;
}
printf("%d is %s\n", orig, (orig == rev) ? "Palindrome" : "Not palindrome");
return 0;
}
9. Armstrong number check
#include <stdio.h>
#include <math.h>
int main(void) {
int n;
printf("Enter integer: ");
if (scanf("%d", &n) != 1) return 1;
int orig = n, sum = 0, digits = 0, t = n;
while (t != 0) { digits++; t /= 10; }
t = n;
while (t != 0) {
int d = t % 10;
sum += (int)pow(d, digits);
t /= 10;
}
printf("%d is %s an Armstrong number\n", orig, (sum == orig) ? "" : "not");
return 0;
}
10. Factorial (using loop)
#include <stdio.h>
int main(void) {
int n;
printf("Enter non-negative integer: ");
if (scanf("%d", &n) != 1 || n < 0) return 1;
unsigned long long fact = 1;
for (int i = 2; i <= n; i++) fact *= i;
printf("%d! = %llu\n", n, fact);
return 0;
}
11. Fibonacci first n terms
#include <stdio.h>
int main(void) {
int n;
printf("Enter n: ");
if (scanf("%d", &n) != 1 || n <= 0) return 1;
long long a = 0, b = 1;
for (int i = 1; i <= n; i++) {
printf("%lld%s", a, (i==n) ? "\n" : " ");
long long t = a + b;
a = b; b = t;
}
return 0;
}
12. Prime numbers between 1 and n
#include <stdio.h>
#include <math.h>
#include <stdbool.h>
int main(void) {
int n;
printf("Enter n (>1): ");
if (scanf("%d", &n) != 1 || n < 2) return 1;
for (int i = 2; i <= n; i++) {
bool isPrime = true;
int r = (int)sqrt(i);
for (int j = 2; j <= r; j++) if (i % j == 0) { isPrime = false; break;}
if (isPrime) printf("%d ", i);
}
printf("\n");
return 0;
}
13. Multiplication table generator
#include <stdio.h>
int main(void) {
int n;
printf("Enter number: ");
if (scanf("%d", &n) != 1) return 1;
for (int i = 1; i <= 10; i++) {
printf("%d x %d = %d\n", n, i, n * i);
}
return 0;
}
14. Sum of digits
#include <stdio.h>
int main(void) {
int n;
printf("Enter integer: ");
if (scanf("%d", &n) != 1) return 1;
int sum = 0, num = (n < 0) ? -n : n;
while (num) { sum += num % 10; num /= 10; }
printf("Sum of digits = %d\n", sum);
return 0;
}
15. Function: sum of two ints (returns int)
#include <stdio.h>
int sum_int(int a, int b) { return a + b; }
int main(void) {
int x, y;
printf("Enter two integers: ");
if (scanf("%d %d", &x, &y) != 2) return 1;
printf("Sum = %d\n", sum_int(x, y));
return 0;
}
16. Function: sum of int and float (returns float)
#include <stdio.h>
float sum_int_float(int a, float b) { return a + b; }
int main(void) {
int x; float y;
printf("Enter int and float: ");
if (scanf("%d %f", &x, &y) != 2) return 1;
printf("Sum = %.2f\n", sum_int_float(x, y));
return 0;
}
17. Function: sum of two floats (returns float)
#include <stdio.h>
float sum_float(float a, float b) { return a + b; }
int main(void) {
float x, y;
printf("Enter two floats: ");
if (scanf("%f %f", &x, &y) != 2) return 1;
printf("Sum = %.2f\n", sum_float(x, y));
return 0;
}
18. Function that takes a char and returns it
#include <stdio.h>
char echo_char(char c) { return c; }
int main(void) {
char ch;
printf("Enter a character: ");
// skip whitespace
if (scanf(" %c", &ch) != 1) return 1;
printf("You entered: %c\n", echo_char(ch));
return 0;
}
19. Function taking two ints, returns void (prints sum)
#include <stdio.h>
void print_sum(int a, int b) { printf("Sum = %d\n", a + b); }
int main(void) {
int x, y;
printf("Enter two integers: ");
if (scanf("%d %d", &x, &y) != 2) return 1;
print_sum(x, y);
return 0;
}
20. Integer to character using ASCII
#include <stdio.h>
int main(void) {
int val;
printf("Enter integer (ASCII code): ");
if (scanf("%d", &val) != 1) return 1;
if (val < 0 || val > 127) { printf("Out of ASCII range\n"); return 1; }
char ch = (char)val;
printf("Character: %c\n", ch);
return 0;
}
21. Character to integer using ASCII
#include <stdio.h>
int main(void) {
char ch;
printf("Enter a character: ");
if (scanf(" %c", &ch) != 1) return 1;
printf("ASCII value = %d\n", (int)ch);
return 0;
}
Unit 2
22. Print rising star pattern
#include <stdio.h>
int main(void) {
int n = 5;
for (int i = 1; i <= n; i++) {
for (int j = 0; j < i; j++) putchar('*');
putchar('\n');
}
return 0;
}
23. Print descending star pattern
#include <stdio.h>
int main(void) {
int n = 5;
for (int i = n; i >= 1; i--) {
for (int j = 0; j < i; j++) putchar('*');
putchar('\n');
}
return 0;
}
24. Floating series 0.0 to 10.0 step 0.2 (while)
#include <stdio.h>
int main(void) {
double x = 0.0;
while (x <= 10.000001) {
printf("%.1f\n", x);
x += 0.2;
}
return 0;
}
25. Month name with do-while (repeat until exit)
#include <stdio.h>
int main(void) {
int choice;
do {
int m;
printf("Enter month number (1-12): ");
if (scanf("%d", &m) != 1) return 1;
const char *months[] = {"","January","February","March","April","May","June",
"July","August","September","October","November","December"};
if (m >= 1 && m <= 12) printf("%s\n", months[m]); else printf("Invalid\n");
printf("Enter 1 to continue, 0 to exit: ");
if (scanf("%d", &choice) != 1) return 1;
} while (choice == 1);
return 0;
}
26. Even/odd 0..100 using do-while, skip 50, stop at 70
#include <stdio.h>
int main(void) {
int i = 0;
do {
i++;
if (i == 50) continue;
if (i > 70) break;
printf("%d is %s\n", i, (i % 2 == 0) ? "Even" : "Odd");
} while (i < 100);
return 0;
}
27. Same as 26 but with while loop
#include <stdio.h>
int main(void) {
int i = 0;
while (i < 100) {
i++;
if (i == 50) continue;
if (i > 70) break;
printf("%d is %s\n", i, (i % 2 == 0) ? "Even" : "Odd");
}
return 0;
}
28. Create 1D array[20] and store numbers 1..200 via scanf then print
Note: The description mentions storing numbers 1 to 200 in a 20-element array — that’s inconsistent. I'll assume they meant array size 200 or fill 20 elements by user input. I'll implement 20-element array and read values via scanf.
#include <stdio.h>
int main(void) {
int arr[20];
printf("Enter 20 integers:\n");
for (int i = 0; i < 20; i++) if (scanf("%d", &arr[i]) != 1) return 1;
printf("Elements are:\n");
for (int i = 0; i < 20; i++) printf("%d ", arr[i]);
printf("\n");
return 0;
}
29. 2D array 3x4, read and print
#include <stdio.h>
int main(void) {
int a[3][4];
printf("Enter 12 integers:\n");
for (int i=0;i<3;i++) for (int j=0;j<4;j++) if (scanf("%d",&a[i][j])!=1) return 1;
printf("Matrix:\n");
for (int i=0;i<3;i++){
for(int j=0;j<4;j++) printf("%d ", a[i][j]);
printf("\n");
}
return 0;
}
30. Addition of two 3x4 matrices
#include <stdio.h>
int main(void) {
int A[3][4], B[3][4], C[3][4];
printf("Enter elements of matrix A (3x4):\n");
for(int i=0;i<3;i++) for(int j=0;j<4;j++) if (scanf("%d",&A[i][j])!=1) return 1;
printf("Enter elements of matrix B (3x4):\n");
for(int i=0;i<3;i++) for(int j=0;j<4;j++) if (scanf("%d",&B[i][j])!=1) return 1;
for(int i=0;i<3;i++) for(int j=0;j<4;j++) C[i][j]=A[i][j]+B[i][j];
printf("Sum matrix:\n");
for(int i=0;i<3;i++){
for(int j=0;j<4;j++) printf("%d ", C[i][j]);
printf("\n");
}
return 0;
}
31. Subtraction of two 3x4 matrices
#include <stdio.h>
int main(void) {
int A[3][4], B[3][4], C[3][4];
printf("Enter A (3x4):\n");
for(int i=0;i<3;i++) for(int j=0;j<4;j++) if (scanf("%d",&A[i][j])!=1) return 1;
printf("Enter B (3x4):\n");
for(int i=0;i<3;i++) for(int j=0;j<4;j++) if (scanf("%d",&B[i][j])!=1) return 1;
for(int i=0;i<3;i++) for(int j=0;j<4;j++) C[i][j]=A[i][j]-B[i][j];
printf("Difference matrix:\n");
for(int i=0;i<3;i++){
for(int j=0;j<4;j++) printf("%d ", C[i][j]);
printf("\n");
}
return 0;
}
32. Multiply A[3x4] and B[4x5]
#include <stdio.h>
int main(void) {
int A[3][4], B[4][5], C[3][5];
printf("Enter A (3x4):\n");
for (int i=0;i<3;i++) for (int j=0;j<4;j++) if (scanf("%d",&A[i][j])!=1) return 1;
printf("Enter B (4x5):\n");
for (int i=0;i<4;i++) for (int j=0;j<5;j++) if (scanf("%d",&B[i][j])!=1) return 1;
for (int i=0;i<3;i++) for (int j=0;j<5;j++) {
C[i][j] = 0;
for (int k=0;k<4;k++) C[i][j] += A[i][k] * B[k][j];
}
printf("Product (3x5):\n");
for (int i=0;i<3;i++){
for (int j=0;j<5;j++) printf("%d ", C[i][j]);
printf("\n");
}
return 0;
}
33. Store characters in char array and print as string
#include <stdio.h>
int main(void) {
char s[201];
printf("Enter a string (max 200 chars):\n");
fgets(s, sizeof(s), stdin);
printf("You entered: %s", s);
return 0;
}
34. Store string and print using pointer arithmetic
#include <stdio.h>
int main(void) {
char s[200];
printf("Enter string: ");
if (!fgets(s, sizeof(s), stdin)) return 1;
char *p = s;
while (*p && *p != '\n') {
putchar(*p);
p++;
}
putchar('\n');
return 0;
}
Unit 3
35. Call by value demonstration
#include <stdio.h>
void increment(int x) {
x++;
printf("Inside function: x = %d\n", x);
}
int main(void) {
int a = 5;
printf("Before: a = %d\n", a);
increment(a);
printf("After: a = %d\n", a); // unchanged
return 0;
}
36. Call by reference demonstration (using pointer)
#include <stdio.h>
void increment(int *x) {
(*x)++;
printf("Inside function: *x = %d\n", *x);
}
int main(void) {
int a = 5;
printf("Before: a = %d\n", a);
increment(&a);
printf("After: a = %d\n", a); // changed
return 0;
}
37. Pass individual array elements to function one by one
#include <stdio.h>
void show(int x) { printf("%d is %s\n", x, (x % 2 == 0) ? "Even" : "Odd"); }
int main(void) {
int arr[] = {1,2,3,4,5};
int n = sizeof(arr)/sizeof(arr[0]);
for (int i = 0; i < n; i++) show(arr[i]);
return 0;
}
38. Pass whole array to function and print each element and even/odd
#include <stdio.h>
void process(int a[], int n) {
for (int i = 0; i < n; i++)
printf("%d: %s\n", a[i], (a[i] % 2 == 0) ? "Even" : "Odd");
}
int main(void) {
int a[] = {10, 15, 20, 25, 30};
process(a, sizeof(a)/sizeof(a[0]));
return 0;
}
39. Fibonacci up to n terms (again)
#include <stdio.h>
int main(void) {
int n;
printf("Enter n: ");
if (scanf("%d", &n) != 1 || n <= 0) return 1;
long long a = 0, b = 1;
for (int i = 1; i <= n; i++) {
printf("%lld ", a);
long long t = a + b; a = b; b = t;
}
printf("\n");
return 0;
}
40. Ackermann function (recursive) — caution: grows fast
#include <stdio.h>
unsigned long ackermann(unsigned int m, unsigned int n) {
if (m == 0) return n + 1;
if (m > 0 && n == 0) return ackermann(m - 1, 1);
return ackermann(m - 1, ackermann(m, n - 1));
}
int main(void) {
unsigned int m, n;
printf("Enter m and n (small values recommended, e.g., <=3): ");
if (scanf("%u %u", &m, &n) != 2) return 1;
printf("Ackermann(%u,%u) = %lu\n", m, n, ackermann(m, n));
return 0;
}
41. Print addresses of variables
#include <stdio.h>
int main(void) {
int i = 0;
float f = 0.0f;
long l = 0L;
double d = 0.0;
printf("Address of int: %p\n", (void*)&i);
printf("Address of float: %p\n", (void*)&f);
printf("Address of long: %p\n", (void*)&l);
printf("Address of double: %p\n", (void*)&d);
return 0;
}
42. Print sizes of types
#include <stdio.h>
int main(void) {
printf("Size of int = %zu\n", sizeof(int));
printf("Size of float = %zu\n", sizeof(float));
printf("Size of long = %zu\n", sizeof(long));
printf("Size of double = %zu\n", sizeof(double));
return 0;
}
Unit 4
43. Dynamically allocate integer array using malloc
#include <stdio.h>
#include <stdlib.h>
int main(void) {
size_t n;
printf("Enter number of integers: ");
if (scanf("%zu", &n) != 1 || n == 0) return 1;
int *arr = malloc(n * sizeof(int));
if (!arr) { perror("malloc"); return 1; }
printf("Enter %zu integers:\n", n);
for (size_t i = 0; i < n; i++) if (scanf("%d", &arr[i]) != 1) { free(arr); return 1; }
printf("You entered:\n");
for (size_t i = 0; i < n; i++) printf("%d ", arr[i]);
printf("\n");
free(arr);
return 0;
}
44. Student structure, input two students and print info
#include <stdio.h>
typedef struct {
int roll;
char name[50];
float marks;
} Student;
int main(void) {
Student s1, s2;
printf("Enter roll, name (no spaces) and marks for student 1:\n");
if (scanf("%d %49s %f", &s1.roll, s1.name, &s1.marks) != 3) return 1;
printf("Enter roll, name and marks for student 2:\n");
if (scanf("%d %49s %f", &s2.roll, s2.name, &s2.marks) != 3) return 1;
printf("Student 1: %d %s %.2f\n", s1.roll, s1.name, s1.marks);
printf("Student 2: %d %s %.2f\n", s2.roll, s2.name, s2.marks);
return 0;
}
45. Create text file output.txt and store up to 200 characters
#include <stdio.h>
int main(void) {
char buf[201];
printf("Enter text (max 200 chars):\n");
if (!fgets(buf, sizeof(buf), stdin)) return 1;
FILE *f = fopen("output.txt", "w");
if (!f) { perror("fopen"); return 1; }
fputs(buf, f);
fclose(f);
printf("Saved to output.txt\n");
return 0;
}
47. Open output.txt and read up to 200 characters
#include <stdio.h>
int main(void) {
char buf[201];
FILE *f = fopen("output.txt", "r");
if (!f) { perror("fopen"); return 1; }
if (!fgets(buf, sizeof(buf), f)) {
printf("No data or read error\n");
} else {
printf("File contents:\n%s", buf);
}
fclose(f);
return 0;
}
Note: The original list had program number 46 missing and jumps 45 -> 47 (in the uploaded list). I preserved the numbering.
48. Demonstrate getch(), getche(), getchar()
#include <stdio.h>
/*
Note: getch() and getche() are available in conio.h on Windows (Turbo C/Dev-C++/MinGW with conio).
They are not standard C. For portability, this program uses getchar() and explains getch/getche usage.
*/
int main(void) {
int c;
printf("Using getchar() (press a key then Enter): ");
c = getchar();
while (getchar() != '\n'); // clear rest of line
printf("\nYou entered '%c' (ASCII %d)\n", c, c);
printf("Note: getch() reads a character without echo, getche() reads and echoes immediately.\n");
printf("On systems with conio.h (Windows), include <conio.h> and use getch()/getche().\n");
return 0;
}