C Programming (Coding + Short Theory): নিচে গুরুত্বপূর্ণ C প্রোগ্রামিং কোডিং প্রশ্ন ও সংক্ষিপ্ত থিওরি উত্তর দেওয়া হলো। এগুলো বিভিন্ন Bank / IT Written Exam-এ বারবার আসে।
1. Write a C program to find GCD of two numbers (Euclidean Algorithm).
Concept (Short Theory): GCD (Greatest Common Divisor) হলো দুইটি সংখ্যার সর্বোচ্চ সাধারণ গুণনীয়ক। Euclidean Algorithm অনুযায়ী, যতক্ষণ পর্যন্ত b ≠ 0, আমরা a % b নেব এবং a = b, b = a % b করে লুপ চালাবো। শেষে a হবে GCD।
#include <stdio.h>
int main() {
int a, b, temp;
printf("Enter two numbers: ");
scanf("%d %d", &a, &b);
// Euclidean Algorithm
while (b != 0) {
temp = b;
b = a % b;
a = temp;
}
printf("GCD = %d\n", a);
return 0;
}
Explanation:
- প্রথমে দুইটি সংখ্যা ইনপুট নিচ্ছি (a, b)।
- while (b != 0) লুপে প্রতিবার b কে temp এ রাখছি, তারপর b = a % b করছি এবং a = temp সেট করছি।
- যখন b = 0, তখন a এর ভ্যালু হল দুই সংখ্যার GCD।
2. Write a C program to check a Prime Number.
Concept (Short Theory): Prime সংখ্যা হলো যেই সংখ্যা শুধুমাত্র 1 এবং নিজে ছাড়া অন্য কোনো দিয়ে ভাগ যায় না (যেমন 2, 3, 5, 7, 11 …)।
#include <stdio.h>
int main() {
int n, i, flag = 0;
printf("Enter a positive integer: ");
scanf("%d", &n);
if (n <= 1) {
printf("%d is not a prime number.\n", n);
return 0;
}
for (i = 2; i * i <= n; i++) {
if (n % i == 0) {
flag = 1;
break;
}
}
if (flag == 0)
printf("%d is a prime number.\n", n);
else
printf("%d is not a prime number.\n", n);
return 0;
}
3. Write a C program to find Factorial (loop + recursion).
Concept (Short Theory): কোনো ধনাত্মক পূর্ণসংখ্যা n এর factorial হল n! = 1 × 2 × 3 × … × n। যেমন, 5! = 120।
3(a). Factorial using loop
#include <stdio.h>
int main() {
int n, i;
long long fact = 1;
printf("Enter a positive integer: ");
scanf("%d", &n);
if (n < 0) {
printf("Factorial of a negative number doesn't exist.\n");
return 0;
}
for (i = 1; i <= n; i++) {
fact *= i;
}
printf("Factorial of %d = %lld\n", n, fact);
return 0;
}
Related Posts
3(b). Factorial using recursion
#include <stdio.h>
long long factorial(int n) {
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
}
int main() {
int n;
printf("Enter a positive integer: ");
scanf("%d", &n);
if (n < 0) {
printf("Factorial of a negative number doesn't exist.\n");
return 0;
}
printf("Factorial of %d = %lld\n", n, factorial(n));
return 0;
}
4. Write a C program to find Largest of three numbers.
Concept (Short Theory): তিনটি সংখ্যা তুলনা করে সর্বোচ্চটি বের করতে if-else ব্যবহার করা হয়।
#include <stdio.h>
int main() {
int a, b, c, largest;
printf("Enter three numbers: ");
scanf("%d %d %d", &a, &b, &c);
if (a >= b && a >= c)
largest = a;
else if (b >= a && b >= c)
largest = b;
else
largest = c;
printf("Largest = %d\n", largest);
return 0;
}
5. Write a C program to reverse a number.
Concept (Short Theory): Reverse করতে সংখ্যার শেষ digit বের করতে n % 10 ব্যবহার করে, তারপর rev = rev * 10 + lastDigit করা হয়, এবং n = n / 10 করে n কমানো হয়।
#include <stdio.h>
int main() {
int n, remainder, reversed = 0;
printf("Enter an integer: ");
scanf("%d", &n);
while (n != 0) {
remainder = n % 10;
reversed = reversed * 10 + remainder;
n /= 10;
}
printf("Reversed number = %d\n", reversed);
return 0;
}
6. Write a C program to check palindrome number / string.
Concept (Short Theory): Palindrome হলো যেই সংখ্যা বা string উল্টো দিক থেকেও একই থাকে। যেমন: সংখ্যা 121, string "madam"।
6(a). Palindrome number check
#include <stdio.h>
int main() {
int n, original, remainder, reversed = 0;
printf("Enter an integer: ");
scanf("%d", &n);
original = n;
while (n != 0) {
remainder = n % 10;
reversed = reversed * 10 + remainder;
n /= 10;
}
if (original == reversed)
printf("%d is a palindrome number.\n", original);
else
printf("%d is not a palindrome number.\n", original);
return 0;
}
6(b). Palindrome string check
#include <stdio.h>
#include <string.h>
int main() {
char str[100], rev[100];
int len, i, j;
printf("Enter a string: ");
scanf("%s", str); // no spaces
len = strlen(str);
j = 0;
for (i = len - 1; i >= 0; i--) {
rev[j++] = str[i];
}
rev[j] = '\0';
if (strcmp(str, rev) == 0)
printf("%s is a palindrome string.\n", str);
else
printf("%s is not a palindrome string.\n", str);
return 0;
}
7. Write a C program to print Fibonacci series.
Concept (Short Theory): Fibonacci series: 0, 1, 1, 2, 3, 5, 8, ... প্রতিটি টার্ম = আগের দুইটি টার্মের যোগফল।
#include <stdio.h>
int main() {
int n, i;
int t1 = 0, t2 = 1, nextTerm;
printf("Enter the number of terms: ");
scanf("%d", &n);
printf("Fibonacci Series: ");
for (i = 1; i <= n; i++) {
printf("%d ", t1);
nextTerm = t1 + t2;
t1 = t2;
t2 = nextTerm;
}
printf("\n");
return 0;
}
Short Theory Questions
8. Difference between array and pointer.
Array:
- Array হলো একই টাইপের একাধিক ভ্যারিয়েবলের সংগ্রহ (continuous memory block)।
- Array-এর নাম পুরো array-এর base address নির্দেশ করে (যেমন: arr হলো &arr[0])।
- Array-এর size compile time-এ fixed থাকে (স্ট্যাটিক সাইজ)।
- Array নামকে অন্য address assign করা যায় না (read-only pointer এর মত আচরণ করে)।
Pointer:
- Pointer হলো এমন একটি ভ্যারিয়েবল যা অন্য ভ্যারিয়েবলের address সংরক্ষণ করে।
- Pointer বিভিন্ন জায়গার address ধরে রাখতে পারে (dynamic, বারবার change করা যায়)।
- Pointer arithmetic ব্যবহার করে memory location এ move করা যায় (p++, p-- ইত্যাদি)।
- Pointer যে কোনো data type-এর address রাখতে পারে (int*, char*, float* ইত্যাদি)।
সংক্ষেপে: Array একটি fixed, continuous memory block; pointer হলো address ধারণকারী variable, যা flexible এবং বিভিন্ন address point করতে পারে।
9. Difference between call by value and call by reference.
Call by Value:
- Function-এ argument-এর কপি পাঠানো হয়।
- Function-এর ভেতরে পরিবর্তন করলে main() এর original ভ্যালু change হয় না।
- C ভাষায় সাধারণত ডিফল্ট প্যারামিটার passing method হলো call by value।
- Example: func(a); এখানে a এর কপি যায়।
Call by Reference (C-তে pointer ব্যবহার করে):
- Function-এ variable-এর address পাঠানো হয় (pointer দিয়ে)।
- Function-এর ভেতরে পরিবর্তন করলে main() এর original ভ্যালু change হয়ে যায়।
- Efficient যখন বড় data structure pass করতে হয় (copy না করে reference পাঠানো হয়)।
- Example: func(&a); এবং parameter হিসেবে int *p ব্যবহার।
সংক্ষেপে: Call by value original data protect করে (copy নিয়ে কাজ করে), আর call by reference সরাসরি original data modify করতে পারে।
10. What is a function? Types of function in C.
What is a function?
Function হলো একটি নির্দিষ্ট কাজ করার জন্য কয়েকটি statement-এর সমষ্টি, যাকে আমরা বারবার ব্যবহার করতে পারি (reusable block of code)। এটি প্রোগ্রামকে ছোট ছোট manageable অংশে ভাগ করতে সাহায্য করে (modular programming)।
Types of function in C (সাধারণভাবে):
1. Library Functions: C standard library থেকে পাওয়া ready-made functions, যেমন printf(), scanf(), sqrt(), strlen() ইত্যাদি। এগুলো ব্যবহার করতে header file include করতে হয়।
2. User-defined Functions: প্রোগ্রামার নিজে প্রয়োজন অনুযায়ী ফাংশন তৈরি করে, যেমন int add(int a, int b) ইত্যাদি। এগুলো কোডকে পরিষ্কার ও reusable করে।
আরো Classification (by arguments & return type):
- Function with no arguments and no return value
- Function with arguments but no return value
- Function with no arguments but return value
- Function with arguments and return value
Exam Point: Definition + library vs user-defined + above ৪ ধরনের classification লিখলে ভালো নম্বর পাওয়া যায়।