Data Type
[C ভাষায় ব্যবহৃত বিভিন্ন ধরনের ডাটা টাইপ বর্ণনা করুন -১৮তম এর লিখিত প্রশ্ন]
C প্রোগ্রামিং ল্যাঙ্গুয়েজে বিভিন্ন ধরনের ডাটা টাইপ ব্যবহার করা হয়-

1. Primary অথবা Basic অথবা Built-in ডেটা টাইপ:
- char: এই ডেটা টাইপ একটি ক্যারেকটার সংরক্ষণ করে। যেমন- ‘A’, ‘a’, ‘+’ ইত্যাদি।
- int: এই ডেটা টাইপ পূর্ণসংখ্যা সংরক্ষণ করতে ব্যবহৃত হয়। যেমন- 10, 300, 6000 ইত্যাদি।
- float: এই ডেটা টাইপ সিঙ্গেল প্রিসিশন বিশিষ্ট ডেসিম্যাল সংখ্যা( ভগ্নাংশ মান সহ) সংরক্ষণ করতে ব্যবহৃত হয়। যেমন- 9.81, 345.7633 ইত্যাদি।
- double: এই ডেটা টাইপ ডাবল প্রিসিশন বিশিষ্ট ডেসিম্যাল সংখ্যা( ভগ্নাংশ মান সহ) সংরক্ষণ করতে ব্যবহৃত হয়। যেমন- 843.345678, 3293.837234 ইত্যাদি।
‘void’ data type: ‘void’ ডেটা টাইপ বলতে বুঝায় কোন ভ্যালু নেই। একটি ফাংশন কোন কিছুই রিটার্ন করবে না বুঝাতে এই ডেটা টাইপ ব্যবহৃত হয়।
Data Type | Size | Format Specifier | Example | Storing |
| int | 4 bytes | %d or %i | int a=5 | Whole number |
| float | 4 bytes | %f or %F | float a=3.14 | 6-7 digits |
| double | 8 bytes | %lf | double pi = 3.1415926535; | 15 digits |
| char | 1 byte | %c | char grade = 'A'; | single letter |
| string | 1 byte/per Character | %s | char myn[] = "suman"; | Multiple letter |
int ডাটা টাইপ সাধারণত 2^32 - 1, or 2,147,483,647 সংখ্যাকে সংরক্ষণ করতে ব্যবহৃত হয়। যেহেতু ৩২৬৭৮ এর মধ্যেই অন্তর্ভুক্ত সংখ্যা, সুতরাং int ডাটা টাইপ ব্যাবহার করা যাবে।
2. Derived Data Type:
এইগুলো একাধিক ভ্যালু অথবা কোন একটা ডাটার লোকেশন/রেফারেন্স ধারণ করে। যেমন- Arrays, Pointers, Function, Reference
Array
- অ্যারে হলো একই ডেটা টাইপের একাধিক মানকে ধারাবাহিকভাবে একটি একক নামে সংরক্ষণ করার কাঠামো।
- অ্যারের উপাদানগুলিকে তাদের Index এর মাধ্যমে অ্যাক্সেস করা হয়, যা সাধারণত ০ থেকে শুরু হয়।
- অ্যারের সমস্ত উপাদান মেমরির মধ্যে একটির পর একটি সাজানো সংলগ্ন বা ধারাবাহিক অবস্থানে সংরক্ষিত থাকে।
| বৈশিষ্ট্য | সিনট্যাক্স | উদাহরণ | ব্যাখ্যা |
| সাধারণ অ্যারে | Datatype arrayName[]={elements}; | int roll[ ] = {10, 20, 30}; | এই অ্যারেতে roll[0] = 10, roll[1] = 20, এবং roll[2] = 30। |
| ক্যারেক্টার অ্যারে | এটি একই ডেটা টাইপের ক্যারেক্টারগুলোর সংগ্রহ। এটি স্ট্রিং হিসেবে ব্যবহৃত হয়। | char myname[] = "SHEPAN"; | 'S', 'H', 'E', 'P', 'A', 'N' ক্যারেক্টারগুলি একটি অ্যারেতে সংরক্ষিত। |
| ম্যাট্রিক্স অ্যারে | একাধিক সূচক দ্বারা ডেটা সংরক্ষণ করা হয়। একে ম্যাট্রিক্স অ্যারে-ও বলা হয়। | int matrix[2][3] = { {1, 4, 2}, {3, 6, 8} }; | এটি ২ সারি এবং ৩ কলামের একটি ম্যাট্রিক্স। যেমন: matrix[0][1] এর মান হলো 4। |
String
স্ট্রিং হলো ক্যারেক্টার বা অক্ষরের একটি অ্যারে। স্ট্রিং হচ্ছে কতগুলো ক্যারেক্টার এর সিকুয়েন্স বা অনুক্রম। যখন বেশ কিছু ক্যারেক্টার একসাথে মিলে কিছু একটা হয় তখন সেটাকে একটা স্ট্রিং বলে।
স্ট্রিং লেখার নিয়ম- char string_name [size]; উদারহণ- char str[] = "Shepanpa"
Index | ০ | ১ | ২ | ৩ | ৪ | ৫ | ৬ | ৭ |
| str | S | h | e | p | a | n | p | a |
স্ট্রিং ফাংশন:
ফাংশন | কাজ |
| strlen(str) | স্ট্রিং-এর দৈর্ঘ্য নির্ণয় করে। |
| strcpy(dest, src) | সোর্স স্ট্রিংকে গন্তব্য স্ট্রিং-এ কপি (Copy) করে। |
| strcat(dest, src) | দুটি স্ট্রিংকে জুড়ে দেয় (Concatenates)। |
| strcmp(str1, str2) | দুটি স্ট্রিংকে তুলনা করে। |
Pointer
পয়েন্টার হচ্ছে এক ধরনের ভ্যারিয়েবল যা অন্য একটা ভ্যারিয়েবলের এড্রেসকে সংরক্ষণ করে। এটা কোন মান সংরক্ষণ করেনা শুধুমাত্র রেফারেন্স এড্রেসকে নির্দেশ করে।
- অ্যাড্রেস-অফ অপারেটর (&): কোনো ভেরিয়েবলের মেমরি অ্যাড্রেস পেতে ব্যবহৃত হয়।
- ডি-রেফারেন্স অপারেটর (*): পয়েন্টার যেখানে নির্দেশ করছে, সেই মেমরি অবস্থানের মান অ্যাক্সেস করতে ব্যবহৃত হয়।
- যখন কোনো পয়েন্টার কোনো মেমরি ঠিকানায় নির্দেশ করে না, তখন এটিকে NULL অথবা 0 দিয়ে ইনিশিয়ালাইজ (মান নির্ধারণ) করা হয়।
- উদাহরণ: int x = 10; int *ptr = &x; (এখানে ptr ভেরিয়েবলটি x-এর মেমরি অ্যাড্রেস ধারণ করে)।
Pointer এর সুবিধা:
- Pointer সরাসরি মেমরি একসেস করার সুযোগ দেয়।
- Pointer ইউজার ডিফাইন ফাংশনের কিওয়ার্ড রিটার্ন না করেই মাল্টিপল ভ্যালু রিটার্ন করে।
- Pointer প্রোগ্রামের স্টোর করার মেমোরি স্পেস কম লাগে এবং প্রোগ্রামের জটিলতা কমায়।
- Pointer প্রোগ্রাম এক্সিকিউশন এর সময় কমায়।
- Pointer প্রত্যেক অ্যারে ইলিমেন্টসকে আলাদাভাবে একসেস করতে সাহায্য করে।
- Pointer ডায়নামিক মেমরি অ্যালোকেশন এবং ডি-অ্যালোকেশন করার সুবিধা প্রদান করে।
- Pointer জটিল ডাটা স্ট্রাকচার যেমন linked lists, tree, graphs, stack ইত্যাদিতে ব্যবহার করা হয়।
Pointer এর অসুবিধা:
- Pointer অন্য ভ্যারিয়েবল থেকে স্লো কাজ করে।
- Pointer এর বাগ খুঁজে বের করে সমাধান করা অপেক্ষাকৃত ভ্যারিয়েবলের তুলনায় জটিল।
Array & Pointer এর মধ্যে পার্থক্য
Array | Pointer |
| এটা একই ধরনের ভ্যারিয়েবল যা একই ধরনে মাল্টিপল ডাটা স্টোর করতে ব্যবহার করা হয়। | পয়েন্টার হচ্ছে এক ধরনের ভ্যারিয়েবল যা অন্য একটা ভ্যারিয়েবলের এড্রেসকে সংরক্ষণ করে। |
| কতগুলো ডাটা স্টোর করবে তা অ্যারে সাইজের উপর নির্ভরশীল। | পয়েন্টার শুধু মাত্র এক সময়ে একটা ভ্যারিয়েবলের এড্রেসকে স্টোর করতে পারে। |
| অ্যারেকে তার ডেক্লারেশনের সময়ই ইনিশিয়ালাইজ করা যায় যেমন arr[5] = {1,2,3,4,5}. | পয়েন্টার তার ডেক্লারেশনের সময় ইনিশিয়ালাইজ করা যায় না। |
| Array স্ট্যাটিক ভ্যারিয়েবল। | Pointer স্ট্যাটিক ও ডায়নামিক হতে পারে। |
| Array কম্পাইল টাইমে মেমোরি অ্যালোকেট করে। | Pointer রান টাইমে মেমোরি অ্যালোকেট করে। |
| Array এর ইলিমেন্ট সংখ্যা পরবর্তিতে বৃদ্ধি করা সম্ভব না। | Pointer এর ইলিমেন্ট সংখ্যা পরবর্তিতে বৃদ্ধি করা সম্ভব। |
| অ্যারেতে মেমোরি অ্যালোকেশন সিকোয়েনসিয়ালি হয় মানে পাশাপাশি লোকেশন গুলো বরাদ্দ থাকে। | পয়েন্টারে মেমোরি অ্যালোকেশন হয় র্যান্ডমলী। |
| উদাহরণ: int ict_wizard int[2] = {452, 313, 325}; | উদাহরণ: int age = 25; পয়েন্টার: int *ptr = &age; |
3. User Defined Data Type
এই ডাটা টাইপ গুলো প্রোগ্রামার কর্তৃক ডিফাইন করা হয় স্ট্রাকচার এবং ইউনিওন ব্যবহারের মাধ্যমে। এগুলোর মাধ্যমে মূলত কমপ্লেক্স ডাটা টাইপ তৈরি করা সম্ভব। যেমন - Structure,Union
Structure | Union |
| একটি স্ট্রাকচার হলো বিভিন্ন ডেটা টাইপের (যেমন: int, float, char, ইত্যাদি) ভেরিয়েবলের একটি সংগ্রহ। | একটি ইউনিয়ন হলো একটি বিশেষ ডেটা টাইপ, যেখানে বিভিন্ন সদস্য একই মেমরি লোকেশন ভাগ করে নেয়। এর ফলে, একটি নির্দিষ্ট সময়ে শুধুমাত্র ইউনিয়নের একটি সদস্যকে ব্যবহার করা যায়। |
| প্রতিটি মেম্বার আলাদাভাবে মেমরি লোকেশান দখল করে। | একাধিক ভিন্ন ধরনের ডেটা মেম্বার একই মেমরি লোকেশান নেয়। |
| Struct কিওয়ার্ড এর মাধ্যমে Structure গঠন করা হয়। | Union কিওয়ার্ড এর মাধ্যমে Union গঠন করা হয়। |
| স্ট্রাকচারে, এর সকল মেম্বারদের জন্য মেমোরি অ্যালোকেশন করে থাকে। | ইউনিয়নে, শুধুমাত্র এর সবচেয়ে বড় মেম্বারের জন্য মেমোরি অ্যালোকেশন করে থাকে। |
| Structure এর সাইজ হবে এর সকল মেম্বারদের সাইজের যোগফলের সমান। | Union এর সাইজ হবে এর সব চেয়ে বড় মেম্বারের সাইজের সমান। |
| স্ট্রাকচারে একইসাথে সকল মেম্বারদের মান সংরক্ষণ করতে পারে। | ইউনিয়নে একইসাথে মাত্র একটা মেম্বারের মান সংরক্ষণ করতে পারে। |
| Structure এর সব মেম্বারদের যেকোনো সময়েই একসেস করা সম্ভব। | Union এর সব চেয়ে শেষে স্টোর হওয়া মেম্বারকে যেকোনো সময়েই একসেস করা সম্ভব। |
| Structure এর যেকোনো একটা মেম্বারের চেঞ্জ অন্যদের উপর কোন প্রভাব ফেলে না। | Union এর যেকোনো একটা মেম্বারের চেঞ্জ অন্যদের উপর কোন প্রভাব ফেলতে পারে। |
| উদাহরণ: struct employee { char name[20]; int age; float salary; }; | উদাহরণ: union data { int i; float f; char str[20]; }; |
বিভিন্ন Short Questions
• TOKEN: C প্রোগ্রামে প্রতিটি ক্ষুদ্রতম একক ইউনিটকে C টোকেন বলা হয়। টোকেন C এর মৌলিক অংশ, যা একত্রিত হয়ে একটি C প্রোগ্রাম লেখা হয়।
• PRINTF (): printf() হল C প্রোগ্রামিং ভাষার একটি স্ট্যান্ডার্ড লাইব্রেরি ফাংশন যা ফরম্যাটেড টেক্সট আউটপুট তৈরি করে এবং এটা সাধারণত কনসোলে স্ট্যান্ডার্ড আউটপুট প্রদর্শন করে। এর নাম printf "print formatted" এর সংক্ষিপ্ত রূপ।
• SCANF(): scanf() হল C প্রোগ্রামিং ভাষায় ব্যবহৃত একটি ফাংশন যা ইনপুট ডেটা পড়ার জন্য ব্যবহৃত হয়। এটা সাধারণত কীবোর্ড থেকে ব্যবহারকারীর ইনপুট গ্রহণ করতে ব্যবহৃত হয় এবং এটা একটি নির্দিষ্ট ফরম্যাটে ডেটা পড়ে।
• GLOBAL VARIABLE: গ্লোবাল ভ্যারিয়েবল (Global Variable) হল এমন একটি ভ্যারিয়েবল যা প্রোগ্রামের সমস্ত ফাংশনের বাইরে ডিফাইন করা হয় এবং এটা প্রোগ্রামের যেকোনো স্থানে অ্যাক্সেস করা যায়। গ্লোবাল ভ্যারিয়েবলগুলো সাধারণত প্রোগ্রামের শুরুতে ডিক্লেয়ার করা হয় এবং তাদের স্কোপ পুরো প্রোগ্রাম জুড়ে থাকে।
Local variable এবং Global variable এর মধ্যে -
Local Variables. | Global Variables. |
| যে সকল ভ্যারিয়েবলকে একটা ফাংশনের মধ্যে ডিক্লার করা হয় এবং শুধুমাত্র ওই ফাংশনের ভিতর একসেস করা যায় তাকে Local Variables বলে। | যে সকল ভ্যারিয়েবলকে প্রোগ্রামের যেকোনো যায়গায় একসেস করা যায় তাকে Global Variables বলে। |
| একটা ব্লক অথবা ফাংশনের মধ্যে কার্যকরী। | একটা প্রোগ্রামের যেকোনো যায়গায় কার্যকরী। |
| ডিফল্ট ভ্যালু Undefined/গার্বেজ | ডিফল্ট ভ্যালু ০/শূন্য |
* CONSTANT এবং VARIABLE এর মধ্যকার পার্থক্য
• মান পরিবর্তন: VARIABLE এর মান পরিবর্তন করা যায়, কিন্তু CONSTANT এর মান পরিবর্তন করা যায় না।
• ব্যবহার: VARIABLE সাধারণত ডাইনামিক ডেটা ধারণ করতে ব্যবহৃত হয়, যেখানে CONSTANT স্ট্যাটিক মান নির্দেশ করে।
• ডিক্লারেশন: VARIABLE ডিক্লারেশনের সময় var কীওয়ার্ড ব্যবহার না করলেও চলে, কিন্তু CONSTANT এর জন্য const ব্যবহার করা আবশ্যক।
বিভিন্ন প্রকার ফাংশনের:
• লাইব্রেরি ফাংশন: এগুলো সি লাইব্রেরিতে পূর্বনির্ধারিত ফাংশন যা সি প্রোগ্রাম থেকে সরাসরি কল করা যায়। লাইব্রেরি ফাংশনের উদাহরণ হিসেবে printf(), scanf(), strlen() ইত্যাদি।
• ইউজার-ডিফাইনড ফাংশন: এই ফাংশন প্রোগ্রামারা নির্দিষ্ট কাজের জন্য ডিক্লার করে। ইউজার-ডিফাইনড ফাংশনগুলো প্রোগ্রামের বিভিন্ন অংশ থেকে একাধিকবার কল করা যায়। যা কোডকে মডুলার এবং পরিচালনা করা সহজ করে তোলে।
• রিকার্সিভ ফাংশন: এগুলো সেই ফাংশন যা নিজেকে কল করে যতক্ষণ না একটি বেস শর্ত পূরণ হয়। রিকার্সিভ ফাংশনগুলো এমন সমস্যাগুলো সমাধান করতে ব্যবহৃত হয় যা ছোট যেমন ফ্যাক্টোরিয়াল বা ফিবোনাচ্চি সিরিজ গণনা করা।
• ইনলাইন ফাংশন: ইনলাইন ফাংশনে এই ওভারহেড থাকে না। কারণ, কম্পাইলার ইনলাইন ফাংশনের কোডটিকে সরাসরি ফাংশন কলের জায়গায় কপি করে দেয়। ফলে ফাংশন কলের জন্য কোনো অতিরিক্ত সময় নষ্ট হয় না তাই এই ফাংশন দ্রুত এক্সিকিউট হয়।
• এক্সটার্নাল ফাংশন: এগুলো সেই ফাংশন যা একটি সোর্স ফাইলে ডিফাইন করা হয় এবং অন্যান্য জায়গায় ব্যবহার করা যায়। এক্সটার্নাল ফাংশনগুলো একটি বড় প্রোগ্রামের বিভিন্ন রিইউজ করার জন্য করতে ব্যবহৃত হয়। ফাংশনগুলোকে লাইব্রেরিতে রেখে অন্য প্রোগ্রামে ব্যবহার করা
Malloc () এবং Calloc () এর মধ্যকার পার্থক্য নিন্মরূপ:
malloc() | calloc() |
| malloc() এর পূর্ণরূপ হচ্ছে Memory Allocation. | calloc() এর পূর্ণরূপ হচ্ছে Contiguous Allocation. |
| malloc() ফাংশন মেমোরির নির্দিষ্ট মাপের একক ব্লক তৈরি করে। | calloc() ফাংশন মেমোরির নির্দিষ্ট মাপের একের অধিক ব্লক তৈরি করে। |
| Malloc একটা মাত্র প্যারামিটার গ্রহণ করে। | Calloc দুইটা প্যারামিটার গ্রহণ করে। |
| malloc() তুলনামূলক ফাস্ট। | calloc() তুলনামূলক স্লো। |
| malloc() ফাস্ট তাই কর্মদক্ষতা অনেক বেশী। | calloc() স্লো তাই কর্মদক্ষতা তুলনামূলক কম। |
| Calloc এর থেকে বেশী সিকিউর | Malloc থেকে কম সিকিউর |
| malloc() কখনো বরাদ্দকৃত মেমরির প্রতিটি বাইটকে শূন্যে ইনিশিয়ালাইজ করেনা। | calloc() বরাদ্দকৃত মেমরির প্রতিটি বাইটকে শূন্যে ইনিশিয়ালাইজ করে। |
রিটেন প্রশ্ন
1. Structured & Object-oriented Programming এর মধ্যে পার্থক্য কি? - মার্ক - ৩/৫
2. C কে স্ট্রাকচারাল প্রোগ্রামিং ল্যাঙ্গুয়েজ বলা হয় কেন? মার্ক - ২
3. C ভাষায় ব্যবহৃত বিভিন্ন ধরনের ডাটা টাইপ বর্ণনা করুন। (১৭তম)
4. বিভিন্ন প্রকার operator বর্ণনা কর? মার্ক - ৩
5. Pointer কী? Pointer ব্যবহারের সুবিধাগুলো লিখুন। মার্ক ৪ (১৭তম)
6. Array & Pointer মধ্যে উদাহরণ সহ পার্থক্য লিখুন? মার্ক -৩
7. Strings কি? উদাহরণ সহ লিখুন?
8. Union & Structure মধ্যে উদাহরণ সহ পার্থক্য লিখুন? মার্ক - ৩ (১৬তম)
9. বিভিন্ন Short Questions? মার্ক - ২
10. Local variable এবং Global variable এর মধ্যে পার্থক্য লিখুন। মার্ক ৪ (১৭তম)
MCQ প্রোগ্রামিং মূল ধারণা ও প্রকারভেদ
নং | প্রশ্ন | উত্তর |
১ | কম্পিউটারকে দেওয়া সুনির্দিষ্ট নির্দেশের সেট-কে কী বলা হয়? (ক) সফটওয়্যার (খ) ডাটা (গ) প্রোগ্রাম (ঘ) হার্ডওয়্যার | উত্তর: (গ) |
২ | নিচের কোনটি লো-লেভেল ল্যাঙ্গুয়েজ? (ক) Java (খ) C++ (গ) মেশিন ভাষা (ঘ) Python | উত্তর: (গ) |
৩ | C কোন ধরনের প্রোগ্রামিং ভাষা? (ক) স্ক্রিপ্টিং (খ) লজিক (গ) স্ট্রাকচার্ড (ঘ) ফাংশনাল | উত্তর: (গ) |
৪ | JavaScript কোন ধরনের ভাষার উদাহরণ? (ক) স্ক্রিপ্টিং (খ) মেশিন ভাষা (গ) অ্যাসেম্বলি (ঘ) লো-লেভেল | উত্তর: (ক) |
৫ | Logic ওপর ভিত্তি করে কাজ করে নিচের কোনটি? (ক) Pascal (খ) Prolog (গ) Haskell (ঘ) Java | উত্তর: (খ) |
৬ | নিচের কোনটি ফাংশনাল প্রোগ্রামিং ভাষার উদাহরণ? (ক) C (খ) COBOL (গ) Haskell (ঘ) C++ | উত্তর: (গ) |
৭ | স্ট্রাকচার্ড প্রোগ্রামিংয়ে প্রোগ্রামকে কিসে ভাগ করা হয়? (ক) অবজেক্ট (খ) ফাংশন (গ) ক্লাস (ঘ) ডাটা | উত্তর: (খ) |
৮ | ডাটা হাইডিং বা এনক্যাপসুলেশন নিচের কোনটিতে থাকে? (ক) Structured Programming (খ) Object-Oriented Programming (গ) Machine Language (ঘ) Assembly Language | উত্তর: (খ) |
৯ | কোন প্রোগ্রামিং অ্যাপ্রোচ 'Top-Down' পদ্ধতি অনুসরণ করে? (ক) OOP (খ) Functional (গ) Structured (ঘ) Logic | উত্তর: (গ) |
১০ | মেমরির নামযুক্ত স্থান যেখানে মান জমা থাকে তাকে কী বলে? (ক) কনস্ট্যান্ট (খ) ভেরিয়েবল (গ) অপারেটর (ঘ) টোকেন | উত্তর: (খ) |
১১ | ভেরিয়েবলের নাম শুরু করার জন্য কোনটি বৈধ? (ক) সংখ্যা (খ) স্পেস (গ) আন্ডারস্কোর (ঘ) ড্যাশ | উত্তর: (গ) |
১২ | নিচের কোনটি ভেরিয়েবলের নাম হিসেবে ব্যবহার করা যাবে না? (ক) _name (খ) age25 (গ) for (ঘ) total_sum | উত্তর: (গ) |
১৩ | C ভাষায় 'int' ডেটা টাইপ কত মেমরি দখল করে? (ক) 1 byte (খ) 2 bytes (গ) 4 bytes (ঘ) 8 bytes | উত্তর: (গ) |
১৪ | ভগ্নাংশ বা দশমিক মান সংরক্ষণের জন্য কোন ডেটা টাইপ ব্যবহৃত হয়? (ক) int (খ) char (গ) float (ঘ) long | উত্তর: (গ) |
১৫ | ক্যারেক্টার (char) ডেটা টাইপের সাইজ কত? (ক) 1 byte (খ) 2 bytes (গ) 4 bytes (ঘ) 8 bytes | উত্তর: (ক) |
১৬ | float ডেটা টাইপের ফরম্যাট স্পেসিফায়ার কোনটি? (ক) %d (খ) %c (গ) %f (ঘ) %s | উত্তর: (গ) |
১৭ | একই ডেটা টাইপের একাধিক মানকে ধারাবাহিকভাবে সাজানোকে কী বলে? (ক) পয়েন্টার (খ) অ্যারে (গ) স্ট্রাকচার (ঘ) ফাংশন | উত্তর: (খ) |
১৮ | অ্যারের Index শুরু হয় কত থেকে? (ক) 1 (খ) -1 (গ) 0 (ঘ) ইচ্ছামতো | উত্তর: (গ) |
১৯ | স্ট্রিং আসলে কিসের অ্যারে? (ক) Integer (খ) Float (গ) Character (ঘ) Double | উত্তর: (গ) |
২০ | নিচের কোনটি অ্যারিথমেটিক অপারেটর? (ক) && (খ) < (গ) % (ঘ) == | উত্তর: (গ) |
২১ | দুটি মানের মধ্যে তুলনা করার জন্য কোন অপারেটর ব্যবহৃত হয়? (ক) অ্যারিথমেটিক (খ) রিলেশনাল (গ) লজিক্যাল (ঘ) ইউনারি | উত্তর: (খ) |
২২ | '&&' কোন ধরনের অপারেটর? (ক) Logical AND (খ) Logical OR (গ) Bitwise AND (ঘ) Relational | উত্তর: (ক) |
২৩ | ভেরিয়েবলের মান ১ Decrement কোনটি ব্যবহৃত হয়? (ক) ++ (খ) -- (গ) += (ঘ) -= | উত্তর: (খ) |
২৪ | পয়েন্টার কী সংরক্ষণ করে? (ক) ডেটা ভ্যালু (খ) মেমরি অ্যাড্রেস (গ) ফাইল নাম (ঘ) ফাংশন নাম | উত্তর: (খ) |
২৫ | কোনো ভেরিয়েবলের মেমরি অ্যাড্রেস পাওয়ার জন্য কোন অপারেটর ব্যবহৃত হয়? (ক) * (খ) & (গ) % (ঘ) # | উত্তর: (খ) |
২৬ | ডি-রেফারেন্স অপারেটর কোনটি? (ক) & (খ) * (গ) -> (ঘ) . | উত্তর: (খ) |
২৭ | পয়েন্টার যখন কোনো ঠিকানাকে নির্দেশ করে না তখন তাকে কী বলে? (ক) Empty Pointer (খ) Void Pointer (গ) NULL Pointer (ঘ) Zero Pointer | উত্তর: (গ) |
২৮ | ডায়নামিক মেমরি অ্যালোকেশন কোনটির মাধ্যমে করা যায়? (ক) অ্যারে (খ) পয়েন্টার (গ) ভেরিয়েবল (ঘ) লুপ | উত্তর: (খ) |
২৯ | অ্যারে মেমরি বরাদ্দ করে কোন সময়ে? (ক) রান টাইম (খ) কম্পাইল টাইম (গ) ডিবাগ টাইম (ঘ) সব সময় | উত্তর: (খ) |
৩০ | বিভিন্ন ডেটা টাইপের ভেরিয়েবলের সংগ্রহকে কী বলে? (ক) অ্যারে (খ) স্ট্রাকচার (গ) পয়েন্টার (ঘ) ফাংশন | উত্তর: (খ) |
৩১ | Structure মেম্বাররা মেমরিতে কীভাবে থাকে? (ক) একই স্থান দখল করে (খ) আলাদা আলাদা স্থান দখল করে (গ) কোনো স্থান নেয় না (ঘ) রান টাইমে তৈরি হয় | উত্তর: (খ) |
৩২ | Union সাইজ কতটুকু হয়? (ক) সকল মেম্বারের যোগফল (খ) সবচেয়ে বড় মেম্বারের সমান (গ) সবচেয়ে ছোট মেম্বারের সমান (ঘ) ১ বাইট | উত্তর: (খ) |
৩৩ | একই মেমরি লোকেশন ভাগ করে নেয় কোনটি? (ক) Structure (খ) Union (গ) Array (ঘ) Function | উত্তর: (খ) |
৩৪ | C প্রোগ্রামের ক্ষুদ্রতম একক ইউনিটকে কী বলে? (ক) কিওয়ার্ড (খ) টোকেন (গ) স্টেটমেন্ট (ঘ) হেডার ফাইল | উত্তর: (খ) |
৩৫ | printf() ফাংশনটি কোথায় থাকে? (ক) stdio.h (খ) conio.h (গ) string.h (ঘ) math.h | উত্তর: (ক) |
৩৬ | কীবোর্ড থেকে ইনপুট নেওয়ার জন্য কোন ফাংশন ব্যবহৃত হয়? (ক) printf() (খ) scanf() (গ) gets() (ঘ) puts() | উত্তর: (খ) |
৩৭ | গ্লোবাল ভ্যারিয়েবলের ডিফল্ট ভ্যালু কত? (ক) গার্বেজ (খ) ০ (শূন্য) (গ) ১ (ঘ) Undefined | উত্তর: (খ) |
৩৮ | যে ফাংশন নিজেকে নিজে কল করে তাকে কী বলে? (ক) ইনলাইন ফাংশন (খ) রিকার্সিভ ফাংশন (গ) লাইব্রেরি ফাংশন (ঘ) মেইন ফাংশন | উত্তর: (খ) |
৩৯ | কোডকে সরাসরি ফাংশন কলের জায়গায় কপি করে দেয় কোন ফাংশন? (ক) রিকার্সিভ (খ) ইউজার ডিফাইন (গ) ইনলাইন (ঘ) এক্সটার্নাল | উত্তর: (গ) |
৪০ | malloc() এর পূর্ণরূপ কী? (ক) Memory Allocation (খ) Main Allocation (গ) Master Allocation (ঘ) Multi Allocation | উত্তর: (ক) |
৪১ | calloc() ফাংশন মেমরির মানকে শুরুতে কত দিয়ে ইনিশিয়ালাইজ করে? (ক) ১ (খ) গার্বেজ (গ) ০ (ঘ) ১০০ | উত্তর: (গ) |
৪২ | malloc() কয়টি প্যারামিটার গ্রহণ করে? (ক) ১টি (খ) ২টি (গ) ৩টি (ঘ) ৪টি | উত্তর: (ক) |
৪৩ | স্ট্রিং-এর দৈর্ঘ্য নির্ণয়ের ফাংশন কোনটি? (ক) strcpy() (খ) strcat() (গ) strlen() (ঘ) strcmp() | উত্তর: (গ) |
৪৪ | দুটি স্ট্রিং তুলনা করতে কোনটি ব্যবহৃত হয়? (ক) strcpy() (খ) strcmp() (গ) strcat() (ঘ) strrev() | উত্তর: (খ) |
৪৫ | যার মান প্রোগ্রামে পরিবর্তন করা যায় না তাকে কী বলে? (ক) ভেরিয়েবল (খ) কনস্ট্যান্ট (গ) কিওয়ার্ড (ঘ) আইডেন্টিফায়ার | উত্তর: (খ) |
৪৬ | কনস্ট্যান্ট ডিক্লেয়ার করার জন্য কোন কিওয়ার্ড ব্যবহার করা হয়? (ক) var (খ) static (গ) const (ঘ) final | উত্তর: (গ) |
৪৭ | লোকাল ভ্যারিয়েবলের স্কোপ কতটুকু? (ক) পুরো প্রোগ্রাম জুড়ে (খ) নির্দিষ্ট ফাং |