Home » NTRCA(College) » Unit 1: Structured and Object-Oriented Programming (OOP) Concept- (Part-2)

Unit 1: Structured and Object-Oriented Programming (OOP) Concept- (Part-2)

Method Overloading এবং Method Overriding এর মধ্যকার পার্থক্য নিম্নরূপ:

Method Overloading

Method Overriding

Method overloading হচ্ছে কম্পাইল টাইম পলিমরফিজম।

Method overriding হচ্ছে রান টাইম পলিমরফিজম।

একই ক্লাসের মধ্যে হয়।

দুইটি ক্লাসের মধ্যে হয় inheritance সম্পর্কের মাধ্যমে।

Method overloading inheritance ব্যবহার হতেও পারে নাও হতে পারে।

Method overriding inheritance অবশ্যই ব্যবহার হবে।

Method overloading দুই মেথডের নাম একই কিন্তু প্যারামিটারগুলোর সংখ্যা, টাইপ আলাদা হয়।

Method overriding দুই মেথডের নাম এবং প্যারামিটারগুলোর সংখ্যা, টাইপ একই হয়।

অভারলোডেড মেথডে স্ট্যাটিক বাইন্ডিং ব্যবহার করা হয়।

অভারিডেড মেথডে ডায়নামিক বাইন্ডিং ব্যবহার করা হয়।

কম্পাইল টাইম পলিমরফিজম এর জন্য এর কার্যকারিতা খুবই কম।

এর কার্যকারিতা তুলনামূলক বেশী।

প্রাইভেট এবং ফাইনাল মেথড overloaded করা সম্ভব।

প্রাইভেট এবং ফাইনাল মেথড overloaded করা সম্ভব নয়।

নোটঃ শুধু পার্থক্য আসলে কোড দেয়া লাগবেনা। কিন্তু উদাহরণ লিখতে বলা হলে তখন কোড লিখতে হবে।

Polymorphism

       এটি একটি অবজেক্টের বিভিন্ন রূপ ধারণ করার ক্ষমতা।

       Benefit: কোডের Flexibility, Extensibility এবং সংক্ষিপ্ততা নিশ্চিত করে।

       এটি একটি সিঙ্গেল ইন্টারফেসকে বিভিন্ন ফর্মে রিপ্রেজেন্ট করার সুযোগ দেয়।

Note: Poly অর্থ অনেক আর Morph অর্থ রূপ। একই জিনিসকে স্থানভেদে বিভিন্ন রূপে ব্যবহার করার পদ্ধতিই মূলত Polymorphism

Polymorphism এর প্রকারভেদ:

1. Compile-time Polymorphism

একে Static Binding বা Early Binding বলা হয়।

এটি Function/Method Overloading-এর মাধ্যমে অর্জিত হয়।

এক্ষেত্রে ফাংশনের নাম একই থাকে, কিন্তু parameters ভিন্ন হয়।

2. Runtime Polymorphism

একে Dynamic Binding বা Late Binding বলা হয়।

এটি Function/Method Overriding-এর মাধ্যমে অর্জিত হয়।

এটি মূলত ইনহেরিটেন্সের ক্ষেত্রে দেখা যায় যেখানে চাইল্ড ক্লাস প্যারেন্ট ক্লাসের মেথডকে নতুন রূপ দেয়।

Runtime এবং Compile time polymorphism এর মধ্যকার পার্থক্য

কম্পাইল টাইম পলিমরফিজম

রান টাইম পলিমরফিজম

কম্পাইল টাইম পলিমরফিজম কম্পাইলার দ্বারা সমাধান করা হয়।

রান টাইম পলিমরফিজম কম্পাইলার দ্বারা সমাধান করা হয় না।

এটা স্ট্যাটিক বাইন্ডিং, আর্লি বাইন্ডিং এবং ওভারলোডিং নামেও পরিচিত।

এটা ডাইনামিক বাইন্ডিং, লেট বাইন্ডিং এবং ওভাররাইডিং নামেও পরিচিত।

এটা ফাংশন ওভারলোডিং এবং অপারেটর ওভারলোডিং দ্বারা অর্জিত হয়।

এটা ভার্চুয়াল ফাংশন এবং পয়েন্টার দ্বারা অর্জিত হয়।

এটা দ্রুত কার্যকরী।

এটা ধীর কার্যকরী।

কম্পাইল টাইম পলিমরফিজম কম ফ্লেক্সিবল।

রান টাইম পলিমরফিজম বেশি ফ্লেক্সিবল।

ইনহেরিটেন্স জড়িত নয়।

ইনহেরিটেন্স জড়িত।

Inheritance

একটি নতুন ক্লাস ইতোমধ্যে বিদ্যমান অন্য একটি ক্লাস থেকে ফিল্ড এবং মেথড ব্যবহার করে তাকে Inheritance বলা হয়। এটা কোড পুনঃব্যবহার করার সুযোগ দেয়।

ইনহেরিটেন্সের মূল পয়েন্টসমূহ

       বেস ক্লাস (সুপারক্লাস)- যে ক্লাসের গুণাবলী এবং আচরণ উত্তরাধিকার সূত্রে পাওয়া হয়, তাকে বেস ক্লাস বা সুপারক্লাস বলা হয়।

       ড্রাইভ ক্লাস (সাবক্লাস) - যে ক্লাস অন্য ক্লাস থেকে উত্তরাধিকার সূত্রে পায়, তাকে ডেরাইভড ক্লাস বা সাবক্লাস বলা হয়।

ইনহেরিটেন্সের প্রকারভেদ

1. Single Inheritance: যখন একটি সাব-ক্লাস কেবল একটি সুপার-ক্লাস থেকে বৈশিষ্ট্য গ্রহণ করে, তাকে সিঙ্গেল ইনহেরিটেন্স বলে।

2. Multilevel Inheritance: যখন একটি ক্লাস অন্য একটি চাইল্ড ক্লাস থেকে বৈশিষ্ট্য ইনহেরিট করে, অর্থাৎ এটি একটি চেইন বা শিকলের মতো কাজ করে।

3. Multiple Inheritance: যখন একটি চাইল্ড ক্লাস একাধিক প্যারেন্ট ক্লাস থেকে বৈশিষ্ট্য গ্রহণ করে। জাভা এবং সি-শার্প (C#) সরাসরি এটি সাপোর্ট করে না (ইন্টারফেসের মাধ্যমে করতে হয়), তবে পাইথন বা সি++ এটি ব্যবহার করা যায়।

4. Hierarchical Inheritance: যখন একটি মাত্র প্যারেন্ট ক্লাস থেকে একাধিক চাইল্ড ক্লাস তৈরি হয়।

5. Hybrid Inheritance: উপরের একাধিক ইনহেরিটেন্সের সংমিশ্রণকে হাইব্রিড ইনহেরিটেন্স বলে।

ইনহেরিটেন্সের ডায়াগ্রাম (টেক্সট আকারে):

Single Inheritance

Multilevel Inheritance

Hierarchical Inheritance

Multiple / Hybrid Inheritance

ClassA   ↓ ClassB

ClassA   ↓ ClassB   ↓ ClassC

ClassA      ↘ ClassB  ClassC

Multiple: ClassA + ClassB   ↓ ClassC  Hybrid: ClassA    ↘ ClassB ClassC        ClassD

ইনহেরিটেন্সের সুবিধাসমূহ

       কোড পুনঃব্যবহারযোগ্যতা বাড়ায়

       এর মাধ্যমে পলিমরফিজম এচিভ করা যায়

       ওভাররাইডিং এচিভ করা যায়

ইনহেরিটেন্সের অসুবিধাসমূহ

       এটা ক্লাসগুলোর মধ্যে নির্ভরতা তৈরি করতে পারে।

       কোডের পারফরম্যান্স কমায়

       এনক্যাপসুলেশন ভায়োলেশন

 

Written Question

1. Overloading এবং overriding কি? এর মধ্যে পার্থক্য লিখুন? মার্ক -3/5 (১৫তম)

2. Function Overloading কী? উদাহরণসহ ব্যাখ্যা করুন। মার্ক (১৮তম)

3. Inheritance ব্যাখ্যা করুন। এর সুবিধাসমূহ কি কি? মার্ক - 3 (১৭তম)

4. Polymorphism কি? উদাহরণসহ বিভিন্ন প্রকার polymorphism লিখুন? মার্ক - 5

5. Runtime & Compile time Polymorphism এর মধ্যকার পার্থক্য লিখুন?

Constructor and Destructor

Constructors

✓ Constructor হলো একটি বিশেষ ধরনের মেথড যা কোনো ক্লাসের অবজেক্ট তৈরি করার সময় স্বয়ংক্রিয়ভাবে কল হয়।

এর প্রধান উদ্দেশ্য হলো অবজেক্টের state (ইনস্ট্যান্স ভেরিয়েবল) ইনিশিয়ালাইজ বা শুরু করা।

একটি constructor-এর নাম অবশ্যই সেই ক্লাসের নামের সাথে হুবহু এক হতে হবে।

এর কোনো return type থাকে না, এমনকি void- নয়।

✓ Constructor সাব-ক্লাস দ্বারা ইনহেরিট (Inherited) হয় না।

একটি সাব-ক্লাস super() কিওয়ার্ড ব্যবহার করে তার সুপার-ক্লাসের কনস্ট্রাক্টরকে কল করতে পারে।

একটি ক্লাসে ভিন্ন ভিন্ন প্যারামিটার লিস্টসহ একাধিক কনস্ট্রাক্টর থাকতে পারে, যাকে constructor overloading বলা হয়।

Destructors

✓ Destructor হলো একটি বিশেষ মেথড যা কোনো অবজেক্ট ডিলিট হওয়ার সময় স্বয়ংক্রিয়ভাবে কল হয়।

এর প্রধান উদ্দেশ্য হলো অবজেক্টটি যে রিসোর্সগুলো (Memory, Files) ধরে রেখেছিল সেগুলো মুক্ত করে দেওয়া।

✓ C++ ডিস্ট্রাক্টরের নাম ক্লাসের নামের মতোই হয়, তবে তার আগে একটি টিল্ড (~) চিহ্ন থাকে।

✓ Java-তে ডিস্ট্রাক্টরের সরাসরি বা এক্সপ্লিসিট ব্যবহার নেই।

✓ Return Type: এর কোনো রিটার্ন টাইপ নেই এবং এটি কোনো প্যারামিটার গ্রহণ করে না।

যখন কোনো অবজেক্টের স্কোপ শেষ হয়ে যায় বা সেটি ডিলিট করা হয়, তখন ডিস্ট্রাক্টর নিজে থেকেই কল হয়।

জাভা মেমোরি ম্যানেজমেন্টের জন্য garbage collector ব্যবহার করে, যা অব্যবহৃত অবজেক্টগুলোকে স্বয়ংক্রিয়ভাবে ধ্বংস করে মেমোরি খালি করে।

কোডের উদাহরণ

#include <iostream>

using namespace std;

class Library {

public:

    Library() {  // Constructor তৈরি

        cout << "ICT Wizard Books Handed over" << endl;

    }

    ~Library() {

        cout << "Book Backed" << endl;

    } // Destructor তৈরি

};

int main() {

    Library myBook;

    cout << "read end" << endl;

    return 0; // Destructor কল হলো

}

সহজ বাংলায়ঃ

Constructor - যখন আপনি লাইব্রেরি থেকে বইটা হাতে নিলেন, তখন লাইব্রেরিয়ান আপনার নাম খাতায় লিখলেন এবং বইটা পড়ার জন্য প্রস্তুত করে দিলেন। এটাই হলো Constructor এটি অবজেক্ট তৈরির সাথে সাথেই সব কাজ গুছিয়ে দেয়।

Destructor - আপনার পড়া শেষ হয়ে গেলে আপনি যখন বইটা ফেরত দিতে গেলেন, লাইব্রেরিয়ান খাতা থেকে আপনার নাম কেটে দিলেন এবং বইটা আবার শেলফে তুলে রাখলেন। এটাই হলো Destructor এটি অবজেক্টের কাজ শেষ হয়ে গেলে সব পরিষ্কার করে ফেলে।

Constructor এর প্রকারভেদ

. Default Constructor

যে কনস্ট্রাকটরের কোনো প্যারামিটার বা আর্গুমেন্ট থাকে না, তাকে ডিফল্ট কনস্ট্রাকটর বলে। যদি কোনো কনস্ট্রাকটর লেখা হয়, তবে কম্পাইলার নিজে থেকেই একটি ডিফল্ট কনস্ট্রাকটর তৈরি করে নেয়।

       কাজ: এটি ভেরিয়েবলগুলোকে শূন্য (Default) মান দিয়ে শুরু করে।

. Parameterized Constructor

যে কনস্ট্রাকটরের মাধ্যমে অবজেক্ট তৈরির সময় বাইরে থেকে মান পাঠানো যায়, তাকে প্যারামিটারাইজড কনস্ট্রাকটর বলে।

       কাজ: এটি বিভিন্ন অবজেক্টকে আলাদা আলাদা মান দিয়ে শুরু করতে সাহায্য করে।

       উদাহরণ: Student s1("Rahim"); এখানে "Rahim" নামটি প্যারামিটার হিসেবে পাঠানো হচ্ছে।

. Copy Constructor

যখন একটি পুরানো অবজেক্টের সব মান ব্যবহার করে একটি নতুন অবজেক্ট তৈরি করা হয়, তখন তাকে কপি কনস্ট্রাকটর বলে।

       কাজ: এটি একটি অবজেক্টের হুবহু নকল বা কপি তৈরি করতে ব্যবহৃত হয়।

Friend Function

সাধারণত একটি ক্লাসের প্রাইভেট ডেটা অন্য কোনো ফাংশন থেকে সরাসরি দেখা বা ব্যবহার করা যায় না। কিন্তু যদি কোনো ফাংশনকে ওই ক্লাসের Friend ফাংশন করা হয়, তবে সে সেই ক্লাসের সব Data অ্যাক্সেস করতে পারে।

সুবিধাসমূহ

       ফ্রেন্ড ফাংশনকে কোডের যেকোনো স্থানে ডিক্লার করা সম্ভব, যা কোডের flexibility বাড়ায়।

       ফ্রেন্ড ফাংশনকে কল করার জন্য কোনো অবজেক্ট তৈরি করার প্রয়োজন নেই, যা প্রোগ্রামিংকে সহজ করে।

       এটা বিভিন্ন ক্লাসের মধ্যে সম্পর্ক তৈরি করতে পারে এবং অতিরিক্ত কার্যকারিতা যোগ করতে পারে।

       ফ্রেন্ড ফাংশন private এবং protected মেম্বারদের তথ্য দেখানোর সুযোগ দেয়, যা ক্লাসের তথ্যের অ্যাক্সেস বাড়ায়।

       এটা প্রোগ্রামকে আরও কার্যকরী করে তোলে।

অসুবিধাসমূহ

       এটা ক্লাসের নন-পাবলিক সদস্যদের অ্যাক্সেসের মাধ্যমে নিরাপত্তা ঝুঁকি সৃষ্টি করতে পারে।

       এটা কিছু ক্ষেত্রে কোডের জটিলতা বাড়াতে পারে।

 

1. Friend Function কি উহার সুবিধা-অসুবিধাগুলো লিখুন? মার্ক - (১৬তম, ১৮তম)

2. উদাহরণ সহ constructors and destructors লিখুন? মার্ক-3

Introductory Programming with C++/JAVA

C++

       :: (Scope Resolution): Used to define a member function outside of its class or to access a global variable hidden by a local variable.

       . (Member Access): Used to access a member of an object.

       -> : (Member Pointer) Used to access a member of an object pointed to by a pointer.

       << (Insertion) and >> (Extraction): Used for input/output operations with streams (e.g., cout << "Hello";).

       In C++, cout is used for output and cin is used for input.

       Some of the operators cannot be overloaded.

▪ "." Member access or dot operator

"? :" Ternary or conditional operator

"::" Scope resolution operator

".*" Pointer to member operator

"sizeof" The object size operator

"typeid" Object type operator

Java:

       Java is famous for its platform independence Language

       In Java, compiling source code into an intermediate format called bytecode

       bytecode executed on any machine that has a Java Virtual Machine (JVM)

       Java uses automatic memory management through a process called Garbage Collection

       In Java, System.out.println() is used for output,

       Scanner class is commonly used for user input.

       Java is used to develop mobile apps, web apps, desktop apps, games and much more.

       In Java, super keyword is used to refer to the parent class of a subclass.

       Java also does not support direct multiple inheritance

OOP এর মূল ধারণা বৈশিষ্ট্য

ক্লাস অবজেক্ট

ওভারলোডিং ওভাররাইডিং

কনস্ট্রাক্টর ডেস্ট্রাক্টর

Inheritance

ফ্রেন্ড ফাংশন নিরাপত্তা

অ্যাবস্ট্রাকশন ইনক্যাপসুলেশন

বিবিধ থ্রেড

নং

প্রশ্ন

উত্তর

১৪০

OOP এর পূর্ণরূপ কী? () Object Oriented Program  () Object Oriented Programming () Object Oriented Procedure  () Objective Oriented Programming

উত্তরঃ

১৪১

কোনটি বাস্তব জীবনের ব্লুপ্রিন্ট বা টেমপ্লেট হিসেবে কাজ করে? () অবজেক্ট  () ক্লাস  () মেথড  () ভেরিয়েবল

উত্তরঃ

১৪২

অবজেক্ট যখন তৈরি হয়, তখন মেমরিতে কী ঘটে? () মেমরি ডিলিট হয়  () মেমরি বরাদ্দ হয়  () মেমরি শেয়ার হয়  () কিছুই হয় না

উত্তরঃ

১৪৩

একটি ক্লাসের Instance কী বলা হয়? () পলিমরফিজম  () ইনহেরিটেন্স  () অবজেক্ট  () ইন্টারফেস

উত্তরঃ

১৪৪

ডেটা এবং মেথডকে একত্রে একটি ইউনিটে বা প্যাকেজে রাখার প্রক্রিয়াকে কী বলে? () অ্যাবস্ট্রাকশন  () ইনক্যাপসুলেশন  () ইনহেরিটেন্স  () ওভারলোডিং

উত্তরঃ

১৪৫

অপ্রয়োজনীয় জটিলতা লুকিয়ে ব্যবহারকারীর সামনে সহজ ইন্টারফেস রাখাকে কী বলে? () ইনক্যাপসুলেশন  () অ্যাবস্ট্রাকশন  () পলিমরফিজম  () ইনহেরিটেন্স

উত্তরঃ

১৪৬

একটি ক্লাস অন্য একটি ক্লাসের বৈশিষ্ট্য গ্রহণ করলে তাকে কী বলে? () এনক্যাপসুলেশন  () পলিমরফিজম  () ইনহেরিটেন্স  () বাইন্ডিং

উত্তরঃ

১৪৭

পলিমরফিজম শব্দের অর্থ কী? () এক রূপ  () বহু রূপ  () রূপহীন  () নির্দিষ্ট রূপ

উত্তরঃ

১৪৮

নিচের কোনটি ক্লাসের লজিক্যাল রিলেশন প্রকাশ করে? () অবজেক্ট  () মেথড  () ক্লাস  () ডাটা মেম্বার

উত্তরঃ

১৪৯

একটি ক্লাসের কয়টি অবজেক্ট থাকতে পারে? () একটি  () দুটি  () অনেকগুলো  () নির্দিষ্ট কোনো সীমা নেই

উত্তরঃ

১৫০

ক্লাসের সদস্যদের এক্সেস করার জন্য অবজেক্টের সাথে কোন অপারেটর ব্যবহৃত হয়? () +  () .  () ,  () &

উত্তরঃ

১৫১

ক্লাস এবং অবজেক্টের মধ্যে কোনটি Physical Entity? () ক্লাস  () অবজেক্ট  () হেডার ফাইল  () ফাংশন

উত্তরঃ

১৫২

একই ক্লাসে একই নামে একাধিক মেথড কিন্তু প্যারামিটার ভিন্ন হওয়াকে কী বলে? () মেথড ওভাররাইডিং  () মেথড ওভারলোডিং  () ডাইনামিক বাইন্ডিং  () ইনহেরিটেন্স

উত্তরঃ

১৫৩

মেথড ওভারলোডিং কোন ধরনের পলিমরফিজম? () রান-টাইম  () কম্পাইল-টাইম  () লেট-বাইন্ডিং  () ডাইনামিক

উত্তরঃ

১৫৪

মেথড ওভাররাইডিংয়ের জন্য কোন সম্পর্কটি আবশ্যক? () এনক্যাপসুলেশন  () ইনহেরিটেন্স  () কম্পোজিশন  () অ্যাগ্রিগেশন

উত্তরঃ

১৫৫

রান-টাইম পলিমরফিজম অর্জিত হয় কোনটির মাধ্যমে? () ওভারলোডিং  () ওভাররাইডিং  () ইনলাইন ফাংশন  () কনস্ট্রাক্টর

উত্তরঃ

১৫৬

ওভারলোডেড মেথডে কোন ধরনের বাইন্ডিং ব্যবহৃত হয়? () ডাইনামিক বাইন্ডিং  () স্ট্যাটিক বাইন্ডিং  () লেট বাইন্ডিং  () রান-টাইম বাইন্ডিং

উত্তরঃ

১৫৭

ক্লাসের নামের সাথে মিল থাকা বিশেষ ফাংশনকে কী বলে? () ডেস্ট্রাক্টর  () কনস্ট্রাক্টর  () স্ট্যাটিক ফাংশন  () ফ্রেন্ড ফাংশন

উত্তরঃ

১৫৮

অবজেক্ট যখন মেমরি থেকে মুছে ফেলা হয় তখন কোনটি কল হয়? () কনস্ট্রাক্টর  () ডেস্ট্রাক্টর  () অপারেটর  () ভেরিয়েবল

উত্তরঃ

১৫৯

ডেস্ট্রাক্টর চিহ্নিত করার জন্য কোন চিহ্ন ব্যবহৃত হয়? () #  () @  () ~  () &

উত্তরঃ

১৬০

কনস্ট্রাক্টরের মূল কাজ কী? () ডাটা ডিলিট করা  () অবজেক্ট ইনিশিয়ালাইজ করা  () লুপ চালানো  () ইনপুট নেওয়া

উত্তরঃ

১৬১

যে ক্লাস থেকে গুণাবলী পাওয়া যায় তাকে কী বলা হয়? () সাব-ক্লাস  () বেস ক্লাস বা সুপার ক্লাস  () ডেরাইভড ক্লাস  () চাইল্ড ক্লাস

উত্তরঃ

১৬২

একটি সাব-ক্লাস একাধিক সুপার-ক্লাস থেকে ইনহেরিট করলে তাকে কী বলে? () সিঙ্গল ইনহেরিটেন্স  () মাল্টিপল ইনহেরিটেন্স () মাল্টিলেভেল ইনহেরিটেন্স  () হাইব্রিড ইনহেরিটেন্স

উত্তরঃ

১৬৩

ইনহেরিটেন্সের প্রধান সুবিধা কোনটি? () মেমরি ম্যানেজমেন্ট  () কোড পুনঃব্যবহারযোগ্যতা  () স্পিড বাড়ানো  () জটিলতা বাড়ানো

উত্তরঃ

১৬৪

মাল্টিলেভেল ইনহেরিটেন্স নিচের কোনটির মতো কাজ করে? () চেইন  () সার্কেল  () গ্রাফ  () সিঙ্গেল নোড

উত্তরঃ

১৬৫

ক্লাসের প্রাইভেট ডেটা এক্সেস করার জন্য কোন বিশেষ ফাংশন ব্যবহৃত হয়? () পাবলিক ফাংশন  () ফ্রেন্ড ফাংশন  () ভার্চুয়াল ফাংশন  () স্ট্যাটিক ফাংশন

উত্তরঃ

১৬৬

ফ্রেন্ড ফাংশন কল করার জন্য নিচের কোনটি প্রয়োজন নেই? () ক্লাস  () অবজেক্ট  () রিটার্ন টাইপ  () আর্গুমেন্ট

উত্তরঃ

১৬৭

প্রাইভেট সদস্যদের অ্যাক্সেসের মাধ্যমে কোন ঝুঁকি তৈরি হতে পারে? () স্টোরেজ ঝুঁকি  () নিরাপত্তা ঝুঁকি  () নেটওয়ার্ক ঝুঁকি  () হার্ডওয়্যার ঝুঁকি

উত্তরঃ

১৬৮

ডেটাকে বাইরের হস্তক্ষেপ থেকে রক্ষা করতে কোনটি ব্যবহৃত হয়? () অ্যাবস্ট্রাকশন  () এনক্যাপসুলেশন  () পলিমরফিজম  () ইনহেরিটেন্স

উত্তরঃ

১৬৯

অ্যাবস্ট্রাকশন বাস্তবায়নে কোনটি ব্যবহৃত হয়? () গেটার সেটার  () ইন্টারফেস এবং অ্যাবস্ট্রাক্ট ক্লাস  () প্রাইভেট ভেরিয়েবল  () লুপ

উত্তরঃ

১৭০

এনক্যাপসুলেশন বাস্তবায়নে কোন মডিফায়ার ব্যবহৃত হয়? () static  () public, private, protected  () constant  () void

উত্তরঃ

১৭১

কোনটি মূলত একটি "রক্ষাকবচ" বা Shield হিসেবে কাজ করে? () ইনহেরিটেন্স  () এনক্যাপসুলেশন  () পলিমরফিজম  () থ্রেড

উত্তরঃ

১৭২

প্রোগ্রামের একটি ছোট সেট যা একসাথে একাধিক কাজ করতে পারে তাকে কী বলে? () ফাংশন  () থ্রেড  () মেথড  () অবজেক্ট

উত্তরঃ

১৭৩

রান-টাইম পলিমরফিজমকে আর কী নামে ডাকা হয়? () আর্লি বাইন্ডিং  () লেট বাইন্ডিং  () স্ট্যাটিক বাইন্ডিং  () ফিক্সড বাইন্ডিং

উত্তরঃ

১৭৪

প্রাইভেট এবং ফাইনাল মেথড ওভাররাইড করা কি সম্ভব? () হ্যাঁ  () না  () শর্তসাপেক্ষে  () শুধু জাভাতে

উত্তরঃ

১৭৫

OOP এর ফলে প্রোগ্রামারদের প্রডাক্টিভিটি কেমন হয়? () কমে  () বাড়ে  () অপরিবর্তিত থাকে  () শূন্য হয়

উত্তরঃ

১৭৬

ক্লাসের বডির শেষে কোন চিহ্ন দিতে হয়? () ;  () :  () .  () ,

উত্তরঃ

১৭৭

inheritance এর ফলে ক্লাসগুলোর মধ্যে কী তৈরি হয়? () স্বাধীনতা  () নির্ভরতা  () বিভাজন  () দূরত্ব

উত্তরঃ

১৭৮

কোনটি ডাইনামিক মেমরি রিলিজ করতে ব্যবহৃত হয়? () কনস্ট্রাক্টর  () ডেস্ট্রাক্টর  () অপারেটর  () গেটার

উত্তরঃ

১৭৯

কোডকে মডুলার বোঝার জন্য সহজ করে কোনটি? () জটিল লুপ  () অ্যাবস্ট্রাকশন  () গ্লোবাল ভেরিয়েবল  () বড় ফাংশন

উত্তরঃ

১৮০

অবজেক্ট তৈরি করাকে আর কী বলা হয়? () Initialization  () Instantiation  () Declaration  () Definition

উত্তরঃ

১৮১

মেথড ওভারলোডিং কী এক থাকে? () প্যারামিটার সংখ্যা  () ফাংশনের নাম  () ডেটা টাইপ  () মেমরি লোকেশন

উত্তরঃ

১৮২

'Man' যদি একটি ক্লাস হয়, তবে 'Uncle' কী? () মেথড  () অবজেক্ট  () হেডার ফাইল  () কনস্ট্রাক্টর

উত্তরঃ

১৮৩

এনক্যাপসুলেশন নীতির লঙ্ঘন ঘটতে পারে কোনটির ব্যবহারে? () ফাংশন  () ইনহেরিটেন্স  () মেমরি  () লুপ

উত্তরঃ

১৮৪

কোনটি দ্রুত কার্যকরী? () রান-টাইম পলিমরফিজম  () কম্পাইল-টাইম পলিমরফিজম () ডাইনামিক বাইন্ডিং  () লেট বাইন্ডিং

উত্তরঃ

১৮৫

ভার্চুয়াল ফাংশন কোনটির সাথে জড়িত? () কম্পাইল-টাইম পলিমরফিজম  () রান-টাইম পলিমরফিজম () স্ট্যাটিক বাইন্ডিং  () ইনলাইন ফাংশন

উত্তরঃ

১৮৬

একটি ডেরাইভড ক্লাস প্যারেন্ট ক্লাসের কোন মেম্বার সরাসরি একসেস করতে পারে না? () public  () private  () protected  () static

উত্তরঃ

১৮৭

'Getter' এবং 'Setter' মেথড কোনটির সাথে সম্পর্কিত? () ইনহেরিটেন্স  () এনক্যাপসুলেশন  () পলিমরফিজম  () ওভারলোডিং

উত্তরঃ

১৮৮

OOP এর মাধ্যমে সফটওয়্যারকে বড় পরিসরে বাড়ানোকে কী বলে? () মডুলারিটি  () স্কেলেবিলিটি  () সিকিউরিটি  () ফ্লেক্সিবিলিটি

উত্তরঃ

১৮৯

ইন্টারনাল ডাটা সিকিউর রাখার জন্য কোনটি সবচেয়ে বেশি কার্যকর? () অ্যাবস্ট্রাকশন  () এনক্যাপসুলেশন  () ইনহেরিটেন্স  () ওভারলোডিং

উত্তরঃ

বিভিন্ন Program Example:

. Write a program using Object, Class, Inheritance, Polymorphism, Encapsulation, overridden

Answer:

#include <iostream>

using namespace std;

// এটা Base class

class Shape {

// ICT WIZARD নোটঃ Shape এটা বেইস বা মূল ক্লাস যেটাকে আমরা ইনহেরিট করব

public:

    virtual int getArea() {

        return 0;

    } // এখানে getArea হচ্ছে Shape ক্লাসের মেম্বার ফাংশন যা পরবর্তি ড্রাইভ ক্লাসগুলোতে অভাররাইড করব।

};

// এটা Derived class

class Rectangle: public Shape { // এখানে Rectangle নামে মূল ক্লাস shape কে ইনহেরিট করা হইছে

public:

    Rectangle(int a = 0, int b = 0) {

        width = a;

        height = b;

    }

    int getArea() {

        return (width * height);

    }

private:

    int width;

    int height;

};

int main() {

    Shape *shape; // এখানে Shape ক্লাসের পয়েন্টার ক্রিয়েট করা হইছে।

    Rectangle rec(10,7); // rec নামে অবজেক্ট ক্রিয়েট করা হইছে Rectangle ক্লাসের

    shape = &rec; // rec এর এড্রেসকে shape এর মধ্যে রাখা হয়েছে।

    cout << "Rectangle area: " << shape->getArea() << endl;

    // এখানে getArea ওভাররিডেনের মাধ্যমে পলিমরফিজম এচিভ হইছে।

    return 0;

}

. সি প্রোগ্রামিং ব্যবহার করে Array তে সংখ্যা নিয়ে তার গড় বের করুন। মার্ক - (১৬তম)

ANSWER:

#include <stdio.h>

int main() {

    int arr[4] = {10, 20, 30, 40};

    int sum = 0;

    float average = 0.0;

    for (int i = 0; i < 4; i++) {

        sum += arr[i];

    }

    average = sum / 4;

    printf("The average of the array elements is %.2f\n", average);

    return 0;

}

 

. Array তে ৪টি সংখ্যা নিয়ে তার যোগফল/গুণ

#include <stdio.h>

int main() {

    int arr[4] = {10, 20, 30, 40};

    int sum = 0;

    int product = 1;

    for (int i = 0; i < 4; i++) {

        sum += arr[i];

        product *= arr[i];

    }

    printf("The sum of the array elements is %d\n", sum);

    printf("The product of the array elements is %d\n", product);

    return 0;

}

. সি প্রোগ্রামিং ব্যবহার করে Leap Year বের করুন। মার্ক -

ANSWER:

#include <stdio.h>

int main() {

    int year;

    printf("Enter a year: ");

    scanf("%d", &year);

    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {

        printf("%d is a leap year.\n", year);

    }

    else {

        printf("%d is not a leap year.\n", year);

    }

    return 0;

}

 

. সি প্রোগ্রামিং ব্যবহার করে Prime number বের করুন। মার্ক -

Answer:

#include <stdio.h>

int main() {

    int num, i, count=0;

    printf("Enter a number: ");

    scanf("%d", &num);

    if(num<2) {

        printf("%d is not a prime number", num);

    }

    else {

        for(i=1; i<num; i++) {

            if(num%i == 0) {

                count=count+1;

            }

        }

    }

    if(count == 1) {

        printf("%d is a prime number", num);

    }

    else {

        printf("%d is not a prime number", num);

    }

    return 0;

}

. সি প্রোগ্রামিং ব্যবহার করে Odd or Even বের করুন। মার্ক -

ANSWER:

#include <stdio.h>

int main() {

    int num;

    printf("Enter a number: ");

    scanf("%d", &num);

    if(num % 2 == 0) {

        printf("%d is an even number", num);

    }

    else {

        printf("%d is an odd number", num);

    }

    return 0;

}

 

. লসাগু এবং গসাগু বের করার প্রোগ্রাম লিখুন? মার্ক -

ANSWER:

লসাগু বের করার প্রোগ্রাম:

#include <stdio.h>

int main() {

    int num1, num2, max, lcm_found = 0;

    printf("Enter two positive integers: ");

    scanf("%d %d", &num1, &num2);

    if (num1 > num2) {

        max = num1;

    } else {

        max = num2;

    }

    while (lcm_found == 0) {

        if (max % num1 == 0 && max % num2 == 0) {

            printf("The LCM of %d and %d is %d.\n", num1, num2, max);

            lcm_found = 1;

        }

        max++;

    }

    return 0;

}

গসাগু বের করার প্রোগ্রামঃ

#include <stdio.h>

int main() {

    int num1, num2, min, gcd_found = 0;

    printf("Enter two positive integers: ");

    scanf("%d %d", &num1, &num2);

    if (num1 < num2) {

        min = num1;

    } else {

        min = num2;

    }

    while (gcd_found == 0) {

        if (num1 % min == 0 && num2 % min == 0) {

            printf("The GCD is %d.\n", min);

            gcd_found = 1;

        }

        min--;

    }

    return 0;

}

. টি সংখ্যার গড় বের করার জন্য একটা প্রোগ্রাম লিখুন?

Answer:

#include <stdio.h>

int main() {

    int a, b, c;

    float average;

    printf("Enter three numbers: ");

    scanf("%d %d %d", &a, &b, &c);

    average = (a + b + c) / 3;

    printf("Average of three numbers is: %.2f\n", average);

    return 0;

}

 

. এমন একটি C program লিখুন যা একটি array তৈরি করে কতগুলো ডেটা রাখবে, তারপর ফলাফল হিসেবে ডেটাগুলোকে বিপরীত দিক থেকে print করবে। মার্ক (১৭তম)

ANSWER:

#include <stdio.h>

int main() {

    int size, i;

    printf("Enter Size of Array: ");

    scanf("%d", &size);

    int arr[size];

    printf("%d:\n", size);

    for(i = 0; i < size; i++) {

        scanf("%d", &arr[i]);

    }

    // মূল অ্যারে প্রিন্ট করা

    printf("\nমূল অ্যারে: ");

    for(i = 0; i < size; i++) {

        printf("%d ", arr[i]);

    }

    // অ্যারে রিভার্স করে প্রিন্ট করা

    printf("\n Reverse Array: ");

    for(i = size - 1; i >= 0; i--) {

        printf("%d ", arr[i]);

    }

    return 0;

}

১০. Fibonacci number প্রদর্শনের জন্য একটি C program লিখুন। মার্ক (১৭তম)

ANSWER:

#include <stdio.h>

int main() {

    int n = 10;

    int first = 0, second = 1, next;

    printf("First %d Fibonacci numbers:\n", n);

    for (int i = 0; i < n; ++i) {

        if (i <= 1) {

            next = i;

        } else {

            next = first + second;

            first = second;

            second = next;

        }

        printf("%d ", next);

    }

    printf("\n");

    return 0;

}

১১. ax²+bx+c=0 সমীকরণটির x চলকের মান নির্ণয়ের জন্য একটি কোড লিখুন। মার্ক (১৬তম)

Answer:

#include <stdio.h>

#include <math.h>

int main() {

    double a, b, c;

    double discriminant, root1, root2, realPart, imagPart;

    printf("a, b, c: ");

    scanf("%lf %lf %lf", &a, &b, &c);

    discriminant = b * b - 4 * a * c;

    // প্রকৃত ভিন্ন মূল

    if (discriminant > 0) {

        root1 = (-b + sqrt(discriminant)) / (2 * a);

        root2 = (-b - sqrt(discriminant)) / (2 * a);

        printf("root1 = %.2lf\nroot2 = %.2lf\n", root1, root2);

    }

    // প্রকৃত সমান মূল

    else if (discriminant == 0) {

        root1 = root2 = -b / (2 * a);

        printf("root1 = root2 = %.2lf\n", root1);

    }

    // জটিল মূল (complex roots)

    else {

        realPart = -b / (2 * a);

        imagPart = sqrt(-discriminant) / (2 * a);

        printf("root1 = %.2lf + %.2lfi\n", realPart, imagPart);

        printf("root2 = %.2lf - %.2lfi\n", realPart, imagPart);

    }

    return 0;

}

১২. ৩টি সংখ্যার মধ্যে বড়/ছোট সংখ্যা বের করার জন্য একটা প্রোগ্রাম লিখুন?

ANSWER:

#include <stdio.h>

int main() {

    int num1, num2, num3;

    int largest, smallest;

    printf("Enter 3 Number:");

    scanf("%d %d %d", &num1, &num2, &num3);

    // সবচেয়ে বড় সংখ্যা বের করা

    if (num1 >= num2 && num1 >= num3) {

        largest = num1;

    } else if (num2 >= num1 && num2 >= num3) {

        largest = num2;

    } else {

        largest = num3;

    }

    // সবচেয়ে ছোট সংখ্যা বের করা

    if (num1 <= num2 && num1 <= num3) {

        smallest = num1;

    } else if (num2 <= num1 && num2 <= num3) {

        smallest = num2;

    } else {

        smallest = num3;

    }

    printf("\n Large Number: %d\n", largest);

    printf(" Small Number: %d\n", smallest);

    return 0;

}


১৩. চতুর্ভুজ/ ত্রিভুজের ক্ষেত্রফল বের করার জন্য একটা প্রোগ্রাম লিখুন?

#include <stdio.h>

int main() {

    float base, height, area;

    printf("Enter the Base & Height of the rectangle: ");

    scanf("%f, %f ", &base, &height);

    area = base * height;

    printf("Area of the rectangle is: %.2f\n", area);

    printf("Enter the Base & Height of the triangle: ");

    scanf("%f, %f ", &base, &height);

    area = 0.5 * base * height;

    printf("Area of the triangle is: %.2f\n", area);

    return 0;

}

 

১৪. ১ থেকে ১০০ সংখ্যাগুলোর যোগফল বের করার প্রোগ্রাম লিখুন?

#include <stdio.h>

int main() {

    int i, sum=0;

    for(i=1; i<=100; i++) {

        sum=sum+i;

    }

    printf("Sum of numbers from 1 to 100 is: %d\n", sum);

    return 0;

}

১৫. ১ থেকে n তম সংখ্যাগুলোর যোগফল বের করার প্রোগ্রাম লিখুন?

#include <stdio.h>

int main() {

    int n, i, sum=0;

    printf("Enter a number: ");

    scanf("%d", &n);

    for(i=1; i<=n; i++) {

        sum=sum+i;

    }

    printf("Sum of numbers from 1 to %d is: %d\n", n, sum);

    return 0;

}

 

১৬. ১ থেকে ১০০ সংখ্যাগুলোর গুণফল বের করার প্রোগ্রাম লিখুন?

#include <stdio.h>

int main() {

    int i, product=1;

    for(i=1; i<=100; i++) {

        product *= i;

    }

    printf("Product of numbers from 1 to 100 is: %d\n", product);

    return 0;

}

১৭. পূর্ণ সংখ্যার ফ্যাক্টোরিয়াল বের করার জন্য একটা প্রোগ্রাম লিখুন? (১৮তম)

#include <stdio.h>

int main() {

    int num, fat = 1, i;

    printf("Enter a number: ");

    scanf("%d", &num);

    for (i = 1; i <= num; i++) {

        fat *= i;

    }

    printf("Factorial of %d: %d\n", num, fat);

    return 0;

}

১৮. দুটি ইনপুটের ক্ষেত্রে AND/OR/XOR বের করার জন্য একটা প্রোগ্রাম লিখুন?

#include <stdio.h>

int main() {

    int num1, num2;

    printf("Enter two numbers: ");

    scanf("%d %d", &num1, &num2);

    int and_result = num1 & num2;  // bitwise AND operation

    int or_result = num1 | num2;   // bitwise OR operation

    int xor_result = num1 ^ num2;  // bitwise XOR operation

    printf("AND: %d\n", and_result);

    printf("OR: %d\n", or_result);

    printf("XOR: %d\n", xor_result);

    return 0;

}

১৯. If....else দিয়ে একটা প্রোগ্রাম লিখুন? অথবা জোড়/বিজোড় বের করার একটা প্রোগ্রাম লিখুন।

#include <stdio.h>

int main() {

    int num;

    printf("Enter a number: ");

    scanf("%d", &num);

    if (num % 2 == 0) {

        printf("%d is even.\n", num);

    } else {

        printf("%d is odd.\n", num);

    }

    return 0;

}

২০. পজিটিভ নেগেটিভ নাম্বার বের করার জন্য একটা প্রোগ্রাম লিখুন?

#include <stdio.h>

int main() {

    int num;

    printf("Enter a number: ");

    scanf("%d", &num);

    if (num >= 0) {

        printf("%d is a positive number.\n", num);

    } else {

        printf("%d is a negative number.\n", num);

    }

    return 0;

}

২১. For/While/Do-While লুপ ব্যবহার করে একটি প্রোগ্রাম লিখুন / ১ থেকে ১০০ প্রিন্ট করার জন্য একটা প্রোগ্রাম লিখুন?

For Loop:

#include <stdio.h>

int main() {

    int i;

    for (i = 1; i <= 100; i++) {

        printf("%d\n", i);

    }

    return 0;

}

While Loop:

#include <stdio.h>  // ইনপুট/আউটপুট ফাংশন ব্যবহারের জন্য হেডার ফাইল

int main() {

    int i = 1;

    while (i <= 100) {

        printf("%d ", i);

        i++;

    }

    return 0;

}

Do-While Loop:

#include <stdio.h>

int main() {

    int i = 1;

    do {

        printf("%d ", i);

        i++;

    } while (i <= 100);

    return 0;

}

সম্ভাব্য MCQ প্রশ্ন

নং

প্রশ্ন

উত্তর

১৯০

C/C++ এ একটি int ডেটা টাইপ সাধারণত কত Byte মেমরি ব্যবহার করে? ক) 1 বাইট  খ) 2 বাইট  গ) 4 বাইট  ঘ) 8 বাইট

উত্তরঃ গ

১৯১

Decimal মান সংরক্ষণের জন্য কোন ডেটা টাইপটি ব্যবহৃত হয়? ক) int  খ) char  গ) float  ঘ) void

উত্তরঃ গ

১৯২

C/C++ এ Character সংরক্ষণের জন্য কোন ডেটা টাইপ ব্যবহৃত হয়? ক) int  খ) char  গ) string  ঘ) float

উত্তরঃ খ

১৯৩

ক্যারেক্টারের জন্য কোণ ধরনের array ব্যবহার করা হয়? ক) str  খ) character  গ) arr  ঘ) char

উত্তরঃ ঘ

১৯৪

নিচের কোডের আউটপুট হবে? int main() {   char greetings[] = "ICT Wizard";   printf("%c", greetings[0]);   return 0; } ক) I  খ) ০  গ) d  ঘ) null

উত্তরঃ ক

১৯৫

দুইটা string তুলনা করতে ব্যবহার হয়? ক) Strcmp  খ) strcat  গ) Strlen  ঘ) strcomp

উত্তরঃ ক

১৯৬

কিভাবে arr অ্যারের শেষ ইলিমেন্টস একসেস করা যাবে? ক) arr[n]  খ) arr[n-1]  গ) arr[n+1]  ঘ) arr[last]

উত্তরঃ খ

১৯৭

Array এর জন্য কোনটি ঠিক হবে? ক) data type একই  খ) আলাদা data type  গ) একই স্কোপ  ঘ) কোনটাই না

উত্তরঃ ক

১৯৮

নিচের কোডের আউটপুট কি হবে? int matrix[2][3] = { {1, 4, 2}, {3, 6, 8} }; printf("%d", matrix[0][0]); ক) 1  খ) 3  গ) 0  ঘ) Null

উত্তরঃ ক

১৯৯

int ictWizardStd[] = {10, 25, 50, 75, 100}; মেমোরিতে এই array size হবে - ক) 20  খ) 5  গ) 4  ঘ) Undefined

উত্তরঃ ক

২০০

কোনটা সঠিক ভ্যারিয়েবল ডিক্লারেশন নয়? ক) char grade = 'A';  খ) double pi = 3.14159; গ) int Max-value;  ঘ) char name = "Suman";

উত্তরঃ গ

২০১

প্রোগ্রামের ফ্লো নিয়ন্ত্রণে নিচের কোনটি Conditional কন্ট্রোল স্টেটমেন্ট? ক. For  খ. While  গ. if-else  ঘ. do-while

উত্তর: গ

২০২

যখন পুনরাবৃত্তির সংখ্যা আগে থেকে জানা থাকে, তখন কোন লুপ ব্যবহার করা সুবিধাজনক? ক. while লুপ  খ. for লুপ  গ. do-while লুপ  ঘ. if-else স্টেটমেন্ট

উত্তর: খ

২০৩

কোন লুপের ক্ষেত্রে শর্ত পরীক্ষা করার আগেই কোড ব্লকটি কমপক্ষে একবার নির্বাহ হয়? ক. for লুপ  খ. while লুপ  গ. do-while লুপ  ঘ. else if স্টেটমেন্ট

উত্তর: গ

২০৪

switch স্টেটমেন্টে একটি case এক্সিকিউটের পর অন্য case ব্লকগুলো এড়াতে কোনটি ব্যবহার করা হয়? ক. Continue  খ. Exit  গ. Break  ঘ. Default

উত্তর: গ

২০৫

যদি লুপের শর্ত সবসময় সত্য থাকে এবং তা মিথ্যা করার কোনো ব্যবস্থা না থাকে, তবে কী ঘটে? ক. নেস্টেড লুপ তৈরি হয়  খ. ইনফিনিট লুপ গ. কম্পাইলার এরর দেয়  ঘ. লজিক্যাল এরর

উত্তর: গ (ইনফিনিট লুপ)

২০৬

নিচের কোডটির আউটপুট কত হবে? int i = 0; while (i < 2) {   printf("%d", i);   i++; } ক. 01  খ. 12  গ. 012  ঘ. 0 12

উত্তর: ক

২০৭

একাধিক শর্ত পরীক্ষা করে একটিমাত্র শর্ত পূরণের ভিত্তিতে কাজ সম্পন্ন করতে কোনটি ব্যবহৃত হয়? ক. if স্টেটমেন্ট  খ. if-else স্টেটমেন্ট  গ. Else-if স্টেটমেন্ট  ঘ. নেস্টেড if স্টেটমেন্ট

উত্তর: গ

২০৮

switch স্টেটমেন্টে প্রদত্ত মান কোনো case লেবেলের সাথে না মিললে কোনটি নির্বাহ হয়? ক. Break  খ. Default  গ. Continue  ঘ. Case

উত্তর: খ

২০৯

কোন লুপকে এন্ট্রি-কন্ট্রোল লুপ বলা হয়? ক. do-while  খ. for  গ. for ও while  ঘ. for, while ও do-while

উত্তর: গ

২১০

নিচের কোডটির আউটপুট কত হবে? int time = 9; if(time < 10) {   printf("Morning"); } else {   printf("Evening"); } ক. Morning  খ. Evening  গ. Error  ঘ. MorningEvening

উত্তর: ক

২১১

একটি ক্লাস হলো: ক. ফিজিক্যাল সত্তা  খ. বাস্তব-জগতের বস্তু গ. অবজেক্ট তৈরি করার টেমপ্লেট  ঘ. একটি অবজেক্টের মধ্যে থাকা মেথড

উত্তরঃ গ

২১২

একটি অবজেক্ট হলো: ক. যৌক্তিক কাঠামো  খ. একটি ক্লাসের ইনস্ট্যান্স গ. অ্যাবস্ট্রাক্ট ডেটা টাইপ  ঘ. মেথড বা ফাংশন

উত্তরঃ খ

২১৩

Java-তে একটি ক্লাসের অবজেক্ট তৈরি করতে কোন কি-ওয়ার্ডটি ব্যবহৃত হয়? ক. create  খ. new  গ. object  ঘ. instanceof

উত্তরঃ খ

২১৪

একটি অবজেক্ট তৈরি করার প্রক্রিয়াকে কী বলা হয়? ক. ইনহেরিটেন্স  খ. পলিমরফিজম  গ. এনক্যাপসুলেশন  ঘ. ইনস্ট্যানসিয়েশন

উত্তরঃ ঘ

২১৫

যদি আপনার একটি Car ক্লাস থাকে, তাহলে অবজেক্ট তৈরির জন্য নিচের কোনটি বৈধ উপায়? ক. Car myCar = new Car;  খ. new Car(); গ. Car myCar = new Car();  ঘ. myCar = Car();

উত্তরঃ গ

২১৬

একটি ক্লাসে কী থাকতে পারে? ক. ভ্যারিয়েবল এবং মেথড  খ. শুধুমাত্র ভ্যারিয়েবল গ. শুধুমাত্র মেথড  ঘ. অন্যান্য অবজেক্ট, কিন্তু মেথড নয়

উত্তরঃ ক

২১৭

একটিমাত্র ক্লাস থেকে কতগুলো অবজেক্ট তৈরি করা যেতে পারে? ক. শুধুমাত্র একটি  খ. শুধুমাত্র দুটি  গ. একাধিক  ঘ. একটি নির্দিষ্ট সংখ্যা

উত্তরঃ গ

২১৮

Setter এবং getter মেথড ব্যবহার করা কোন OOP ধারণা নামে পরিচিত? A. এনক্যাপসুলেশন  B. পলিমরফিজম  C. ইনহেরিটেন্স  D. রিকারশন

উত্তরঃ A

২১৯

এনক্যাপসুলেশন বাস্তবায়নের জন্য কোন অ্যাক্সেস মডিফায়ারটি সবচেয়ে গুরুত্বপূর্ণ? ক. public  খ. private  গ. protected  ঘ. Static

উত্তরঃ খ

২২০

Java-তে একটি ক্লাসকে ইনহেরিটেন্স সূত্রে পেতে কোন কি-ওয়ার্ডটি ব্যবহৃত হয়? ক. implements  খ. extends  গ. inherits  ঘ. uses

উত্তরঃ খ

২২১

যে ক্লাস থেকে একটি সাবক্লাস ইনহেরিটেন্সসূত্রে পায়, সেই ক্লাসের নাম কী? ক. চাইল্ড ক্লাস  খ. ডেরাইভড ক্লাস  গ. প্যারেন্ট ক্লাস  ঘ. সিবলিং ক্লাস

উত্তরঃ গ

২২২

নিচের কোনটি Java-তে ইনহেরিটেন্স এর ধরন নয়? ক. সিঙ্গেল ইনহেরিট্যান্স  খ. মাল্টিপল ইনহেরিট্যান্স গ. হায়ারারকিক্যাল ইনহেরিট্যান্স  ঘ. মাল্টিলেভেল ইনহেরিট্যান্স

উত্তরঃ খ

২২৩

যদি একটি ক্লাস B ক্লাস A কে extends করে, তাহলে সম্পর্কটি কী? ক. A is a B  খ. B is a A  গ. A এবং B সম্পর্কহীন  ঘ. ক. এবং খ. উভয়ই সঠিক

উত্তরঃ খ

২২৪

একটি সাবক্লাসের কনস্ট্রাক্টরে super কি-ওয়ার্ড ব্যবহারের উদ্দেশ্য কী? ক. চাইল্ড ক্লাস থেকে একটি মেথড কল করা। খ. প্যারেন্ট ক্লাসের কনস্ট্রাক্টরকে কল করা। গ. অন্য একটি সিবলিং ক্লাসের কনস্ট্রাক্টরকে কল করা। ঘ. প্যারেন্ট ক্লাসের একটি নতুন অবজেক্ট তৈরি করা।

উত্তরঃ খ

২২৫

যখন একটি চাইল্ড ক্লাসের মেথড তার প্যারেন্ট ক্লাসের একটি মেথডের মতোই, তখন তাকে কী বলা হয়? ক. মেথড ওভারলোডিং  খ. মেথড ওভাররাইডিং গ. মেথড হাইডিং  ঘ. মেথড কলিং

উত্তরঃ খ

২২৬

কোন অ্যাক্সেস মডিফায়ার একটি মেথডকে সাবক্লাসে ওভাররাইড হওয়া থেকে রক্ষা করে? ক. private  খ. protected  গ. public  ঘ. final

উত্তরঃ ঘ

২২৭

পলিমরফিজম বলতে কী বোঝায়? ক. ডাটা ও মেথডকে একসাথে একটি ইউনিট হিসেবে রাখা। খ. একটি অবজেক্টের বহু রূপ ধারণ করার ক্ষমতা। গ. একটি নতুন ক্লাসকে বিদ্যমান ক্লাসের বৈশিষ্ট্য প্রদান করা। ঘ. জটিল ইমপ্লিমেন্টেশন লুকানো।

উত্তর: খ

২২৮

মেথড ওভারলোডিং পলিমরফিজমের কোন প্রকারের উদাহরণ? ক. রানটাইম পলিমরফিজম  খ. কম্পাইল-টাইম পলিমরফিজম গ. ডায়নামিক পলিমরফিজম  ঘ. ইনহেরিট্যান্স

উত্তর: খ

২২৯

মেথড ওভাররাইডিং পলিমরফিজমের কোন প্রকারের উদাহরণ? ক. স্ট্যাটিক বাইন্ডিং  খ. রানটাইম পলিমরফিজম গ. ওভারলোডিং  ঘ. কনস্ট্রাক্টর ওভারলোডিং

উত্তর: খ

২৩০

নিচের কোনটি রানটাইম পলিমরফিজম নামেও পরিচিত? ক. স্ট্যাটিক বাইন্ডিং  খ. ডায়নামিক বাইন্ডিং গ. কম্পাইল-টাইম বাইন্ডিং  ঘ. আর্লি বাইন্ডিং

উত্তর: খ

২৩১

একটি ক্লাসে একই নামের একাধিক মেথড থাকতে পারে, তবে তাদের প্যারামিটার ভিন্ন হবে – এই প্রক্রিয়াটিকে কী বলে? ক. মেথড ওভাররাইডিং  খ. মেথড ওভারলোডিং  গ. ইনহেরিট্যান্স  ঘ. এনক্যাপসুলেশন

উত্তর: খ

২৩২

Constructor এর মূল উদ্দেশ্য কী? ক. ক্লাসের মেথডগুলোকে কল করা।  খ. ক্লাসের মেমরি মুক্ত করা। গ. একটি নতুন অবজেক্ট তৈরি করা।  ঘ. অবজেক্টের ইনস্ট্যান্স ভ্যারিয়েবলগুলো ইনিশিয়ালাইজ করা।

উত্তর: ঘ

২৩৩

যদি একটি ক্লাসে কোনো কনস্ট্রাক্টর না থাকে, তবে কী ঘটে? ক. ওই ক্লাসের অবজেক্ট তৈরি করা সম্ভব নয়। খ. কম্পাইলার স্বয়ংক্রিয়ভাবে একটি ডিফল্ট কনস্ট্রাক্টর সরবরাহ করে। গ. ক্লাসটি একটি অ্যাবস্ট্রাক্ট ক্লাসে পরিণত হয়।  ঘ. একটি রানটাইম এরর ঘটে।

উত্তর: খ

২৩৪

একটি সাবক্লাস থেকে প্যারেন্ট ক্লাসের কনস্ট্রাক্টরকে কল করার জন্য কোন কি-ওয়ার্ডটি ব্যবহৃত হয়? ক. this  খ. parent  গ. extends  ঘ. super()

উত্তর: ঘ

২৩৫

_____ is used in C to write a single character to a file. [49th BCS] ক) fputs()  খ) fputc()  গ) fput()  ঘ) fwrite()

উত্তর: খ

২৩৬

In OOP, _____ is used to restrict access to certain members of an object. [49th BCS] ক) Inheritance  খ) Polymorphism  গ) Abstraction  ঘ) Encapsulation

উত্তর: ঘ

২৩৭

What does the 'continue' statement do inside a loop? [49th BCS] ক) Exits the loop entirely  খ) Terminates the program গ) re-execute the loop twice  ঘ) Skip the rest of the current iteration and move to next

উত্তর: ঘ

২৩৮

Which loop is an exit controlled loop? [49th BCS] ক) for loop  খ) while loop  গ) do while loop  ঘ) None of the above

উত্তর: গ

২৩৯

Which one is a compile time polymorphism? [49th BCS] ক) Virtual function  খ) Operator overloading গ) Function overriding  ঘ) Dynamic binding

উত্তর: খ

২৪০

For an n-element min-Heap: [49th BCS] ক) The smallest element can be found anywhere in the heap খ) It is a type of binary search tree. গ) Accessing an arbitrary element is an O(1) operation ঘ) The largest element is always at the root

উত্তর: গ

২৪১

In C, to retain the values of variables between function calls, we should use: [49th BCS] ক) auto  খ) extern  গ) static  ঘ) register

উত্তর: গ

২৪২

Suppose a C Program has floating constant 1.1414, what's the best way to convert it as a float data type? [Officer, IT - SB, JB'19] ক) (float)1.1414  খ) float(1.1414)  গ) 1.1414f or 1.144F  ঘ) None of this

উত্তর: গ

২৪৩

For a given integer, which of the following operators can be used to set and reset a particular bit respectively? [Officer, IT - SB, JB'19] ক) | and &  খ) || and &&  গ) & and |  ঘ) && and ||

উত্তর: ক

২৪৪

Let x be an integer which can take a value of 0 or 1. The Statement - If (x==0) {X=1;} else { x=0; } is equivalent to which of the following? [Officer, IT SB, JB'19] ক) x=1+x  খ) x=1-x  গ) x=x-1  ঘ) x=1%x

উত্তর: খ

২৪৫

Consider the following variable declarations and definitions in C i. int var_9=1   ii. int 9_var=2   iii. int _=3 Choose the correct statement w.r.t above variables. [Officer, IT SB, JB'19] a) Both i) and ii) are valid  b) Only i) is valid c) Both i) and iii) are valid  d) All of these

উত্তর: c

২৪৬

নিচের কোন প্রোগ্রামিং ভাষাটি অবজেক্ট ওরিয়েন্টেড ফিচারের জন্য পরিচিত? (ক) C  (খ) C++  (গ) Assembly  (ঘ) Basic

উত্তরঃ খ

২৪৭

C++ এ Method Overriding এর জন্য নিচের কোন কীওয়ার্ডটি দরকার হতে পারে? (ক) static  (খ) virtual  (গ) const  (ঘ) friend

উত্তরঃ খ

২৪৮

Find Output: [আউটপুট নির্ণয় করো] [BB AD ICT'25] int fun(int *p) {   *p = *p + 10;   return *p; } int main() {   int x = 5;   cout << fun(&x);   return 0; } (a) 15  (b) 10  (c) 25  (d) 5 ব্যাখ্যা: x এর অ্যাড্রেস পাঠানো হয়েছে, তাই ফাংশনের ভেতর *p এর মান ৫+১০=১৫ হবে এবং সেটিই প্রিন্ট হবে।

উত্তর: (a) 15

২৪৯

Find Output: [আউটপুট নির্ণয় করো] [BB AD ICT'25] int main() {   int x = 3, y = 2;   if (x == 3)     y = 2;   else     y = 3;   cout << x << " " << y << endl;   return 0; } (a) 33  (b) 32  (c) 23  (d) 31 ব্যাখ্যা: যেহেতু x == 3 সত্য, তাই y = 2 এসাইন হবে এবং আউটপুট হবে 3 2।

উত্তর: (b) 32

২৫০

Which of the following does NOT achieve encapsulation? [BB AD ICT'25] (a) Using private access specifier  (b) Using classes in OOP (c) Using getter/setter methods  (d) Using global variables ব্যাখ্যা: গ্লোবাল ভ্যারিয়েবল যেকোনো জায়গা থেকে অ্যাক্সেস করা যায়, যা এনক্যাপসুলেশনের পরিপন্থী।

উত্তর: (d)

২৫১

Operator preferred to overload as a global function? [BB AD ICT'25] (a) Postfix ++  (b) Comparison  (c) Arithmetic <<  (d) Prefix ++

উত্তর: c


No comments
Post a Comment