1. What is the first step in computer-based problem-solving? / কম্পিউটার-ভিত্তিক সমস্যা সমাধানের প্রথম ধাপ কোনটি?
- Writing the code / কোড লেখা
- Defining the problem / সমস্যা সংজ্ঞায়িত করা
- Compiling the program / প্রোগ্রাম কম্পাইল করা
- Testing the solution / সমাধান পরীক্ষা করা
Correct Answer (সঠিক উত্তর): b) Defining the problem / সমস্যা সংজ্ঞায়িত করা
Explanation (ব্যাখ্যা): Before attempting to solve a problem, it is crucial to clearly understand and define what the problem is. This involves identifying the inputs, outputs, and constraints. / কোনো সমস্যা সমাধানের চেষ্টা করার আগে, সমস্যাটি কী তা স্পষ্টভাবে বোঝা এবং সংজ্ঞায়িত করা অত্যন্ত গুরুত্বপূর্ণ। এর মধ্যে ইনপুট, আউটপুট এবং সীমাবদ্ধতা চিহ্নিত করা জড়িত।
2. An algorithm is best described as: / একটি অ্যালগরিদমকে সবচেয়ে ভালোভাবে বর্ণনা করা যায়:
- A computer program / একটি কম্পিউটার প্রোগ্রাম
- A high-level language / একটি উচ্চ-স্তরের ভাষা
- A step-by-step procedure for solving a problem / একটি সমস্যা সমাধানের জন্য ধাপে ধাপে পদ্ধতি
- A flowchart diagram / একটি ফ্লোচার্ট ডায়াগ্রাম
Correct Answer (সঠিক উত্তর): c) A step-by-step procedure for solving a problem / একটি সমস্যা সমাধানের জন্য ধাপে ধাপে পদ্ধতি
Explanation (ব্যাখ্যা): An algorithm is a finite set of well-defined instructions or steps to solve a specific problem or perform a computation. It is independent of any programming language. / একটি অ্যালগরিদম হলো একটি নির্দিষ্ট সমস্যা সমাধান বা গণনা সম্পাদনের জন্য সু-সংজ্ঞায়িত নির্দেশের একটি সসীম সেট। এটি যেকোনো প্রোগ্রামিং ভাষা থেকে স্বাধীন।
3. Time complexity of an algorithm measures: / একটি অ্যালগরিদমের টাইম কমপ্লেক্সিটি (Time complexity) পরিমাপ করে:
- The time it takes to write the algorithm / অ্যালগরিদমটি লিখতে যে সময় লাগে
- The number of lines in the code / কোডের লাইনের সংখ্যা
- The amount of memory it uses / এটি যে পরিমাণ মেমরি ব্যবহার করে
- The amount of time it takes to run as a function of the input size / ইনপুটের আকারের ওপর নির্ভর করে এটি চলতে যে পরিমাণ সময় নেয়
Correct Answer (সঠিক উত্তর): d) The amount of time it takes to run as a function of the input size / ইনপুটের আকারের ওপর নির্ভর করে এটি চলতে যে পরিমাণ সময় নেয়
Explanation (ব্যাখ্যা): Time complexity is a computational complexity that describes the amount of computer time it takes to run an algorithm, typically expressed using Big O notation as a function of the length of the input. / টাইম কমপ্লেক্সিটি হলো একটি গণনামূলক জটিলতা যা একটি অ্যালগরিদম চালাতে যে পরিমাণ কম্পিউটার সময় লাগে তা বর্ণনা করে, সাধারণত ইনপুটের আকারের একটি ফাংশন হিসাবে বিগ O নোটেশন ব্যবহার করে প্রকাশ করা হয়।
4. Space complexity of an algorithm measures: / একটি অ্যালগরিদমের স্পেস কমপ্লেক্সিটি (Space complexity) পরিমাপ করে:
- The size of the hard disk / হার্ড ডিস্কের আকার
- The amount of memory space required by the algorithm to run / অ্যালগরিদমটি চালানোর জন্য প্রয়োজনীয় মেমরি স্পেসের পরিমাণ
- The complexity of the algorithm’s logic / অ্যালগরিদমের যুক্তির জটিলতা
- The number of variables used / ব্যবহৃত ভেরিয়েবলের সংখ্যা
Correct Answer (সঠিক উত্তর): b) The amount of memory space required by the algorithm to run / অ্যালগরিদমটি চালানোর জন্য প্রয়োজনীয় মেমরি স্পেসের পরিমাণ
Explanation (ব্যাখ্যা): Space complexity refers to the total amount of memory space used by an algorithm/program, including the space of input values for execution. / স্পেস কমপ্লেক্সিটি বলতে একটি অ্যালগরিদম/প্রোগ্রাম দ্বারা ব্যবহৃত মোট মেমরি স্পেসকে বোঝায়, যার মধ্যে সম্পাদনের জন্য ইনপুট মানগুলির স্থানও অন্তর্ভুক্ত।
5. In a flowchart, what does a rectangle symbol represent? / একটি ফ্লোচার্টে, একটি আয়তক্ষেত্র প্রতীক কী উপস্থাপন করে?
- Start/End / শুরু/শেষ
- Input/Output / ইনপুট/আউটপুট
- Process / প্রক্রিয়া
- Decision / সিদ্ধান্ত
Correct Answer (সঠিক উত্তর): c) Process / প্রক্রিয়া
Explanation (ব্যাখ্যা): A rectangle in a flowchart represents a process, such as a calculation or an assignment operation (e.g., `x = 5 + y`). / একটি ফ্লোচার্টে একটি আয়তক্ষেত্র একটি প্রক্রিয়াকে উপস্থাপন করে, যেমন একটি গণনা বা একটি অ্যাসাইনমেন্ট অপারেশন (যেমন, `x = 5 + y`)।
6. The diamond symbol in a flowchart is used for: / একটি ফ্লোচার্টে হীরক (diamond) প্রতীকটি ব্যবহৃত হয়:
- Data Input / ডেটা ইনপুট
- Decision making / সিদ্ধান্ত গ্রহণের জন্য
- Termination / সমাপ্তি
- Connector / সংযোগকারী
Correct Answer (সঠিক উত্তর): b) Decision making / সিদ্ধান্ত গ্রহণের জন্য
Explanation (ব্যাখ্যা): The diamond symbol represents a decision point in a program, typically a question with a “yes” or “no” answer, which determines the flow of the program. / হীরক প্রতীকটি একটি প্রোগ্রামের একটি সিদ্ধান্ত বিন্দুকে উপস্থাপন করে, সাধারণত একটি “হ্যাঁ” বা “না” উত্তরসহ একটি প্রশ্ন, যা প্রোগ্রামের প্রবাহ নির্ধারণ করে।
7. What is pseudo-code? / সিউডো-কোড (Pseudo-code) কী?
- A machine-readable code / একটি মেশিন-পঠনযোগ্য কোড
- An informal high-level description of an algorithm’s operating principle / একটি অ্যালগরিদমের কার্যকারিতার একটি অনানুষ্ঠানিক উচ্চ-স্তরের বর্ণনা
- A program written in assembly language / অ্যাসেম্বলি ভাষায় লেখা একটি প্রোগ্রাম
- A compiled code / একটি কম্পাইল করা কোড
Correct Answer (সঠিক উত্তর): b) An informal high-level description of an algorithm’s operating principle / একটি অ্যালগরিদমের কার্যকারিতার একটি অনানুষ্ঠানিক উচ্চ-স্তরের বর্ণনা
Explanation (ব্যাখ্যা): Pseudo-code is a plain language description of the steps in an algorithm. It is not an actual programming language but uses a structured format to make it easy to convert into a real programming language. / সিউডো-কোড হলো একটি অ্যালগরিদমের ধাপগুলোর একটি সরল ভাষার বর্ণনা। এটি কোনো প্রকৃত প্রোগ্রামিং ভাষা নয় তবে একটি কাঠামোবদ্ধ বিন্যাস ব্যবহার করে যাতে এটি সহজেই একটি বাস্তব প্রোগ্রামিং ভাষায় রূপান্তরিত করা যায়।
8. A decision table is used for: / একটি ডিসিশন টেবিল (decision table) ব্যবহৃত হয়:
- Designing complex logic with multiple conditions / একাধিক শর্তসহ জটিল যুক্তি ডিজাইন করার জন্য
- Storing data in a tabular format / সারণী বিন্যাসে ডেটা সংরক্ষণ করার জন্য
- Drawing flowcharts / ফ্লোচার্ট আঁকার জন্য
- Writing pseudo-code / সিউডো-কোড লেখার জন্য
Correct Answer (সঠিক উত্তর): a) Designing complex logic with multiple conditions / একাধিক শর্তসহ জটিল যুক্তি ডিজাইন করার জন্য
Explanation (ব্যাখ্যা): A decision table is a concise visual representation for specifying which actions to perform depending on a given set of conditions. It helps in modeling complex business rules. / একটি ডিসিশন টেবিল হলো একটি সংক্ষিপ্ত ভিজ্যুয়াল উপস্থাপনা যা নির্দিষ্ট করে যে শর্তের একটি সেটের উপর নির্ভর করে কোন ক্রিয়াগুলি সম্পাদন করতে হবে। এটি জটিল ব্যবসায়িক নিয়ম মডেল করতে সহায়তা করে।
9. Which of the following is a key concept of structured programming? / নিচের কোনটি স্ট্রাকচার্ড প্রোগ্রামিংয়ের একটি মূল ধারণা?
- Using `GOTO` statements extensively / `GOTO` স্টেটমেন্টের ব্যাপক ব্যবহার
- Breaking down a program into smaller, manageable modules or functions / একটি প্রোগ্রামকে ছোট, পরিচালনাযোগ্য মডিউল বা ফাংশনে বিভক্ত করা
- Writing the entire program in a single block of code / পুরো প্রোগ্রামটি একটি একক কোড ব্লকে লেখা
- Using global variables for all data / সমস্ত ডেটার জন্য গ্লোবাল ভেরিয়েবল ব্যবহার করা
Correct Answer (সঠিক উত্তর): b) Breaking down a program into smaller, manageable modules or functions / একটি প্রোগ্রামকে ছোট, পরিচালনাযোগ্য মডিউল বা ফাংশনে বিভক্ত করা
Explanation (ব্যাখ্যা): Structured programming is a paradigm that emphasizes clarity, quality, and development time by using subroutines (functions/procedures), block structures (like `if/else`, `while`), and loops, and avoiding `GOTO` statements. / স্ট্রাকচার্ড প্রোগ্রামিং এমন একটি প্যারাডাইম যা সাবরুটিন (ফাংশন/প্রসিডিউর), ব্লক স্ট্রাকচার (যেমন `if/else`, `while`) এবং লুপ ব্যবহার করে এবং `GOTO` স্টেটমেন্ট পরিহার করে স্পষ্টতা, গুণমান এবং বিকাশের সময়কে গুরুত্ব দেয়।
10. Which language is directly understood by the computer’s CPU? / কোন ভাষা কম্পিউটারের সিপিইউ (CPU) সরাসরি বুঝতে পারে?
- High-level language / উচ্চ-স্তরের ভাষা
- Assembly language / অ্যাসেম্বলি ভাষা
- Machine language / মেশিন ভাষা
- Pseudo-code / সিউডো-কোড
Correct Answer (সঠিক উত্তর): c) Machine language / মেশিন ভাষা
Explanation (ব্যাখ্যা): Machine language, consisting of binary code (0s and 1s), is the only language that a computer’s central processing unit (CPU) can execute directly. / মেশিন ভাষা, যা বাইনারি কোড (0 এবং 1) দ্বারা গঠিত, একমাত্র ভাষা যা একটি কম্পিউটারের সেন্ট্রাল প্রসেসিং ইউনিট (CPU) সরাসরি কার্যকর করতে পারে।
11. What does a translator program do? / একটি অনুবাদক (translator) প্রোগ্রাম কী করে?
- Converts a program from one high-level language to another / একটি প্রোগ্রামকে এক উচ্চ-স্তরের ভাষা থেকে অন্যটিতে রূপান্তর করে
- Converts source code into machine code / সোর্স কোডকে মেশিন কোডে রূপান্তর করে
- Manages the computer’s hardware / কম্পিউটারের হার্ডওয়্যার পরিচালনা করে
- Edits source code / সোর্স কোড সম্পাদনা করে
Correct Answer (সঠিক উত্তর): b) Converts source code into machine code / সোর্স কোডকে মেশিন কোডে রূপান্তর করে
Explanation (ব্যাখ্যা): Translators like compilers and interpreters are system software that convert source code written in a high-level or assembly language into machine code that the CPU can execute. / কম্পাইলার এবং ইন্টারপ্রেটারের মতো অনুবাদকগুলি হলো সিস্টেম সফ্টওয়্যার যা উচ্চ-স্তরের বা অ্যাসেম্বলি ভাষায় লেখা সোর্স কোডকে মেশিন কোডে রূপান্তর করে যা সিপিইউ কার্যকর করতে পারে।
12. What is the main difference between a compiler and an interpreter? / একটি কম্পাইলার এবং একটি ইন্টারপ্রেটারের মধ্যে প্রধান পার্থক্য কী?
- A compiler is faster than an interpreter / একটি কম্পাইলার একটি ইন্টারপ্রেটারের চেয়ে দ্রুত
- A compiler converts the entire program at once, while an interpreter converts it line-by-line / একটি কম্পাইলার পুরো প্রোগ্রামটি একবারে রূপান্তর করে, যখন একটি ইন্টারপ্রেটার এটি লাইন-বাই-লাইন রূপান্তর করে
- An interpreter produces an executable file, but a compiler does not / একটি ইন্টারপ্রেটার একটি এক্সিকিউটেবল ফাইল তৈরি করে, কিন্তু একটি কম্পাইলার করে না
- There is no difference / কোনো পার্থক্য নেই
Correct Answer (সঠিক উত্তর): b) A compiler converts the entire program at once, while an interpreter converts it line-by-line / একটি কম্পাইলার পুরো প্রোগ্রামটি একবারে রূপান্তর করে, যখন একটি ইন্টারপ্রেটার এটি লাইন-বাই-লাইন রূপান্তর করে
Explanation (ব্যাখ্যা): A compiler scans the entire source code and translates it into machine code, creating an executable file. An interpreter translates and executes the source code one statement at a time. / একটি কম্পাইলার পুরো সোর্স কোডটি স্ক্যান করে এবং এটিকে মেশিন কোডে অনুবাদ করে, একটি এক্সিকিউটেবল ফাইল তৈরি করে। একটি ইন্টারপ্রেটার সোর্স কোডকে একবারে একটি স্টেটমেন্ট অনুবাদ করে এবং কার্যকর করে।
13. An assembler is used to translate: / একটি অ্যাসেম্বলার অনুবাদ করতে ব্যবহৃত হয়:
- High-level language to machine language / উচ্চ-স্তরের ভাষা থেকে মেশিন ভাষায়
- Machine language to high-level language / মেশিন ভাষা থেকে উচ্চ-স্তরের ভাষায়
- Assembly language to machine language / অ্যাসেম্বলি ভাষা থেকে মেশিন ভাষায়
- High-level language to assembly language / উচ্চ-স্তরের ভাষা থেকে অ্যাসেম্বলি ভাষায়
Correct Answer (সঠিক উত্তর): c) Assembly language to machine language / অ্যাসেম্বলি ভাষা থেকে মেশিন ভাষায়
Explanation (ব্যাখ্যা): An assembler is a specific type of translator that converts assembly language code, which uses mnemonics, into its equivalent machine code. / একটি অ্যাসেম্বলার হলো একটি নির্দিষ্ট ধরনের অনুবাদক যা অ্যাসেম্বলি ভাষার কোডকে, যা স্মৃতিসহায়ক (mnemonics) ব্যবহার করে, তার সমতুল্য মেশিন কোডে রূপান্তর করে।
14. Which of the following is an example of a high-level language? / নিচের কোনটি একটি উচ্চ-স্তরের ভাষার উদাহরণ?
- Binary Code / বাইনারি কোড
- Assembly Language / অ্যাসেম্বলি ভাষা
- Python / পাইথন
- Machine Code / মেশিন কোড
Correct Answer (সঠিক উত্তর): c) Python / পাইথন
Explanation (ব্যাখ্যা): Python, C++, Java, and JavaScript are examples of high-level languages. They use English-like syntax and are easier for humans to read and write. Assembly language is a low-level language, and machine/binary code is the lowest level. / পাইথন, সি++, জাভা এবং জাভাস্ক্রিপ্ট হলো উচ্চ-স্তরের ভাষার উদাহরণ। তারা ইংরেজি-সদৃশ সিনট্যাক্স ব্যবহার করে এবং মানুষের পক্ষে পড়া এবং লেখা সহজ। অ্যাসেম্বলি ভাষা একটি নিম্ন-স্তরের ভাষা, এবং মেশিন/বাইনারি কোড হলো সর্বনিম্ন স্তর।
15. What is the primary purpose of an Operating System (OS)? / একটি অপারেটিং সিস্টেমের (OS) প্রাথমিক উদ্দেশ্য কী?
- To provide a text editor for programming / প্রোগ্রামিংয়ের জন্য একটি টেক্সট এডিটর সরবরাহ করা
- To manage hardware and software resources of the computer / কম্পিউটারের হার্ডওয়্যার এবং সফ্টওয়্যার রিসোর্স পরিচালনা করা
- To translate high-level language to machine code / উচ্চ-স্তরের ভাষাকে মেশিন কোডে অনুবাদ করা
- To connect to the internet / ইন্টারনেটের সাথে সংযোগ স্থাপন করা
Correct Answer (সঠিক উত্তর): b) To manage hardware and software resources of the computer / কম্পিউটারের হার্ডওয়্যার এবং সফ্টওয়্যার রিসোর্স পরিচালনা করা
Explanation (ব্যাখ্যা): An operating system acts as an intermediary between the user and the computer hardware, managing resources like the CPU, memory, storage devices, and providing services for application programs. / একটি অপারেটিং সিস্টেম ব্যবহারকারী এবং কম্পিউটার হার্ডওয়্যারের মধ্যে মধ্যস্থতাকারী হিসাবে কাজ করে, সিপিইউ, মেমরি, স্টোরেজ ডিভাইসের মতো রিসোর্স পরিচালনা করে এবং অ্যাপ্লিকেশন প্রোগ্রামগুলির জন্য পরিষেবা সরবরাহ করে।
16. Multiprogramming allows: / মাল্টিপ্রোগ্রামিং (Multiprogramming) অনুমতি দেয়:
- Multiple users to use the computer simultaneously / একাধিক ব্যবহারকারীকে একই সাথে কম্পিউটার ব্যবহার করার
- Multiple programs to reside in memory at the same time / একাধিক প্রোগ্রামকে একই সময়ে মেমরিতে থাকার
- Multiple CPUs to execute instructions / একাধিক সিপিইউকে নির্দেশাবলী কার্যকর করার
- A single program to be divided into multiple tasks / একটি একক প্রোগ্রামকে একাধিক টাস্কে বিভক্ত করার
Correct Answer (সঠিক উত্তর): b) Multiple programs to reside in memory at the same time / একাধিক প্রোগ্রামকে একই সময়ে মেমরিতে থাকার
Explanation (ব্যাখ্যা): In a multiprogramming system, several programs are kept in the main memory at the same time. The CPU is switched from one program to another to increase its utilization, especially when a program is waiting for I/O. / একটি মাল্টিপ্রোগ্রামিং সিস্টেমে, বেশ কয়েকটি প্রোগ্রাম একই সময়ে প্রধান মেমরিতে রাখা হয়। সিপিইউ-এর ব্যবহার বাড়ানোর জন্য এটিকে এক প্রোগ্রাম থেকে অন্য প্রোগ্রামে পরিবর্তন করা হয়, বিশেষ করে যখন কোনো প্রোগ্রাম I/O-এর জন্য অপেক্ষা করে।
17. Multitasking is the logical extension of: / মাল্টিটাস্কিং (Multitasking) হলো কিসের যৌক্তিক সম্প্রসারণ?
- Multiprogramming / মাল্টিপ্রোগ্রামিং
- Multiprocessing / মাল্টিপ্রসেসিং
- Time-sharing / টাইম-শেয়ারিং
- Single programming / সিঙ্গেল প্রোগ্রামিং
Correct Answer (সঠিক উত্তর): a) Multiprogramming / মাল্টিপ্রোগ্রামিং
Explanation (ব্যাখ্যা): Multitasking is an extension of multiprogramming where the CPU switching between jobs happens so frequently that users can interact with each program while it is running, creating an illusion of parallel execution. / মাল্টিটাস্কিং হলো মাল্টিপ্রোগ্রামিং-এর একটি সম্প্রসারণ যেখানে কাজগুলির মধ্যে সিপিইউ সুইচিং এত ঘন ঘন ঘটে যে ব্যবহারকারীরা প্রতিটি প্রোগ্রামের সাথে চলার সময় ইন্টারঅ্যাক্ট করতে পারে, যা সমান্তরাল সম্পাদনের একটি বিভ্রম তৈরি করে।
18. A time-sharing system is characterized by: / একটি টাইম-শেয়ারিং (time-sharing) সিস্টেমের বৈশিষ্ট্য হলো:
- One user, one program at a time / একবারে একজন ব্যবহারকারী, একটি প্রোগ্রাম
- Multiple programs in memory, but only one is active / মেমরিতে একাধিক প্রোগ্রাম, কিন্তু শুধুমাত্র একটি সক্রিয় *
- Giving each user a small slice of CPU time / প্রতিটি ব্যবহারকারীকে সিপিইউ সময়ের একটি ছোট অংশ দেওয়া
- Using multiple processors / একাধিক প্রসেসর ব্যবহার করা
Correct Answer (সঠিক উত্তর): c) Giving each user a small slice of CPU time / প্রতিটি ব্যবহারকারীকে সিপিইউ সময়ের একটি ছোট অংশ দেওয়া
Explanation (ব্যাখ্যা): Time-sharing systems allow multiple users to share a computer simultaneously by rapidly switching the CPU among the users. Each user gets a small, fixed time slice (quantum) of CPU time. / টাইম-শেয়ারিং সিস্টেমগুলি ব্যবহারকারীদের মধ্যে সিপিইউ-কে দ্রুত পরিবর্তন করে একাধিক ব্যবহারকারীকে একই সাথে একটি কম্পিউটার শেয়ার করার অনুমতি দেয়। প্রতিটি ব্যবহারকারী সিপিইউ সময়ের একটি ছোট, নির্দিষ্ট সময় খণ্ড (কোয়ান্টাম) পায়।
19. Multiprocessing refers to: / মাল্টিপ্রসেসিং (Multiprocessing) বলতে বোঝায়:
- Executing multiple programs on a single CPU / একটি একক সিপিইউ-তে একাধিক প্রোগ্রাম চালানো
- Executing multiple programs concurrently / একাধিক প্রোগ্রাম একই সাথে চালানো
- Using two or more CPUs within a single computer system / একটি একক কম্পিউটার সিস্টেমে দুই বা ততোধিক সিপিইউ ব্যবহার করা
- A program divided into multiple processes / একটি প্রোগ্রামকে একাধিক প্রসেসে বিভক্ত করা
Correct Answer (সঠিক উত্তর): c) Using two or more CPUs within a single computer system / একটি একক কম্পিউটার সিস্টেমে দুই বা ততোধিক সিপিইউ ব্যবহার করা
Explanation (ব্যাখ্যা): Multiprocessing is the use of two or more central processing units (CPUs) within a single computer system. This allows for true parallel execution of multiple processes, significantly increasing computing power. / মাল্টিপ্রসেসিং হলো একটি একক কম্পিউটার সিস্টেমের মধ্যে দুই বা ততোধিক সেন্ট্রাল প্রসেসিং ইউনিট (সিপিইউ) ব্যবহার করা। এটি একাধিক প্রসেসের সত্যিকারের সমান্তরাল সম্পাদনের অনুমতি দেয়, যা কম্পিউটিং শক্তিকে উল্লেখযোগ্যভাবে বৃদ্ধি করে।
20. What is a text editor in the context of programming? / প্রোগ্রামিং-এর প্রেক্ষাপটে একটি টেক্সট এডিটর কী?
- A program to format text documents like Microsoft Word / মাইক্রোসফ্ট ওয়ার্ডের মতো টেক্সট ডকুমেন্ট ফরম্যাট করার একটি প্রোগ্রাম
- A program used to write and edit plain text source code files / প্লেইন টেক্সট সোর্স কোড ফাইল লেখা এবং সম্পাদনা করার জন্য ব্যবহৃত একটি প্রোগ্রাম
- A type of operating system / এক ধরনের অপারেটিং সিস্টেম
- A hardware device for inputting text / টেক্সট ইনপুট করার জন্য একটি হার্ডওয়্যার ডিভাইস
Correct Answer (সঠিক উত্তর): b) A program used to write and edit plain text source code files / প্লেইন টেক্সট সোর্স কোড ফাইল লেখা এবং সম্পাদনা করার জন্য ব্যবহৃত একটি প্রোগ্রাম
Explanation (ব্যাখ্যা): A text editor is a fundamental tool for programmers. It allows them to write and edit source code in a plain text format, without any rich text formatting. Examples include VS Code, Sublime Text, and Notepad++. / একটি টেক্সট এডিটর প্রোগ্রামারদের জন্য একটি মৌলিক টুল। এটি তাদের কোনো রিচ টেক্সট ফরম্যাটিং ছাড়াই প্লেইন টেক্সট ফরম্যাটে সোর্স কোড লিখতে এবং সম্পাদনা করতে দেয়। উদাহরণস্বরূপ ভিএস কোড, সাবলাইম টেক্সট এবং নোটপ্যাড++।
21. A data structure is: / একটি ডেটা স্ট্রাকচার হলো:
- A type of algorithm / এক ধরনের অ্যালগরিদম
- A way to organize and store data in a computer for efficient access and modification / কম্পিউটারে ডেটা সংগঠিত এবং সংরক্ষণ করার একটি উপায় যাতে কার্যকরভাবে অ্যাক্সেস এবং পরিবর্তন করা যায়
- A programming language / একটি প্রোগ্রামিং ভাষা
- A hardware component / একটি হার্ডওয়্যার উপাদান
Correct Answer (সঠিক উত্তর): b) A way to organize and store data in a computer for efficient access and modification / কম্পিউটারে ডেটা সংগঠিত এবং সংরক্ষণ করার একটি উপায় যাতে কার্যকরভাবে অ্যাক্সেস এবং পরিবর্তন করা যায়
Explanation (ব্যাখ্যা): A data structure is a particular way of organizing data in a computer’s memory so that it can be used effectively. Different data structures are suited to different kinds of applications. / একটি ডেটা স্ট্রাকচার হলো কম্পিউটারের মেমরিতে ডেটা সংগঠিত করার একটি বিশেষ উপায় যাতে এটি কার্যকরভাবে ব্যবহার করা যায়। বিভিন্ন ধরনের অ্যাপ্লিকেশনের জন্য বিভিন্ন ডেটা স্ট্রাকচার উপযুক্ত।
22. Which data structure stores elements of the same type in contiguous memory locations? / কোন ডেটা স্ট্রাকচার একই ধরনের উপাদানগুলিকে সংলগ্ন মেমরি অবস্থানে সংরক্ষণ করে?
- Linked List / লিঙ্কড লিস্ট
- Stack / স্ট্যাক
- Queue / কিউ
- Array / অ্যারে
Correct Answer (সঠিক উত্তর): d) Array / অ্যারে
Explanation (ব্যাখ্যা): An array is a collection of items of the same data type stored at contiguous memory locations. This allows for efficient access to elements using an index. / একটি অ্যারে হলো একই ডেটা টাইপের আইটেমগুলির একটি সংগ্রহ যা সংলগ্ন মেমরি অবস্থানে সংরক্ষিত থাকে। এটি একটি ইনডেক্স ব্যবহার করে উপাদানগুলিতে কার্যকর অ্যাক্সেসের অনুমতি দেয়।
23. Which of the following principles does a Stack data structure follow? / স্ট্যাক (Stack) ডেটা স্ট্রাকচার নিচের কোন নীতিটি অনুসরণ করে?
- FIFO (First-In, First-Out) / ফিফো (ফার্স্ট-ইন, ফার্স্ট-আউট)
- LIFO (Last-In, First-Out) / লিফো (লাস্ট-ইন, ফার্স্ট-আউট)
- LILO (Last-In, Last-Out) / লিলো (লাস্ট-ইন, লাস্ট-আউট)
- Direct Access / সরাসরি অ্যাক্সেস
Correct Answer (সঠিক উত্তর): b) LIFO (Last-In, First-Out) / লিফো (লাস্ট-ইন, ফার্স্ট-আউট)
Explanation (ব্যাখ্যা): A stack operates on the LIFO principle. The last element added (pushed) to the stack is the first element to be removed (popped). Think of a stack of plates. / একটি স্ট্যাক LIFO নীতিতে কাজ করে। স্ট্যাকে সর্বশেষ যোগ করা (পুশ করা) উপাদানটিই প্রথম সরানো (পপ করা) হয়। প্লেটের একটি স্ট্যাকের কথা ভাবুন।
24. A Queue data structure follows which principle? / একটি কিউ (Queue) ডেটা স্ট্রাকচার কোন নীতি অনুসরণ করে?
- LIFO (Last-In, First-Out) / লিফো (লাস্ট-ইন, ফার্স্ট-আউট)
- FIFO (First-In, First-Out) / ফিফো (ফার্স্ট-ইন, ফার্স্ট-আউট)
- Random Access / র্যান্ডম অ্যাক্সেস
- FILO (First-In, Last-Out) / ফিলো (ফার্স্ট-ইন, লাস্ট-আউট)
Correct Answer (সঠিক উত্তর): b) FIFO (First-In, First-Out) / ফিফো (ফার্স্ট-ইন, ফার্স্ট-আউট)
Explanation (ব্যাখ্যা): A queue operates on the FIFO principle. The first element added to the queue will be the first one to be removed. Think of a line of people waiting for a bus. / একটি কিউ FIFO নীতিতে কাজ করে। কিউতে প্রথম যোগ করা উপাদানটিই প্রথম সরানো হবে। বাসের জন্য অপেক্ষা করা মানুষের একটি লাইনের কথা ভাবুন।
25. What is a key feature of a Linked List? / একটি লিঙ্কড লিস্টের (Linked List) মূল বৈশিষ্ট্য কী?
- Elements are stored in contiguous memory / উপাদানগুলি সংলগ্ন মেমরিতে সংরক্ষণ করা হয়
- The size of the structure is fixed / কাঠামোর আকার স্থির
- Elements are linked using pointers / উপাদানগুলি পয়েন্টার ব্যবহার করে লিঙ্ক করা হয়
- It can only store integer data / এটি শুধুমাত্র পূর্ণসংখ্যা ডেটা সংরক্ষণ করতে পারে
Correct Answer (সঠিক উত্তর): c) Elements are linked using pointers / উপাদানগুলি পয়েন্টার ব্যবহার করে লিঙ্ক করা হয়
Explanation (ব্যাখ্যা): A linked list consists of nodes where each node contains data and a pointer (or link) to the next node in the sequence. This allows for dynamic memory allocation and non-contiguous storage. / একটি লিঙ্কড লিস্ট নোড দ্বারা গঠিত যেখানে প্রতিটি নোডে ডেটা এবং ক্রমের পরবর্তী নোডের একটি পয়েন্টার (বা লিঙ্ক) থাকে। এটি ডাইনামিক মেমরি বরাদ্দ এবং অ-সংলগ্ন সংরক্ষণের অনুমতি দেয়।
26. What is the time complexity for accessing an element in an array by its index? / একটি অ্যারেতে তার ইনডেক্স দ্বারা একটি উপাদান অ্যাক্সেস করার জন্য টাইম কমপ্লেক্সিটি কত?
- O(1)
- O(n)
- O(log n)
- O(n^2)
Correct Answer (সঠিক উত্তর): a) O(1)
Explanation (ব্যাখ্যা): Accessing an element in an array using its index is a constant time operation, O(1), because the memory address can be calculated directly from the base address and the index. It doesn’t depend on the size of the array. / একটি অ্যারেতে তার ইনডেক্স ব্যবহার করে একটি উপাদান অ্যাক্সেস করা একটি ধ্রুবক সময়ের অপারেশন, O(1), কারণ মেমরি ঠিকানা সরাসরি বেস ঠিকানা এবং ইনডেক্স থেকে গণনা করা যায়। এটি অ্যারের আকারের উপর নির্ভর করে না।
27. The term `GOTO`-less programming is associated with which programming paradigm? / `GOTO`-বিহীন প্রোগ্রামিং শব্দটি কোন প্রোগ্রামিং প্যারাডাইমের সাথে যুক্ত?
- Object-Oriented Programming / অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং
- Functional Programming / ফাংশনাল প্রোগ্রামিং
- Structured Programming / স্ট্রাকচার্ড প্রোগ্রামিং
- Procedural Programming / প্রসিডিউরাল প্রোগ্রামিং
Correct Answer (সঠিক উত্তর): c) Structured Programming / স্ট্রাকচার্ড প্রোগ্রামিং
Explanation (ব্যাখ্যা): A major goal of structured programming is to improve code clarity and maintainability by avoiding the use of `GOTO` statements, which can lead to “spaghetti code” that is hard to follow and debug. / স্ট্রাকচার্ড প্রোগ্রামিংয়ের একটি প্রধান লক্ষ্য হলো `GOTO` স্টেটমেন্টের ব্যবহার এড়িয়ে কোডের স্পষ্টতা এবং রক্ষণাবেক্ষণযোগ্যতা উন্নত করা, যা “স্প্যাগেটি কোড” তৈরি করতে পারে যা অনুসরণ করা এবং ডিবাগ করা কঠিন।
28. In a decision table, what do the rows and columns represent? / একটি ডিসিশন টেবিলে, সারি এবং কলামগুলি কী উপস্থাপন করে?
- Rows represent actions, columns represent conditions / সারিগুলি ক্রিয়া উপস্থাপন করে, কলামগুলি শর্ত উপস্থাপন করে
- Rows represent conditions and actions, columns represent rules / সারিগুলি শর্ত এবং ক্রিয়া উপস্থাপন করে, কলামগুলি নিয়ম উপস্থাপন করে
- Rows represent rules, columns represent data / সারিগুলি নিয়ম উপস্থাপন করে, কলামগুলি ডেটা উপস্থাপন করে
- Rows represent variables, columns represent values / সারিগুলি ভেরিয়েবল উপস্থাপন করে, কলামগুলি মান উপস্থাপন করে
Correct Answer (সঠিক উত্তর): b) Rows represent conditions and actions, columns represent rules / সারিগুলি শর্ত এবং ক্রিয়া উপস্থাপন করে, কলামগুলি নিয়ম উপস্থাপন করে
Explanation (ব্যাখ্যা): A standard decision table is divided into four quadrants. The upper-left lists the conditions, the lower-left lists the actions. The columns on the right represent the rules, specifying which actions to take for a given combination of condition outcomes. / একটি স্ট্যান্ডার্ড ডিসিশন টেবিল চারটি চতুর্ভাগে বিভক্ত। উপরের-বামে শর্তগুলি তালিকাভুক্ত করা হয়, নীচের-বামে ক্রিয়াগুলি তালিকাভুক্ত করা হয়। ডানদিকের কলামগুলি নিয়মগুলি উপস্থাপন করে, যা শর্তের ফলাফলের একটি নির্দিষ্ট সংমিশ্রণের জন্য কোন ক্রিয়াগুলি নিতে হবে তা নির্দিষ্ট করে।
29. The oval or rounded rectangle symbol in a flowchart represents: / একটি ফ্লোচার্টে ডিম্বাকৃতি বা গোলাকার আয়তক্ষেত্র প্রতীকটি উপস্থাপন করে:
- Process / প্রক্রিয়া
- Decision / সিদ্ধান্ত
- Terminal (Start/End) / টার্মিনাল (শুরু/শেষ)
- Input/Output / ইনপুট/আউটপুট
Correct Answer (সঠিক উত্তর): c) Terminal (Start/End) / টার্মিনাল (শুরু/শেষ)
Explanation (ব্যাখ্যা): The terminal symbol, which is an oval or a rectangle with rounded corners, is used to indicate the starting and ending points of a flowchart. / টার্মিনাল প্রতীক, যা একটি ডিম্বাকৃতি বা গোলাকার কোণযুক্ত আয়তক্ষেত্র, একটি ফ্লোচার্টের শুরু এবং শেষ বিন্দু নির্দেশ করতে ব্যবহৃত হয়।
30. What is the worst-case time complexity of a linear search? / একটি লিনিয়ার সার্চের সবচেয়ে খারাপ ক্ষেত্রে (worst-case) টাইম কমপ্লেক্সিটি কত?
- O(1)
- O(log n)
- O(n)
- O(n log n)
Correct Answer (সঠিক উত্তর): c) O(n)
Explanation (ব্যাখ্যা): In a linear search, the worst case occurs when the target element is at the very end of the list or not in the list at all. In this scenario, the algorithm must check every one of the ‘n’ elements. / একটি লিনিয়ার সার্চে, সবচেয়ে খারাপ অবস্থাটি ঘটে যখন লক্ষ্য উপাদানটি তালিকার একেবারে শেষে থাকে বা তালিকায় মোটেই থাকে না। এই পরিস্থিতিতে, অ্যালগরিদমকে ‘n’টি উপাদানের প্রত্যেকটি পরীক্ষা করতে হবে।
31. Which data structure is most suitable for implementing function call mechanisms in a compiler? / একটি কম্পাইলারে ফাংশন কল মেকানিজম বাস্তবায়নের জন্য কোন ডেটা স্ট্রাকচার সবচেয়ে উপযুক্ত?
- Queue / কিউ
- Stack / স্ট্যাক
- Array / অ্যারে
- Linked List / লিঙ্কড লিস্ট
Correct Answer (সঠিক উত্তর): b) Stack / স্ট্যাক
Explanation (ব্যাখ্যা): Stacks are used to manage function calls. When a function is called, its information (return address, parameters) is pushed onto the call stack. When the function returns, its information is popped off. This LIFO behavior perfectly matches function call and return semantics. / স্ট্যাকগুলি ফাংশন কল পরিচালনা করতে ব্যবহৃত হয়। যখন একটি ফাংশন কল করা হয়, তখন তার তথ্য (রিটার্ন অ্যাড্রেস, প্যারামিটার) কল স্ট্যাকে পুশ করা হয়। যখন ফাংশনটি রিটার্ন করে, তখন তার তথ্য পপ করা হয়। এই LIFO আচরণটি ফাংশন কল এবং রিটার্ন সেমান্টিক্সের সাথে পুরোপুরি মিলে যায়।
32. The operation of adding an element to a stack is called: / একটি স্ট্যাকে একটি উপাদান যোগ করার অপারেশনকে বলা হয়:
- Enqueue / এনকিউ
- Push / পুশ
- Insert / ইনসার্ট
- Add / অ্যাড
Correct Answer (সঠিক উত্তর): b) Push / পুশ
Explanation (ব্যাখ্যা): The term for adding an item to a stack is “push”. The term for removing an item is “pop”. / একটি স্ট্যাকে একটি আইটেম যোগ করার পরিভাষা হলো “পুশ”। একটি আইটেম সরানোর পরিভাষা হলো “পপ”।
33. The operation of removing an element from a queue is called: / একটি কিউ থেকে একটি উপাদান সরানোর অপারেশনকে বলা হয়:
- Dequeue / ডিকিউ
- Pop / পপ
- Delete / ডিলিট
- Remove / রিমুভ
Correct Answer (সঠিক উত্তর): a) Dequeue / ডিকিউ
Explanation (ব্যাখ্যা): The term for removing an item from the front of a queue is “dequeue”. The term for adding an item to the rear is “enqueue”. / একটি কিউয়ের সামনে থেকে একটি আইটেম সরানোর পরিভাষা হলো “ডিকিউ”। পিছনে একটি আইটেম যোগ করার পরিভাষা হলো “এনকিউ”।
34. Which of these is a low-level programming language? / এদের মধ্যে কোনটি একটি নিম্ন-স্তরের প্রোগ্রামিং ভাষা?
- Java / জাভা
- C# / সি#
- Assembly Language / অ্যাসেম্বলি ভাষা
- Ruby / রুবি
Correct Answer (সঠিক উত্তর): c) Assembly Language / অ্যাসেম্বলি ভাষা
Explanation (ব্যাখ্যা): Low-level languages provide little or no abstraction from a computer’s instruction set architecture. Assembly language is a prime example, being very close to machine code. High-level languages like Java provide strong abstraction. / নিম্ন-স্তরের ভাষাগুলি একটি কম্পিউটারের ইনস্ট্রাকশন সেট আর্কিটেকচার থেকে খুব কম বা কোনো অ্যাবস্ট্রাকশন প্রদান করে না। অ্যাসেম্বলি ভাষা একটি প্রধান উদাহরণ, যা মেশিন কোডের খুব কাছাকাছি। জাভার মতো উচ্চ-স্তরের ভাষা শক্তিশালী অ্যাবস্ট্রাকশন প্রদান করে।
35. A “syntax error” is detected at which stage? / একটি “সিনট্যাক্স এরর” (syntax error) কোন পর্যায়ে সনাক্ত করা হয়?
- Runtime / রানটাইম
- Compilation / কম্পাইলেশন
- Linking / লিঙ্কিং
- Execution / এক্সিকিউশন
Correct Answer (সঠিক উত্তর): b) Compilation / কম্পাইলেশন
Explanation (ব্যাখ্যা): Syntax errors are violations of the programming language’s grammar rules. A compiler checks for these errors during the compilation phase before creating an executable file. An interpreter would detect them as it encounters the line. / সিনট্যাক্স এরর হলো প্রোগ্রামিং ভাষার ব্যাকরণের নিয়ম লঙ্ঘন। একটি কম্পাইলার একটি এক্সিকিউটেবল ফাইল তৈরি করার আগে কম্পাইলেশন পর্যায়ে এই ত্রুটিগুলি পরীক্ষা করে। একটি ইন্টারপ্রেটার লাইনটির সম্মুখীন হওয়ার সাথে সাথে এগুলি সনাক্ত করবে।
36. Which OS type provides the illusion that each user has a dedicated machine? / কোন ধরনের ওএস (OS) এই বিভ্রম তৈরি করে যে প্রতিটি ব্যবহারকারীর একটি নিজস্ব মেশিন রয়েছে?
- Multiprocessing OS / মাল্টিপ্রসেসিং ওএস
- Batch OS / ব্যাচ ওএস
- Time-Sharing OS / টাইম-শেয়ারিং ওএস
- Real-time OS / রিয়েল-টাইম ওএস
Correct Answer (সঠিক উত্তর): c) Time-Sharing OS / টাইম-শেয়ারিং ওএস
Explanation (ব্যাখ্যা): By rapidly switching the CPU between multiple user processes (giving each a “time slice”), a time-sharing operating system gives each user the impression that they have exclusive control of the computer. / একাধিক ব্যবহারকারী প্রক্রিয়ার মধ্যে সিপিইউকে দ্রুত পরিবর্তন করে (প্রত্যেককে একটি “টাইম স্লাইস” দিয়ে), একটি টাইম-শেয়ারিং অপারেটিং সিস্টেম প্রতিটি ব্যবহারকারীকে এই ধারণা দেয় যে তাদের কম্পিউটারের উপর একচেটিয়া নিয়ন্ত্রণ রয়েছে।
37. An algorithm with O(n^2) complexity is generally ______ than an algorithm with O(n) complexity for large n. / O(n^2) কমপ্লেক্সিটিযুক্ত একটি অ্যালগরিদম সাধারণত বড় n-এর জন্য O(n) কমপ্লেক্সিটিযুক্ত একটি অ্যালগরিদমের চেয়ে ______।
- Faster / দ্রুততর
- Slower / ধীরতর
- The same speed / একই গতির
- More memory efficient / বেশি মেমরি সাশ্রয়ী
Correct Answer (সঠিক উত্তর): b) Slower / ধীরতর
Explanation (ব্যাখ্যা): O(n^2) indicates that the execution time grows quadratically with the input size ‘n’, while O(n) indicates linear growth. For large values of ‘n’, a quadratic growth is significantly slower than a linear one. / O(n^2) নির্দেশ করে যে এক্সিকিউশন সময় ইনপুট আকার ‘n’-এর সাথে চতুর্ভুজ적으로 বৃদ্ধি পায়, যখন O(n) রৈখিক বৃদ্ধি নির্দেশ করে। ‘n’-এর বড় মানের জন্য, একটি চতুর্ভুজিক বৃদ্ধি একটি রৈখিক বৃদ্ধির চেয়ে উল্লেখযোগ্যভাবে ধীর।
38. The parallelogram symbol in a flowchart represents: / একটি ফ্লোচার্টে সামন্তরিক (parallelogram) প্রতীকটি উপস্থাপন করে:
- Process / প্রক্রিয়া
- Decision / সিদ্ধান্ত
- Start/End / শুরু/শেষ
- Input/Output / ইনপুট/আউটপুট
Correct Answer (সঠিক উত্তর): d) Input/Output / ইনপুট/আউটপুট
Explanation (ব্যাখ্যা): A parallelogram is used in flowcharts to represent any input (e.g., reading data from a user) or output (e.g., displaying a result on the screen) operation. / একটি সামন্তরিক ফ্লোচার্টে যেকোনো ইনপুট (যেমন, ব্যবহারকারীর কাছ থেকে ডেটা পড়া) বা আউটপুট (যেমন, স্ক্রিনে একটি ফলাফল প্রদর্শন করা) অপারেশন উপস্থাপন করতে ব্যবহৃত হয়।
39. What is a “bug” in the context of programming? / প্রোগ্রামিং-এর প্রেক্ষাপটে একটি “বাগ” (bug) কী?
- A feature of the program / প্রোগ্রামের একটি বৈশিষ্ট্য
- An error, flaw, or fault in a computer program / একটি কম্পিউটার প্রোগ্রামের একটি ত্রুটি, খুঁত বা দোষ
- A type of virus / এক ধরনের ভাইরাস
- A comment in the code / কোডের একটি মন্তব্য
Correct Answer (সঠিক উত্তর): b) An error, flaw, or fault in a computer program / একটি কম্পিউটার প্রোগ্রামের একটি ত্রুটি, খুঁত বা দোষ
Explanation (ব্যাখ্যা): A bug is an error in a program that causes it to produce an incorrect or unexpected result, or to behave in unintended ways. The process of finding and fixing bugs is called debugging. / একটি বাগ হলো একটি প্রোগ্রামের একটি ত্রুটি যা এটিকে একটি ভুল বা অপ্রত্যাশিত ফলাফল তৈরি করতে বা অনিচ্ছাকৃতভাবে আচরণ করতে বাধ্য করে। বাগ খুঁজে বের করা এবং ঠিক করার প্রক্রিয়াকে ডিবাগিং বলা হয়।
40. In a linked list, a node consists of two parts: / একটি লিঙ্কড লিস্টে, একটি নোড দুটি অংশ নিয়ে গঠিত:
- An integer and a character / একটি পূর্ণসংখ্যা এবং একটি অক্ষর
- A pointer and a float / একটি পয়েন্টার এবং একটি ফ্লোট
- Data and a pointer to the next node / ডেটা এবং পরবর্তী নোডের একটি পয়েন্টার
- A header and a tail / একটি হেডার এবং একটি টেইল
Correct Answer (সঠিক উত্তর): c) Data and a pointer to the next node / ডেটা এবং পরবর্তী নোডের একটি পয়েন্টার
Explanation (ব্যাখ্যা): Each element (node) of a singly linked list contains a data field and a “next” field, which is a pointer holding the memory address of the next node in the sequence. / একটি একক লিঙ্কড লিস্টের প্রতিটি উপাদান (নোড) একটি ডেটা ফিল্ড এবং একটি “নেক্সট” ফিল্ড ধারণ করে, যা ক্রমের পরবর্তী নোডের মেমরি ঠিকানা ধারণকারী একটি পয়েন্টার।
41. What does IDE stand for? / IDE-এর পূর্ণরূপ কী?
- Integrated Development Environment / ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্ট
- Internal Drive Electronics / ইন্টারনাল ড্রাইভ ইলেকট্রনিক্স
- Intelligent Design Engine / ইন্টেলিজেন্ট ডিজাইন ইঞ্জিন
- Integrated Deployment Engine / ইন্টিগ্রেটেড ডেপ্লয়মেন্ট ইঞ্জিন
Correct Answer (সঠিক উত্তর): a) Integrated Development Environment / ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্ট
Explanation (ব্যাখ্যা): An IDE is a software suite that combines common developer tools into a single graphical user interface (GUI). It typically includes a source code editor, a compiler or interpreter, and a debugger. / একটি IDE হলো একটি সফ্টওয়্যার স্যুট যা সাধারণ ডেভেলপার সরঞ্জামগুলিকে একটি একক গ্রাফিকাল ইউজার ইন্টারফেস (GUI)-এ একত্রিত করে। এটিতে সাধারণত একটি সোর্স কোড এডিটর, একটি কম্পাইলার বা ইন্টারপ্রেটার এবং একটি ডিবাগার অন্তর্ভুক্ত থাকে।
42. Which of the following is NOT a characteristic of a good algorithm? / নিচের কোনটি একটি ভালো অ্যালগরিদমের বৈশিষ্ট্য নয়?
- Finiteness (terminates after a finite number of steps) / সসীমতা (একটি নির্দিষ্ট সংখ্যক ধাপের পর শেষ হয়)
- Definiteness (each step is precisely defined) / নির্দিষ্টতা (প্রতিটি ধাপ সুনির্দিষ্টভাবে সংজ্ঞায়িত)
- Ambiguity (steps can be interpreted in multiple ways) / অস্পষ্টতা (ধাপগুলি একাধিক উপায়ে ব্যাখ্যা করা যেতে পারে)
- Effectiveness (each step can be carried out) / কার্যকারিতা (প্রতিটি ধাপ সম্পাদন করা যায়)
Correct Answer (সঠিক উত্তর): c) Ambiguity (steps can be interpreted in multiple ways) / অস্পষ্টতা (ধাপগুলি একাধিক উপায়ে ব্যাখ্যা করা যেতে পারে)
Explanation (ব্যাখ্যা): A good algorithm must be unambiguous. Each step must be clear and precisely defined, leaving no room for interpretation, to ensure it produces the correct output every time. / একটি ভালো অ্যালগরিদম অবশ্যই অস্পষ্টতামুক্ত হতে হবে। প্রতিটি ধাপ অবশ্যই স্পষ্ট এবং সুনির্দিষ্টভাবে সংজ্ঞায়িত হতে হবে, যাতে ব্যাখ্যার কোনো সুযোগ না থাকে, এটি নিশ্চিত করার জন্য যে এটি প্রতিবার সঠিক আউটপুট তৈরি করে।
43. The process of breaking a large problem into smaller, sub-problems is called: / একটি বড় সমস্যাকে ছোট, উপ-সমস্যায় বিভক্ত করার প্রক্রিয়াকে বলা হয়:
- Decomposition / ডিকম্পোজিশন
- Compilation / কম্পাইলেশন
- Abstraction / অ্যাবস্ট্রাকশন
- Encapsulation / এনক্যাপসুলেশন
Correct Answer (সঠিক উত্তর): a) Decomposition / ডিকম্পোজিশন
Explanation (ব্যাখ্যা): Decomposition, also known as factoring, is the process of breaking a complex problem or system into smaller parts that are more manageable and easier to understand, design, and maintain. This is a core principle of structured programming. / ডিকম্পোজিশন, যা ফ্যাক্টরিং নামেও পরিচিত, হলো একটি জটিল সমস্যা বা সিস্টেমকে ছোট অংশে বিভক্ত করার প্রক্রিয়া যা পরিচালনা করা এবং বোঝা, ডিজাইন করা এবং রক্ষণাবেক্ষণ করা সহজ। এটি স্ট্রাকচার্ড প্রোগ্রামিংয়ের একটি মূল নীতি।
44. A variable that is accessible throughout the entire program is called a: / একটি ভেরিয়েবল যা পুরো প্রোগ্রামে অ্যাক্সেস করা যায় তাকে বলা হয়:
- Local variable / লোকাল ভেরিয়েবল
- Global variable / গ্লোবাল ভেরিয়েবল
- Static variable / স্ট্যাটিক ভেরিয়েবল
- Private variable / প্রাইভেট ভেরিয়েবল
Correct Answer (সঠিক উত্তর): b) Global variable / গ্লোবাল ভেরিয়েবল
Explanation (ব্যাখ্যা): A global variable is declared outside of any function and can be accessed or modified by any part of the program. Overuse of global variables is generally discouraged in structured programming as it can lead to code that is hard to debug. / একটি গ্লোবাল ভেরিয়েবল যেকোনো ফাংশনের বাইরে ঘোষণা করা হয় এবং প্রোগ্রামের যেকোনো অংশ দ্বারা অ্যাক্সেস বা পরিবর্তন করা যেতে পারে। স্ট্রাকচার্ড প্রোগ্রামিংয়ে গ্লোবাল ভেরিয়েবলের অতিরিক্ত ব্যবহার সাধারণত নিরুৎসাহিত করা হয় কারণ এটি ডিবাগ করা কঠিন কোডের দিকে নিয়ে যেতে পারে।
45. Which control structure is used to execute a block of code repeatedly as long as a condition is true? / কোন কন্ট্রোল স্ট্রাকচার একটি কোড ব্লক বারবার কার্যকর করতে ব্যবহৃত হয় যতক্ষণ পর্যন্ত একটি শর্ত সত্য থাকে?
- If-Else / ইফ-এলস
- Switch / সুইচ
- Loop (e.g., while, for) / লুপ (যেমন, হোয়াইল, ফর)
- Function Call / ফাংশন কল
Correct Answer (সঠিক উত্তর): c) Loop (e.g., while, for) / লুপ (যেমন, হোয়াইল, ফর)
Explanation (ব্যাখ্যা): Loops (like `for`, `while`, `do-while`) are fundamental control structures in programming used for iteration. They allow a set of instructions to be executed repeatedly until a certain condition is met. / লুপ (যেমন `for`, `while`, `do-while`) প্রোগ্রামিংয়ের মৌলিক কন্ট্রোল স্ট্রাকচার যা পুনরাবৃত্তির জন্য ব্যবহৃত হয়। তারা একটি নির্দিষ্ট শর্ত পূরণ না হওয়া পর্যন্ত নির্দেশাবলীর একটি সেট বারবার কার্যকর করার অনুমতি দেয়।
46. The time complexity of binary search algorithm is: / বাইনারি সার্চ অ্যালগরিদমের টাইম কমপ্লেক্সিটি হলো:
- O(n)
- O(log n)
- O(n^2)
- O(1)
Correct Answer (সঠিক উত্তর): b) O(log n)
Explanation (ব্যাখ্যা): Binary search works on a sorted array by repeatedly dividing the search interval in half. This logarithmic complexity makes it much more efficient than linear search for large datasets. / বাইনারি সার্চ একটি সাজানো অ্যারেতে কাজ করে বারবার সার্চ ইন্টারভালকে অর্ধেক করে। এই লগারিদমিক কমপ্লেক্সিটি এটিকে বড় ডেটাসেটের জন্য লিনিয়ার সার্চের চেয়ে অনেক বেশি কার্যকর করে তোলে।
47. A “pointer” in programming is: / প্রোগ্রামিংয়ে একটি “পয়েন্টার” হলো:
- A data type / একটি ডেটা টাইপ
- A keyword / একটি কীওয়ার্ড
- A variable that stores the memory address of another variable / একটি ভেরিয়েবল যা অন্য একটি ভেরিয়েবলের মেমরি ঠিকানা সংরক্ষণ করে
- A function / একটি ফাংশন
Correct Answer (সঠিক উত্তর): c) A variable that stores the memory address of another variable / একটি ভেরিয়েবল যা অন্য একটি ভেরিয়েবলের মেমরি ঠিকানা সংরক্ষণ করে
Explanation (ব্যাখ্যা): Pointers are a powerful feature in languages like C/C++. They hold the memory location of a piece of data, allowing for direct memory manipulation and dynamic data structures like linked lists. / পয়েন্টারগুলি C/C++ এর মতো ভাষাগুলিতে একটি শক্তিশালী বৈশিষ্ট্য। তারা একটি ডেটার মেমরি অবস্থান ধরে রাখে, যা সরাসরি মেমরি ম্যানিপুলেশন এবং লিঙ্কড লিস্টের মতো ডাইনামিক ডেটা স্ট্রাকচারের অনুমতি দেয়।
48. Which is NOT a valid classification of programming languages? / কোনটি প্রোগ্রামিং ভাষার একটি বৈধ শ্রেণীবিভাগ নয়?
- High-level / উচ্চ-স্তর
- Low-level / নিম্ন-স্তর
- Middle-level / মধ্যম-স্তর
- Side-level / সাইড-স্তর
Correct Answer (সঠিক উত্তর): d) Side-level / সাইড-স্তর
Explanation (ব্যাখ্যা): Programming languages are commonly classified based on their level of abstraction from hardware: high-level (e.g., Python), low-level (e.g., Assembly), and sometimes middle-level (e.g., C). “Side-level” is not a recognized classification. / প্রোগ্রামিং ভাষাগুলিকে সাধারণত হার্ডওয়্যার থেকে তাদের অ্যাবস্ট্রাকশনের স্তরের উপর ভিত্তি করে শ্রেণীবদ্ধ করা হয়: উচ্চ-স্তর (যেমন, পাইথন), নিম্ন-স্তর (যেমন, অ্যাসেম্বলি), এবং কখনও কখনও মধ্যম-স্তর (যেমন, সি)। “সাইড-স্তর” একটি স্বীকৃত শ্রেণীবিভাগ নয়।
49. In a queue, where are new elements added? / একটি কিউতে, নতুন উপাদানগুলি কোথায় যোগ করা হয়?
- At the front / সামনে
- At the rear (or back) / পিছনে (বা পেছনে)
- In the middle / মাঝখানে
- At any position / যেকোনো অবস্থানে
Correct Answer (সঠিক উত্তর): b) At the rear (or back) / পিছনে (বা পেছনে)
Explanation (ব্যাখ্যা): Following the FIFO principle, new elements are always added to the rear of the queue (enqueue operation), and elements are removed from the front (dequeue operation). / FIFO নীতি অনুসরণ করে, নতুন উপাদানগুলি সর্বদা কিউয়ের পিছনে যোগ করা হয় (এনকিউ অপারেশন), এবং উপাদানগুলি সামনে থেকে সরানো হয় (ডিকিউ অপারেশন)।
50. True parallel execution is possible on a system with: / সত্যিকারের সমান্তরাল এক্সিকিউশন সম্ভব একটি সিস্টেমে যেখানে আছে:
- Multitasking / মাল্টিটাস্কিং
- Multiprogramming / মাল্টিপ্রোগ্রামিং
- Multiprocessing / মাল্টিপ্রসেসিং
- Time-sharing / টাইম-শেয়ারিং
Correct Answer (সঠিক উত্তর): c) Multiprocessing / মাল্টিপ্রসেসিং
Explanation (ব্যাখ্যা): Multiprocessing involves having multiple CPUs. This is the only scenario where multiple processes or threads can be executed truly simultaneously, as each CPU can work on a different task at the exact same time. The others provide an illusion of parallelism on a single CPU. / মাল্টিপ্রসেসিং-এ একাধিক সিপিইউ থাকে। এটিই একমাত্র পরিস্থিতি যেখানে একাধিক প্রসেস বা থ্রেড সত্যিই একই সাথে কার্যকর করা যেতে পারে, কারণ প্রতিটি সিপিইউ একই সময়ে একটি ভিন্ন টাস্কে কাজ করতে পারে। অন্যগুলি একটি একক সিপিইউ-তে সমান্তরালতার একটি বিভ্রম প্রদান করে।
51. Which language is considered a middle-level language because it supports both low-level and high-level features? / কোন ভাষাকে একটি মধ্যম-স্তরের ভাষা হিসাবে বিবেচনা করা হয় কারণ এটি নিম্ন-স্তরের এবং উচ্চ-স্তরের উভয় বৈশিষ্ট্য সমর্থন করে?
- Python / পাইথন
- Java / জাভা
- C / সি
- LISP / লিস্প
Correct Answer (সঠিক উত্তর): c) C / সি
Explanation (ব্যাখ্যা): The C programming language is often called a middle-level language because it combines elements of high-level languages (like structured programming concepts) with the functionality of assembly language (like direct memory manipulation via pointers). / সি প্রোগ্রামিং ভাষাকে প্রায়শই একটি মধ্যম-স্তরের ভাষা বলা হয় কারণ এটি উচ্চ-স্তরের ভাষার উপাদান (যেমন স্ট্রাকচার্ড প্রোগ্রামিং ধারণা) এবং অ্যাসেম্বলি ভাষার কার্যকারিতা (যেমন পয়েন্টার দ্বারা সরাসরি মেমরি ম্যানিপুলেশন) উভয়ই একত্রিত করে।
52. A stack is also known as a: / একটি স্ট্যাককে এই নামেও জানা যায়:
- FIFO List / ফিফো লিস্ট
- LIFO List / লিফো লিস্ট
- Heap / হিপ
- Tree / ট্রি
Correct Answer (সঠিক উত্তর): b) LIFO List / লিফো লিস্ট
Explanation (ব্যাখ্যা): Due to its “Last-In, First-Out” nature, a stack is fundamentally a LIFO list. This is its defining characteristic. / এর “লাস্ট-ইন, ফার্স্ট-আউট” প্রকৃতির কারণে, একটি স্ট্যাক মৌলিকভাবে একটি LIFO তালিকা। এটিই এর সংজ্ঞায়িত বৈশিষ্ট্য।
53. The memory for a linked list is allocated at: / একটি লিঙ্কড লিস্টের জন্য মেমরি বরাদ্দ করা হয়:
- Compile time / কম্পাইল টাইমে
- Runtime / রানটাইমে
- Link time / লিঙ্ক টাইমে
- Load time / লোড টাইমে
Correct Answer (সঠিক উত্তর): b) Runtime / রানটাইমে
Explanation (ব্যাখ্যা): Linked lists are dynamic data structures. Memory for each new node is allocated dynamically during the program’s execution (runtime) as needed, typically from the heap. This contrasts with arrays, where size is often fixed at compile time. / লিঙ্কড লিস্ট হলো ডাইনামিক ডেটা স্ট্রাকচার। প্রতিটি নতুন নোডের জন্য মেমরি প্রয়োজন অনুযায়ী প্রোগ্রামের এক্সিকিউশন (রানটাইম) চলাকালীন গতিশীলভাবে বরাদ্দ করা হয়, সাধারণত হিপ থেকে। এটি অ্যারে থেকে ভিন্ন, যেখানে আকার প্রায়শই কম্পাইল টাইমে স্থির করা হয়।
54. Which of the following is NOT a fundamental control structure in structured programming? / নিচের কোনটি স্ট্রাকচার্ড প্রোগ্রামিংয়ে একটি মৌলিক কন্ট্রোল স্ট্রাকচার নয়?
- Sequence / সিকোয়েন্স
- Selection (If/Switch) / সিলেকশন (ইফ/সুইচ)
- Iteration (Loop) / ইটারেশন (লুপ)
- Inheritance / ইনহেরিটেন্স
Correct Answer (সঠিক উত্তর): d) Inheritance / ইনহেরিটেন্স
Explanation (ব্যাখ্যা): Sequence, Selection, and Iteration are the three basic control structures of structured programming. Inheritance is a fundamental concept of Object-Oriented Programming (OOP), not structured programming. / সিকোয়েন্স, সিলেকশন এবং ইটারেশন হলো স্ট্রাকচার্ড প্রোগ্রামিংয়ের তিনটি মৌলিক কন্ট্রোল স্ট্রাকচার। ইনহেরিটেন্স হলো অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP)-এর একটি মৌলিক ধারণা, স্ট্রাকচার্ড প্রোগ্রামিংয়ের নয়।
55. An OS that keeps multiple jobs in memory and switches between them is called: / একটি ওএস যা মেমরিতে একাধিক কাজ রাখে এবং তাদের মধ্যে সুইচ করে তাকে বলা হয়:
- Real-time / রিয়েল-টাইম
- Batch / ব্যাচ
- Multiprogrammed / মাল্টিপ্রোগ্রামড
- Single-user / সিঙ্গেল-ইউজার
Correct Answer (সঠিক উত্তর): c) Multiprogrammed / মাল্টিপ্রোগ্রামড
Explanation (ব্যাখ্যা): This is the definition of a multiprogramming operating system. Its goal is to maximize CPU utilization by always having a job ready to execute when the current job has to wait for an I/O operation. / এটি একটি মাল্টিপ্রোগ্রামিং অপারেটিং সিস্টেমের সংজ্ঞা। এর লক্ষ্য হলো যখন বর্তমান কাজটিকে একটি I/O অপারেশনের জন্য অপেক্ষা করতে হয়, তখন সর্বদা একটি কাজ কার্যকর করার জন্য প্রস্তুত রেখে সিপিইউ ব্যবহার সর্বাধিক করা।
56. What is the main advantage of a linked list over an array? / একটি অ্যারের তুলনায় একটি লিঙ্কড লিস্টের প্রধান সুবিধা কী?
- Faster access to elements by index / ইনডেক্স দ্বারা উপাদানগুলিতে দ্রুত অ্যাক্সেস
- Dynamic size and easier insertion/deletion / গতিশীল আকার এবং সহজ সন্নিবেশ/মোছা
- Less memory usage per element / প্রতি উপাদানে কম মেমরি ব্যবহার
- Elements are stored contiguously / উপাদানগুলি সংলগ্নভাবে সংরক্ষণ করা হয়
Correct Answer (সঠিক উত্তর): b) Dynamic size and easier insertion/deletion / গতিশীল আকার এবং সহজ সন্নিবেশ/মোছা
Explanation (ব্যাখ্যা): Linked lists can grow or shrink in size during runtime, and inserting or deleting an element in the middle of the list is efficient (O(1)) if you have a pointer to the node before it, as it only requires updating pointers, not shifting elements like in an array. / লিঙ্কড লিস্ট রানটাইমের সময় আকারে বাড়তে বা সঙ্কুচিত হতে পারে, এবং তালিকার মাঝখানে একটি উপাদান সন্নিবেশ করা বা মোছা কার্যকর (O(1)) যদি আপনার কাছে এর আগের নোডের একটি পয়েন্টার থাকে, কারণ এটি শুধুমাত্র পয়েন্টার আপডেট করার প্রয়োজন হয়, অ্যারের মতো উপাদানগুলি স্থানান্তর করার প্রয়োজন হয় না।
57. The “top” pointer in a stack points to: / একটি স্ট্যাকের “টপ” পয়েন্টারটি নির্দেশ করে:
- The first element inserted / প্রথম সন্নিবেশিত উপাদানটি
- The last element inserted / সর্বশেষ সন্নিবেশিত উপাদানটি
- The middle element / মাঝের উপাদানটি
- The base of the stack / স্ট্যাকের ভিত্তি
Correct Answer (সঠিক উত্তর): b) The last element inserted / সর্বশেষ সন্নিবেশিত উপাদানটি
Explanation (ব্যাখ্যা): In a stack, the “top” is a pointer or index that always keeps track of the last element that was pushed onto the stack. All push and pop operations happen at the top. / একটি স্ট্যাকে, “টপ” হলো একটি পয়েন্টার বা ইনডেক্স যা সর্বদা স্ট্যাকে পুশ করা সর্বশেষ উপাদানটির ট্র্যাক রাখে। সমস্ত পুশ এবং পপ অপারেশন টপ-এ ঘটে।
58. The first generation of programming languages was: / প্রোগ্রামিং ভাষার প্রথম প্রজন্ম ছিল:
- High-level languages / উচ্চ-স্তরের ভাষা
- Assembly languages / অ্যাসেম্বলি ভাষা
- Machine languages / মেশিন ভাষা
- Natural languages / প্রাকৃতিক ভাষা
Correct Answer (সঠিক উত্তর): c) Machine languages / মেশিন ভাষা
Explanation (ব্যাখ্যা): The first generation languages (1GL) were machine languages, consisting of raw binary code that the computer could directly execute. They were extremely difficult for humans to program in. / প্রথম প্রজন্মের ভাষা (1GL) ছিল মেশিন ভাষা, যা কাঁচা বাইনারি কোড নিয়ে গঠিত যা কম্পিউটার সরাসরি কার্যকর করতে পারত। মানুষের জন্য এগুলিতে প্রোগ্রাম করা অত্যন্ত কঠিন ছিল।
59. Which of these is a system software? / এদের মধ্যে কোনটি একটি সিস্টেম সফ্টওয়্যার?
- Microsoft Word / মাইক্রোসফ্ট ওয়ার্ড
- Operating System / অপারেটিং সিস্টেম
- Adobe Photoshop / অ্যাডোব ফটোশপ
- VLC Media Player / ভিএলসি মিডিয়া প্লেয়ার
Correct Answer (সঠিক উত্তর): b) Operating System / অপারেটিং সিস্টেম
Explanation (ব্যাখ্যা): System software manages computer hardware and provides a platform for application software to run. The OS is the most fundamental example. Others include compilers and device drivers. The other options are application software. / সিস্টেম সফ্টওয়্যার কম্পিউটার হার্ডওয়্যার পরিচালনা করে এবং অ্যাপ্লিকেশন সফ্টওয়্যার চালানোর জন্য একটি প্ল্যাটফর্ম প্রদান করে। ওএস হলো সবচেয়ে মৌলিক উদাহরণ। অন্যগুলির মধ্যে রয়েছে কম্পাইলার এবং ডিভাইস ড্রাইভার। অন্য বিকল্পগুলি হলো অ্যাপ্লিকেশন সফ্টওয়্যার।
60. Flowcharts and pseudo-code are used for: / ফ্লোচার্ট এবং সিউডো-কোড ব্যবহৃত হয়:
- Writing machine code / মেশিন কোড লেখার জন্য
- Algorithm representation and design / অ্যালগরিদম উপস্থাপন এবং ডিজাইন করার জন্য
- Debugging hardware / হার্ডওয়্যার ডিবাগ করার জন্য
- Managing databases / ডেটাবেস পরিচালনা করার জন্য
Correct Answer (সঠিক উত্তর): b) Algorithm representation and design / অ্যালগরিদম উপস্থাপন এবং ডিজাইন করার জন্য
Explanation (ব্যাখ্যা): Both flowcharts (graphical) and pseudo-code (textual) are tools used by programmers to design, document, and communicate the logic of an algorithm before writing it in an actual programming language. / ফ্লোচার্ট (গ্রাফিক্যাল) এবং সিউডো-কোড (টেক্সচুয়াল) উভয়ই প্রোগ্রামারদের দ্বারা একটি প্রকৃত প্রোগ্রামিং ভাষায় লেখার আগে একটি অ্যালগরিদমের যুক্তি ডিজাইন, ডকুমেন্ট এবং যোগাযোগ করার জন্য ব্যবহৃত সরঞ্জাম।
61. An array index usually starts at: / একটি অ্যারে ইনডেক্স সাধারণত শুরু হয়:
- 1
- 0
- -1
- It depends on the language / এটি ভাষার উপর নির্ভর করে
Correct Answer (সঠিক উত্তর): b) 0
Explanation (ব্যাখ্যা): In most modern programming languages like C, C++, Java, Python, and JavaScript, arrays are zero-indexed, meaning the first element is at index 0. Some older languages like Fortran or specialized languages like MATLAB may use 1-based indexing. / সি, সি++, জাভা, পাইথন এবং জাভাস্ক্রিপ্টের মতো বেশিরভাগ আধুনিক প্রোগ্রামিং ভাষায়, অ্যারেগুলি শূন্য-ইনডেক্সযুক্ত, যার অর্থ প্রথম উপাদানটি ইনডেক্স ০-তে থাকে। ফোরট্রানের মতো কিছু পুরানো ভাষা বা ম্যাটল্যাবের মতো বিশেষায়িত ভাষা ১-ভিত্তিক ইনডেক্সিং ব্যবহার করতে পারে।
62. Which concept means hiding the complex implementation details and showing only the essential features of an object? / কোন ধারণার অর্থ হলো জটিল বাস্তবায়ন বিবরণ লুকিয়ে রাখা এবং একটি বস্তুর শুধুমাত্র প্রয়োজনীয় বৈশিষ্ট্যগুলি দেখানো?
- Inheritance / ইনহেরিটেন্স
- Polymorphism / পলিমরফিজম
- Abstraction / অ্যাবস্ট্রাকশন
- Decomposition / ডিকম্পোজিশন
Correct Answer (সঠিক উত্তর): c) Abstraction / অ্যাবস্ট্রাকশন
Explanation (ব্যাখ্যা): Abstraction is a core principle in programming (especially OOP) that involves simplifying complex systems by modeling classes based on their relevant attributes and behaviors, while hiding unnecessary implementation details from the user. / অ্যাবস্ট্রাকশন হলো প্রোগ্রামিংয়ের (বিশেষ করে OOP) একটি মূল নীতি যা প্রাসঙ্গিক বৈশিষ্ট্য এবং আচরণের উপর ভিত্তি করে ক্লাস মডেলিং করে জটিল সিস্টেমগুলিকে সরলীকরণ করে, যখন ব্যবহারকারীর কাছ থেকে অপ্রয়োজনীয় বাস্তবায়ন বিবরণ লুকিয়ে রাখে।
63. A queue where elements can be added or removed from either the front or the rear is called a: / একটি কিউ যেখানে উপাদানগুলি সামনে বা পিছন থেকে যোগ করা বা সরানো যায় তাকে বলা হয়:
- Priority Queue / প্রায়োরিটি কিউ
- Circular Queue / সার্কুলার কিউ
- Deque (Double-Ended Queue) / ডেক (ডাবল-এন্ডেড কিউ)
- Simple Queue / সিম্পল কিউ
Correct Answer (সঠিক উত্তর): c) Deque (Double-Ended Queue) / ডেক (ডাবল-এন্ডেড কিউ)
Explanation (ব্যাখ্যা): A deque, or double-ended queue, is a generalized version of a queue that allows insertion and deletion at both ends (front and rear). / একটি ডেক, বা ডাবল-এন্ডেড কিউ, হলো একটি কিউয়ের একটি সাধারণীকৃত সংস্করণ যা উভয় প্রান্তে (সামনে এবং পিছনে) সন্নিবেশ এবং মোছার অনুমতি দেয়।
64. A “logical error” in a program results in: / একটি প্রোগ্রামে একটি “লজিক্যাল এরর” (logical error) এর ফলে হয়:
- The program crashing / প্রোগ্রাম ক্র্যাশ করে
- A compiler error / একটি কম্পাইলার এরর
- Incorrect or unexpected output / ভুল বা অপ্রত্যাশিত আউটপুট
- A hardware failure / একটি হার্ডওয়্যার ব্যর্থতা
Correct Answer (সঠিক উত্তর): c) Incorrect or unexpected output / ভুল বা অপ্রত্যাশিত আউটপুট
Explanation (ব্যাখ্যা): A logical error is a mistake in the program’s logic. The program will compile and run without crashing, but it will not produce the intended result because the algorithm itself is flawed. These are often the hardest bugs to find. / একটি লজিক্যাল এরর হলো প্রোগ্রামের যুক্তিতে একটি ভুল। প্রোগ্রামটি ক্র্যাশ না করে কম্পাইল এবং রান হবে, কিন্তু এটি উদ্দিষ্ট ফলাফল তৈরি করবে না কারণ অ্যালগরিদম নিজেই ত্রুটিপূর্ণ। এগুলি প্রায়শই খুঁজে বের করা সবচেয়ে কঠিন বাগ।
65. What is the role of a linker? / একটি লিঙ্কারের (linker) ভূমিকা কী?
- To translate source code to object code / সোর্স কোডকে অবজেক্ট কোডে অনুবাদ করা
- To combine object files and library functions into a single executable file / অবজেক্ট ফাইল এবং লাইব্রেরি ফাংশনগুলিকে একটি একক এক্সিকিউটেবল ফাইলে একত্রিত করা
- To load the executable file into memory / এক্সিকিউটেবল ফাইলটিকে মেমরিতে লোড করা
- To edit the source code / সোর্স কোড সম্পাদনা করা
Correct Answer (সঠিক উত্তর): b) To combine object files and library functions into a single executable file / অবজেক্ট ফাইল এবং লাইব্রেরি ফাংশনগুলিকে একটি একক এক্সিকিউটেবল ফাইলে একত্রিত করা
Explanation (ব্যাখ্যা): After the compiler generates one or more object files, the linker takes these files, resolves references between them, links them with necessary library code, and produces a final executable program. / কম্পাইলার এক বা একাধিক অবজেক্ট ফাইল তৈরি করার পরে, লিঙ্কার এই ফাইলগুলি নেয়, তাদের মধ্যে রেফারেন্সগুলি সমাধান করে, প্রয়োজনীয় লাইব্রেরি কোডের সাথে লিঙ্ক করে এবং একটি চূড়ান্ত এক্সিকিউটেবল প্রোগ্রাম তৈরি করে।
66. A program that runs on one type of machine can also run on another type of machine. This quality is called: / একটি প্রোগ্রাম যা এক ধরনের মেশিনে চলে, তা অন্য ধরনের মেশিনেও চলতে পারে। এই গুণকে বলা হয়:
- Portability / পোর্টেবিলিটি
- Reliability / রিলায়বিলিটি
- Scalability / স্কেলেবিলিটি
- Usability / ইউজেবিলিটি
Correct Answer (সঠিক উত্তর): a) Portability / পোর্টেবিলিটি
Explanation (ব্যাখ্যা): Portability is the ability of software to be transferred from one machine or system environment to another with minimal changes. High-level languages generally produce more portable code than low-level languages. / পোর্টেবিলিটি হলো সফ্টওয়্যারের এক মেশিন বা সিস্টেম পরিবেশ থেকে অন্যটিতে ন্যূনতম পরিবর্তনে স্থানান্তর করার ক্ষমতা। উচ্চ-স্তরের ভাষাগুলি সাধারণত নিম্ন-স্তরের ভাষাগুলির চেয়ে বেশি পোর্টেবল কোড তৈরি করে।
67. The “front” and “rear” pointers are associated with which data structure? / “ফ্রন্ট” এবং “রিয়ার” পয়েন্টারগুলি কোন ডেটা স্ট্রাকচারের সাথে যুক্ত?
- Stack / স্ট্যাক
- Array / অ্যারে
- Queue / কিউ
- Tree / ট্রি
Correct Answer (সঠিক উত্তর): c) Queue / কিউ
Explanation (ব্যাখ্যা): In a queue implementation, “front” points to the first element (for dequeueing) and “rear” points to the last element (for enqueueing). / একটি কিউ বাস্তবায়নে, “ফ্রন্ট” প্রথম উপাদানটিকে (ডিকিউ করার জন্য) এবং “রিয়ার” শেষ উপাদানটিকে (এনকিউ করার জন্য) নির্দেশ করে।
68. Which of these is a valid pseudo-code statement? / এদের মধ্যে কোনটি একটি বৈধ সিউডো-কোড স্টেটমেন্ট?
- `int x = 5;`
- `DISPLAY “Hello, World”`
- `01001011 00101001`
- `MOV AX, BX`
Correct Answer (সঠিক উত্তর): b) `DISPLAY “Hello, World”`
Explanation (ব্যাখ্যা): Pseudo-code uses informal, human-readable language. `DISPLAY` is a common pseudo-code keyword for output. Option ‘a’ is C/Java syntax, ‘c’ is binary, and ‘d’ is assembly language. / সিউডো-কোড অনানুষ্ঠানিক, মানুষ-পঠনযোগ্য ভাষা ব্যবহার করে। `DISPLAY` আউটপুটের জন্য একটি সাধারণ সিউডো-কোড কীওয়ার্ড। বিকল্প ‘a’ হলো সি/জাভা সিনট্যাক্স, ‘c’ হলো বাইনারি, এবং ‘d’ হলো অ্যাসেম্বলি ভাষা।
69. What is the primary disadvantage of using an array for data storage? / ডেটা সংরক্ষণের জন্য একটি অ্যারে ব্যবহার করার প্রধান অসুবিধা কী?
- Slow access time / ধীর অ্যাক্সেস সময়
- It cannot store elements of the same type / এটি একই ধরনের উপাদান সংরক্ষণ করতে পারে না
- Fixed size / স্থির আকার
- High memory usage / উচ্চ মেমরি ব্যবহার
Correct Answer (সঠিক উত্তর): c) Fixed size / স্থির আকার
Explanation (ব্যাখ্যা): In many languages, the size of a static array must be declared at compile time and cannot be changed during runtime. This can lead to wasted memory if the array is too large, or insufficient space if it’s too small. / অনেক ভাষায়, একটি স্ট্যাটিক অ্যারের আকার কম্পাইল টাইমে ঘোষণা করতে হবে এবং রানটাইমের সময় পরিবর্তন করা যাবে না। এটি মেমরির অপচয় করতে পারে যদি অ্যারেটি খুব বড় হয়, বা অপর্যাপ্ত স্থান হতে পারে যদি এটি খুব ছোট হয়।
70. The CPU switching from one process to another is called: / সিপিইউ-এর এক প্রসেস থেকে অন্য প্রসেসে পরিবর্তন করাকে বলা হয়:
- Context Switch / কনটেক্সট সুইচ
- Process Swap / প্রসেস সোয়াপ
- Memory Management / মেমরি ম্যানেজমেন্ট
- Interrupt Handling / ইন্টারাপ্ট হ্যান্ডলিং
Correct Answer (সঠিক উত্তর): a) Context Switch / কনটেক্সট সুইচ
Explanation (ব্যাখ্যা): A context switch is the process of storing the state of a process or thread so that it can be restored and resume execution at a later point. This allows multiple processes to share a single CPU and is a key feature of multitasking operating systems. / একটি কনটেক্সট সুইচ হলো একটি প্রসেস বা থ্রেডের অবস্থা সংরক্ষণ করার প্রক্রিয়া যাতে এটি পুনরুদ্ধার করা যায় এবং পরবর্তী সময়ে এক্সিকিউশন পুনরায় শুরু করা যায়। এটি একাধিক প্রসেসকে একটি একক সিপিইউ শেয়ার করার অনুমতি দেয় এবং এটি মাল্টিটাস্কিং অপারেটিং সিস্টেমের একটি মূল বৈশিষ্ট্য।
71. An “empty” linked list has its head pointer set to: / একটি “খালি” লিঙ্কড লিস্টের হেড পয়েন্টারটি সেট করা থাকে:
- 0
- -1
- NULL or nullptr / NULL বা nullptr
- The address of the last node / শেষ নোডের ঠিকানায়
Correct Answer (সঠিক উত্তর): c) NULL or nullptr / NULL বা nullptr
Explanation (ব্যাখ্যা): The `head` pointer of a linked list points to the first node. If the list is empty (contains no nodes), the `head` pointer is set to a special value, `NULL` (in C) or `nullptr` (in C++), to indicate that it doesn’t point to anything. / একটি লিঙ্কড লিস্টের `head` পয়েন্টারটি প্রথম নোডকে নির্দেশ করে। যদি তালিকাটি খালি থাকে (কোনো নোড ধারণ করে না), তাহলে `head` পয়েন্টারটি একটি বিশেষ মান, `NULL` (সি-তে) বা `nullptr` (সি++-এ), সেট করা হয়, এটি নির্দেশ করার জন্য যে এটি কোনো কিছুকে নির্দেশ করছে না।
72. Which of the following best describes “structured programming”? / নিচের কোনটি “স্ট্রাকচার্ড প্রোগ্রামিং” কে সবচেয়ে ভালোভাবে বর্ণনা করে?
- Programming with classes and objects / ক্লাস এবং অবজেক্ট দিয়ে প্রোগ্রামিং
- Programming with a focus on functions and control structures like loops and conditions / ফাংশন এবং কন্ট্রোল স্ট্রাকচার যেমন লুপ এবং কন্ডিশনের উপর মনোযোগ দিয়ে প্রোগ্রামিং
- Programming using only binary code / শুধুমাত্র বাইনারি কোড ব্যবহার করে প্রোগ্রামিং
- Programming for multi-core processors / মাল্টি-কোর প্রসেসরের জন্য প্রোগ্রামিং
Correct Answer (সঠিক উত্তর): b) Programming with a focus on functions and control structures like loops and conditions / ফাংশন এবং কন্ট্রোল স্ট্রাকচার যেমন লুপ এবং কন্ডিশনের উপর মনোযোগ দিয়ে প্রোগ্রামিং
Explanation (ব্যাখ্যা): Structured programming is a procedural programming paradigm that emphasizes modularity (using functions/subroutines) and the use of basic control structures (sequence, selection, iteration) to create clear, maintainable code. / স্ট্রাকচার্ড প্রোগ্রামিং একটি প্রসিডিউরাল প্রোগ্রামিং প্যারাডাইম যা মডুলারিটি (ফাংশন/সাবরুটিন ব্যবহার করে) এবং স্পষ্ট, রক্ষণাবেক্ষণযোগ্য কোড তৈরি করার জন্য মৌলিক কন্ট্রোল স্ট্রাকচার (সিকোয়েন্স, সিলেকশন, ইটারেশন) ব্যবহারের উপর জোর দেয়।
73. Assembly language uses ______ instead of binary numbers. / অ্যাসেম্বলি ভাষা বাইনারি সংখ্যার পরিবর্তে ______ ব্যবহার করে।
- English words / ইংরেজি শব্দ
- Mnemonics / নেমোনিক্স (স্মৃতিসহায়ক)
- Flowchart symbols / ফ্লোচার্ট প্রতীক
- Hexadecimal numbers only / শুধুমাত্র হেক্সাডেসিমেল সংখ্যা
Correct Answer (সঠিক উত্তর): b) Mnemonics / নেমোনিক্স (স্মৃতিসহায়ক)
Explanation (ব্যাখ্যা): Assembly language is a low-level language that uses short, English-like abbreviations called mnemonics (e.g., `MOV` for move, `ADD` for add) to represent machine code instructions, making it more human-readable than pure binary. / অ্যাসেম্বলি ভাষা একটি নিম্ন-স্তরের ভাষা যা মেশিন কোড নির্দেশাবলী উপস্থাপন করার জন্য নেমোনিক্স (যেমন, `MOV` মুভ করার জন্য, `ADD` যোগ করার জন্য) নামক সংক্ষিপ্ত, ইংরেজি-সদৃশ সংক্ষিপ্ত রূপ ব্যবহার করে, যা এটিকে বিশুদ্ধ বাইনারির চেয়ে বেশি মানুষ-পঠনযোগ্য করে তোলে।
74. If a problem can be solved in O(1) time, its execution time is: / যদি একটি সমস্যা O(1) সময়ে সমাধান করা যায়, তবে এর এক্সিকিউশন সময়:
- Dependent on the input size / ইনপুট আকারের উপর নির্ভরশীল
- Constant and not dependent on the input size / ধ্রুবক এবং ইনপুট আকারের উপর নির্ভরশীল নয়
- Logarithmic / লগারিদমিক
- Exponential / এক্সপোনেনশিয়াল
Correct Answer (সঠিক উত্তর): b) Constant and not dependent on the input size / ধ্রুবক এবং ইনপুট আকারের উপর নির্ভরশীল নয়
Explanation (ব্যাখ্যা): O(1) denotes constant time complexity. This means the algorithm will take the same amount of time to execute, regardless of how large the input data is. Accessing an array element by index is a classic O(1) operation. / O(1) ধ্রুবক টাইম কমপ্লেক্সিটি নির্দেশ করে। এর মানে হলো অ্যালগরিদমটি কার্যকর করতে একই পরিমাণ সময় নেবে, ইনপুট ডেটা যত বড়ই হোক না কেন। ইনডেক্স দ্বারা একটি অ্যারে উপাদান অ্যাক্সেস করা একটি ক্লাসিক O(1) অপারেশন।
75. The condition in which a process is waiting for an event that will never occur is called: / যে অবস্থায় একটি প্রসেস এমন একটি ঘটনার জন্য অপেক্ষা করছে যা কখনই ঘটবে না, তাকে বলা হয়:
- Starvation / স্টারভেশন
- Deadlock / ডেডলক
- Aging / এজিং
- Race Condition / রেস কন্ডিশন
Correct Answer (সঠিক উত্তর): b) Deadlock / ডেডলক
Explanation (ব্যাখ্যা): Deadlock is a state in concurrent systems where two or more processes are blocked forever, each waiting for a resource held by another process in the set. Starvation is when a process is perpetually denied necessary resources to proceed. / ডেডলক হলো কনকারেন্ট সিস্টেমে একটি অবস্থা যেখানে দুই বা ততোধিক প্রসেস চিরতরে ব্লক হয়ে যায়, প্রত্যেকে সেটের অন্য একটি প্রসেসের দ্বারা ধারণ করা একটি রিসোর্সের জন্য অপেক্ষা করে। স্টারভেশন হলো যখন একটি প্রসেসকে এগিয়ে যাওয়ার জন্য প্রয়োজনীয় রিসোর্স থেকে চিরতরে বঞ্চিত করা হয়।
76. The last node in a singly linked list points to: / একটি একক লিঙ্কড লিস্টের শেষ নোডটি নির্দেশ করে:
- The first node / প্রথম নোডকে
- Itself / নিজেকে
- The previous node / আগের নোডকে
- NULL / NULL
Correct Answer (সঠিক উত্তর): d) NULL / NULL
Explanation (ব্যাখ্যা): The `next` pointer of the very last node in a singly linked list is set to `NULL` to signify the end of the list. / একটি একক লিঙ্কড লিস্টের একেবারে শেষ নোডের `next` পয়েন্টারটি `NULL` সেট করা হয় তালিকার শেষ বোঝানোর জন্য।
77. A program that translates and executes code statement-by-statement is a(n): / একটি প্রোগ্রাম যা কোডকে স্টেটমেন্ট-বাই-স্টেটমেন্ট অনুবাদ করে এবং কার্যকর করে তা হলো একটি:
- Compiler / কম্পাইলার
- Linker / লিঙ্কার
- Interpreter / ইন্টারপ্রেটার
- Loader / লোডার
Correct Answer (সঠিক উত্তর): c) Interpreter / ইন্টারপ্রেটার
Explanation (ব্যাখ্যা): This is the defining behavior of an interpreter. It reads one line of source code, translates it to machine code, executes it, and then moves to the next line. Python and JavaScript are typically interpreted languages. / এটি একটি ইন্টারপ্রেটারের সংজ্ঞায়িত আচরণ। এটি সোর্স কোডের একটি লাইন পড়ে, এটিকে মেশিন কোডে অনুবাদ করে, এটি কার্যকর করে এবং তারপরে পরবর্তী লাইনে যায়। পাইথন এবং জাভাস্ক্রিপ্ট সাধারণত ইন্টারপ্রেটেড ভাষা।
78. What does “top-down design” mean in problem-solving? / সমস্যা সমাধানে “টপ-ডাউন ডিজাইন” এর অর্থ কী?
- Starting with the smallest details and building up / সবচেয়ে ছোট বিবরণ দিয়ে শুরু করে তৈরি করা
- Starting with the overall system and breaking it down into smaller, more detailed parts / সামগ্রিক সিস্টেম দিয়ে শুরু করে এটিকে ছোট, আরও বিস্তারিত অংশে বিভক্ত করা
- Designing the user interface first / প্রথমে ইউজার ইন্টারফেস ডিজাইন করা
- Writing code from the last function to the first / শেষ ফাংশন থেকে প্রথম পর্যন্ত কোড লেখা
Correct Answer (সঠিক উত্তর): b) Starting with the overall system and breaking it down into smaller, more detailed parts / সামগ্রিক সিস্টেম দিয়ে শুরু করে এটিকে ছোট, আরও বিস্তারিত অংশে বিভক্ত করা
Explanation (ব্যাখ্যা): Top-down design is a problem-solving strategy that involves starting with a high-level, abstract view of a problem and systematically breaking it down (decomposing it) into smaller, more manageable sub-problems. / টপ-ডাউন ডিজাইন একটি সমস্যা-সমাধান কৌশল যা একটি সমস্যার একটি উচ্চ-স্তরের, বিমূর্ত দৃষ্টিভঙ্গি দিয়ে শুরু করে এবং পদ্ধতিগতভাবে এটিকে ছোট, আরও পরিচালনাযোগ্য উপ-সমস্যায় বিভক্ত করে (ডিকম্পোজ করে)।
79. Overflow condition in a stack implemented with an array occurs when: / একটি অ্যারে দিয়ে বাস্তবায়িত একটি স্ট্যাকে ওভারফ্লো অবস্থাটি ঘটে যখন:
- `top == -1`
- `top == 0`
- `top == size – 1`
- `top == 1`
Correct Answer (সঠিক উত্তর): c) `top == size – 1`
Explanation (ব্যাখ্যা): If an array of size `size` is used to implement a stack (with indices 0 to `size-1`), an overflow occurs when you try to `push` an element onto an already full stack. The full condition is met when the `top` index is equal to the last valid index, `size – 1`. / যদি `size` আকারের একটি অ্যারে একটি স্ট্যাক বাস্তবায়নের জন্য ব্যবহৃত হয় (ইনডেক্স ০ থেকে `size-1` সহ), একটি ওভারফ্লো ঘটে যখন আপনি একটি ইতিমধ্যে পূর্ণ স্ট্যাকে একটি উপাদান `push` করার চেষ্টা করেন। পূর্ণ অবস্থাটি পূরণ হয় যখন `top` ইনডেক্সটি শেষ বৈধ ইনডেক্স, `size – 1`-এর সমান হয়।
80. The time taken by an algorithm for the best possible input is called: / সর্বোত্তম সম্ভাব্য ইনপুটের জন্য একটি অ্যালগরিদম দ্বারা নেওয়া সময়কে বলা হয়:
- Worst Case Time Complexity / ওয়ার্স্ট কেস টাইম কমপ্লেক্সিটি
- Average Case Time Complexity / অ্যাভারেজ কেস টাইম কমপ্লেক্সিটি
- Best Case Time Complexity / বেস্ট কেস টাইম কমপ্লেক্সিটি
- Amortized Time Complexity / অ্যামোর্টাইজড টাইম কমপ্লেক্সিটি
Correct Answer (সঠিক উত্তর): c) Best Case Time Complexity / বেস্ট কেস টাইম কমপ্লেক্সিটি
Explanation (ব্যাখ্যা): Best-case complexity (denoted by Ω-notation) describes the minimum amount of time an algorithm takes to run, given the most favorable input. For example, the best case for a linear search is O(1), when the target element is the first one in the list. / বেস্ট-কেস কমপ্লেক্সিটি (Ω-নোটেশন দ্বারা চিহ্নিত) একটি অ্যালগরিদম চালানোর জন্য সর্বনিম্ন পরিমাণ সময় বর্ণনা করে, সবচেয়ে অনুকূল ইনপুট দেওয়া হলে। উদাহরণস্বরূপ, একটি লিনিয়ার সার্চের জন্য সেরা কেস হলো O(1), যখন লক্ষ্য উপাদানটি তালিকার প্রথমটি হয়।
81. Which is a characteristic of a multitasking OS? / কোনটি একটি মাল্টিটাস্কিং ওএস-এর বৈশিষ্ট্য?
- Only one program runs at a time. / একবারে শুধু একটি প্রোগ্রাম চলে।
- Multiple programs appear to run simultaneously through rapid context switching. / দ্রুত কনটেক্সট সুইচিংয়ের মাধ্যমে একাধিক প্রোগ্রাম একই সাথে চলতে দেখা যায়।
- It requires multiple CPUs. / এর জন্য একাধিক সিপিইউ প্রয়োজন।
- It processes jobs in batches without user interaction. / এটি ব্যবহারকারীর মিথস্ক্রিয়া ছাড়াই ব্যাচে কাজ প্রক্রিয়া করে।
Correct Answer (সঠিক উত্তর): b) Multiple programs appear to run simultaneously through rapid context switching. / দ্রুত কনটেক্সট সুইচিংয়ের মাধ্যমে একাধিক প্রোগ্রাম একই সাথে চলতে দেখা যায়।
Explanation (ব্যাখ্যা): Multitasking creates the illusion of parallel execution on a single CPU by switching between different tasks (processes or threads) very quickly. / মাল্টিটাস্কিং বিভিন্ন টাস্ক (প্রসেস বা থ্রেড) এর মধ্যে খুব দ্রুত সুইচ করে একটি একক সিপিইউ-তে সমান্তরাল এক্সিকিউশনের বিভ্রম তৈরি করে।
82. The term “data structure” primarily refers to: / “ডেটা স্ট্রাকচার” শব্দটি প্রাথমিকভাবে বোঝায়:
- The physical components of a computer. / একটি কম্পিউটারের ভৌত উপাদান।
- The way data is organized in memory for efficient use. / কার্যকর ব্যবহারের জন্য মেমরিতে ডেটা যেভাবে সংগঠিত হয়।
- The syntax of a programming language. / একটি প্রোগ্রামিং ভাষার সিনট্যাক্স।
- The logic of an algorithm. / একটি অ্যালগরিদমের যুক্তি।
Correct Answer (সঠিক উত্তর): b) The way data is organized in memory for efficient use. / কার্যকর ব্যবহারের জন্য মেমরিতে ডেটা যেভাবে সংগঠিত হয়।
Explanation (ব্যাখ্যা): Data structures are concerned with how to store and arrange data so that various operations (like searching, insertion, deletion) can be performed efficiently. / ডেটা স্ট্রাকচারগুলি কীভাবে ডেটা সংরক্ষণ এবং সাজানো যায় তা নিয়ে উদ্বিগ্ন যাতে বিভিন্ন অপারেশন (যেমন সার্চিং, ইনসার্সন, ডিলিশন) কার্যকরভাবে সম্পাদন করা যায়।
83. Underflow condition in a queue occurs when: / একটি কিউতে আন্ডারফ্লো অবস্থা ঘটে যখন:
- The queue is full and we try to enqueue. / কিউ পূর্ণ থাকে এবং আমরা এনকিউ করার চেষ্টা করি।
- The queue is empty and we try to dequeue. / কিউ খালি থাকে এবং আমরা ডিকিউ করার চেষ্টা করি।
- The front and rear pointers are equal. / ফ্রন্ট এবং রিয়ার পয়েন্টার সমান।
- The queue has only one element. / কিউতে কেবল একটি উপাদান থাকে।
Correct Answer (সঠিক উত্তর): b) The queue is empty and we try to dequeue. / কিউ খালি থাকে এবং আমরা ডিকিউ করার চেষ্টা করি।
Explanation (ব্যাখ্যা): An underflow error happens when one tries to remove an element from an empty data structure. For a queue, this means attempting a dequeue operation when there are no elements to remove. / একটি আন্ডারফ্লো ত্রুটি ঘটে যখন কেউ একটি খালি ডেটা স্ট্রাকচার থেকে একটি উপাদান সরানোর চেষ্টা করে। একটি কিউয়ের জন্য, এর অর্থ হলো যখন সরানোর জন্য কোনো উপাদান নেই তখন একটি ডিকিউ অপারেশন করার চেষ্টা করা।
84. The analysis of an algorithm’s resource usage (time and space) is known as: / একটি অ্যালগরিদমের রিসোর্স ব্যবহার (সময় এবং স্থান) বিশ্লেষণকে বলা হয়:
- Complexity Analysis / কমপ্লেক্সিটি অ্যানালাইসিস
- Code Optimization / কোড অপটিমাইজেশন
- System Design / সিস্টেম ডিজাইন
- Software Testing / সফটওয়্যার টেস্টিং
Correct Answer (সঠিক উত্তর): a) Complexity Analysis / কমপ্লেক্সিটি অ্যানালাইসিস
Explanation (ব্যাখ্যা): Complexity analysis is the process of determining how the resource requirements (like CPU time and memory space) of an algorithm scale with the size of the input. It’s crucial for choosing efficient algorithms. / কমপ্লেক্সিটি অ্যানালাইসিস হলো একটি অ্যালগরিদমের রিসোর্স প্রয়োজনীয়তা (যেমন সিপিইউ সময় এবং মেমরি স্থান) ইনপুটের আকারের সাথে কীভাবে স্কেল করে তা নির্ধারণ করার প্রক্রিয়া। কার্যকর অ্যালগরিদম বেছে নেওয়ার জন্য এটি অত্যন্ত গুরুত্বপূর্ণ।
85. Which of the following is NOT an Operating System? / নিচের কোনটি একটি অপারেটিং সিস্টেম নয়?
- Windows / উইন্ডোজ
- Linux / লিনাক্স
- Oracle / ওরাকল
- macOS / ম্যাকওএস
Correct Answer (সঠিক উত্তর): c) Oracle / ওরাকল
Explanation (ব্যাখ্যা): Oracle is a popular Relational Database Management System (RDBMS), not an operating system. Windows, Linux, and macOS are all widely used operating systems. / ওরাকল একটি জনপ্রিয় রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেম (RDBMS), কোনো অপারেটিং সিস্টেম নয়। উইন্ডোজ, লিনাক্স এবং ম্যাকওএস সবই বহুল ব্যবহৃত অপারেটিং সিস্টেম।
86. The final output of a compiler is typically: / একটি কম্পাইলারের চূড়ান্ত আউটপুট সাধারণত:
- Source Code / সোর্স কোড
- Pseudo Code / সিউডো কোড
- Object Code or Executable Code / অবজেক্ট কোড বা এক্সিকিউটেবল কোড
- A Flowchart / একটি ফ্লোচার্ট
Correct Answer (সঠিক উত্তর): c) Object Code or Executable Code / অবজেক্ট কোড বা এক্সিকিউটেবল কোড
Explanation (ব্যাখ্যা): A compiler’s main job is to translate the entire source program, written in a high-level language, into machine-readable object code. This object code is then often linked to create a final executable file. / একটি কম্পাইলারের প্রধান কাজ হলো উচ্চ-স্তরের ভাষায় লেখা সম্পূর্ণ সোর্স প্রোগ্রামকে মেশিন-পঠনযোগ্য অবজেক্ট কোডে অনুবাদ করা। এই অবজেক্ট কোডটি প্রায়শই একটি চূড়ান্ত এক্সিকিউটেবল ফাইল তৈরি করার জন্য লিঙ্ক করা হয়।
87. A linear data structure where elements are not stored in contiguous memory locations is: / একটি রৈখিক ডেটা স্ট্রাকচার যেখানে উপাদানগুলি সংলগ্ন মেমরি অবস্থানে সংরক্ষণ করা হয় না তা হলো:
- Array / অ্যারে
- Linked List / লিঙ্কড লিস্ট
- Stack (when implemented with an array) / স্ট্যাক (যখন একটি অ্যারে দিয়ে বাস্তবায়িত হয়)
- String / স্ট্রিং
Correct Answer (সঠিক উত্তর): b) Linked List / লিঙ্কড লিস্ট
Explanation (ব্যাখ্যা): Unlike arrays, the nodes of a linked list can be scattered anywhere in memory. They are connected sequentially through pointers, not by their physical location in memory. / অ্যারেগুলির মতো নয়, একটি লিঙ্কড লিস্টের নোডগুলি মেমরির যেকোনো জায়গায় ছড়িয়ে থাকতে পারে। তারা পয়েন্টারের মাধ্যমে ক্রমানুসারে সংযুক্ত থাকে, মেমরিতে তাদের ভৌত অবস্থানের দ্বারা নয়।
88. A decision table helps in: / একটি ডিসিশন টেবিল সাহায্য করে:
- Drawing the program’s structure. / প্রোগ্রামের কাঠামো আঁকতে।
- Visualizing complex business logic and rules. / জটিল ব্যবসায়িক যুক্তি এবং নিয়ম কল্পনা করতে।
- Storing program data. / প্রোগ্রাম ডেটা সংরক্ষণ করতে।
- Measuring algorithm efficiency. / অ্যালগরিদমের কার্যকারিতা পরিমাপ করতে।
Correct Answer (সঠিক উত্তর): b) Visualizing complex business logic and rules. / জটিল ব্যবসায়িক যুক্তি এবং নিয়ম কল্পনা করতে।
Explanation (ব্যাখ্যা): Decision tables are excellent for modeling situations with multiple conditions that lead to different actions. They provide a clear, tabular way to represent and verify complex rule sets. / ডিসিশন টেবিলগুলি বিভিন্ন ক্রিয়ার দিকে নিয়ে যাওয়া একাধিক শর্তসহ পরিস্থিতি মডেল করার জন্য চমৎকার। তারা জটিল নিয়ম সেট উপস্থাপন এবং যাচাই করার জন্য একটি স্পষ্ট, সারণীগত উপায় সরবরাহ করে।
89. The step-by-step graphical representation of a program’s logic is a: / একটি প্রোগ্রামের যুক্তির ধাপে ধাপে গ্রাফিকাল উপস্থাপনা হলো একটি:
- Pseudo-code / সিউডো-কোড
- Algorithm / অ্যালগরিদম
- Flowchart / ফ্লোচার্ট
- Decision Table / ডিসিশন টেবিল
Correct Answer (সঠিক উত্তর): c) Flowchart / ফ্লোচার্ট
Explanation (ব্যাখ্যা): A flowchart uses standard symbols (rectangles, diamonds, ovals, etc.) connected by arrows to provide a visual, step-by-step diagram of how a program or process works. / একটি ফ্লোচার্ট তীর দ্বারা সংযুক্ত স্ট্যান্ডার্ড প্রতীক (আয়তক্ষেত্র, হীরা, ডিম্বাকৃতি ইত্যাদি) ব্যবহার করে একটি প্রোগ্রাম বা প্রক্রিয়া কীভাবে কাজ করে তার একটি ভিজ্যুয়াল, ধাপে ধাপে ডায়াগ্রাম প্রদান করে।
90. Which system allows multiple processors to work on the same task simultaneously? / কোন সিস্টেম একাধিক প্রসেসরকে একই টাস্কে একই সাথে কাজ করার অনুমতি দেয়?
- Multitasking / মাল্টিটাস্কিং
- Multiprogramming / মাল্টিপ্রোগ্রামিং
- Time-sharing / টাইম-শেয়ারিং
- Multiprocessing / মাল্টিপ্রসেসিং
Correct Answer (সঠিক উত্তর): d) Multiprocessing / মাল্টিপ্রসেসিং
Explanation (ব্যাখ্যা): A multiprocessing system contains more than one CPU, allowing for true parallel processing where multiple instructions from one or more programs can be executed at the exact same moment in time. / একটি মাল্টিপ্রসেসিং সিস্টেমে একাধিক সিপিইউ থাকে, যা সত্যিকারের সমান্তরাল প্রক্রিয়াকরণের অনুমতি দেয় যেখানে এক বা একাধিক প্রোগ্রাম থেকে একাধিক নির্দেশাবলী ঠিক একই মুহূর্তে কার্যকর করা যেতে পারে।
91. Which data structure would be best to model a waiting line at a ticket counter? / একটি টিকিট কাউন্টারে অপেক্ষারত লাইন মডেল করার জন্য কোন ডেটা স্ট্রাকচার সবচেয়ে ভালো হবে?
- Stack / স্ট্যাক
- Queue / কিউ
- Array / অ্যারে
- Linked List / লিঙ্কড লিস্ট
Correct Answer (সঠিক উত্তর): b) Queue / কিউ
Explanation (ব্যাখ্যা): A waiting line operates on a First-In, First-Out (FIFO) basis. The first person to join the line is the first person to be served. A queue data structure perfectly models this behavior. / একটি অপেক্ষারত লাইন ফার্স্ট-ইন, ফার্স্ট-আউট (FIFO) ভিত্তিতে কাজ করে। লাইনে প্রথম যোগ দেওয়া ব্যক্তিই প্রথম পরিষেবা পায়। একটি কিউ ডেটা স্ট্রাকচার এই আচরণকে পুরোপুরি মডেল করে।
92. The set of rules that defines the combinations of symbols that are considered to be correctly structured programs in a language is its: / নিয়মের সেট যা একটি ভাষায় সঠিকভাবে গঠিত প্রোগ্রাম হিসাবে বিবেচিত প্রতীকগুলির সংমিশ্রণকে সংজ্ঞায়িত করে তা হলো এর:
- Syntax / সিনট্যাক্স
- Semantics / সেমান্টিক্স
- Library / লাইব্রেরি
- Paradigm / প্যারাডাইম
Correct Answer (সঠিক উত্তর): a) Syntax / সিনট্যাক্স
Explanation (ব্যাখ্যা): Syntax refers to the grammatical rules of a programming language. A syntax error occurs when these rules are violated. Semantics, on the other hand, refers to the meaning of the statements. / সিনট্যাক্স একটি প্রোগ্রামিং ভাষার ব্যাকরণগত নিয়মকে বোঝায়। যখন এই নিয়মগুলি লঙ্ঘন করা হয় তখন একটি সিনট্যাক্স ত্রুটি ঘটে। অন্যদিকে, সেমান্টিক্স স্টেটমেন্টগুলির অর্থকে বোঝায়।
93. In a time-sharing system, the fixed time slice given to a process is called a: / একটি টাইম-শেয়ারিং সিস্টেমে, একটি প্রসেসকে দেওয়া নির্দিষ্ট সময় খণ্ডকে বলা হয়:
- Cycle / সাইকেল
- Quantum or Time Slice / কোয়ান্টাম বা টাইম স্লাইস
- Frame / ফ্রেম
- Slot / স্লট
Correct Answer (সঠিক উত্তর): b) Quantum or Time Slice / কোয়ান্টাম বা টাইম স্লাইস
Explanation (ব্যাখ্যা): The scheduler in a time-sharing OS allocates a small, fixed unit of CPU time, known as a time quantum or time slice, to each process. When the quantum expires, the CPU is switched to another process. / একটি টাইম-শেয়ারিং ওএস-এর সিডিউলার প্রতিটি প্রসেসকে সিপিইউ সময়ের একটি ছোট, নির্দিষ্ট একক, যা টাইম কোয়ান্টাম বা টাইম স্লাইস নামে পরিচিত, বরাদ্দ করে। যখন কোয়ান্টাম শেষ হয়ে যায়, তখন সিপিইউ অন্য একটি প্রসেসে সুইচ করা হয়।
94. What is the fundamental unit of data in a linked list? / একটি লিঙ্কড লিস্টে ডেটার মৌলিক একক কী?
- Array / অ্যারে
- Node / নোড
- Cell / সেল
- Pointer / পয়েন্টার
Correct Answer (সঠিক উত্তর): b) Node / নোড
Explanation (ব্যাখ্যা): A linked list is a collection of nodes. Each node is an object that contains the actual data and a reference (pointer) to the next node in the list. / একটি লিঙ্কড লিস্ট হলো নোডগুলির একটি সংগ্রহ। প্রতিটি নোড একটি বস্তু যা প্রকৃত ডেটা এবং তালিকার পরবর্তী নোডের একটি রেফারেন্স (পয়েন্টার) ধারণ করে।
95. The complexity O(log n) is better than: / কমপ্লেক্সিটি O(log n) এর চেয়ে ভালো:
- O(1)
- O(n)
- Both O(1) and O(n) / O(1) এবং O(n) উভয়ই
- None of the above / উপরের কোনোটিই নয়
Correct Answer (সঠিক উত্তর): b) O(n)
Explanation (ব্যাখ্যা): For large ‘n’, logarithmic growth (log n) is much slower than linear growth (n). However, constant time O(1) is the fastest and is therefore better than O(log n). So, O(log n) is better than O(n) but worse than O(1). / বড় ‘n’-এর জন্য, লগারিদমিক বৃদ্ধি (log n) রৈখিক বৃদ্ধি (n) এর চেয়ে অনেক ধীর। তবে, ধ্রুবক সময় O(1) দ্রুততম এবং তাই O(log n) এর চেয়ে ভালো। সুতরাং, O(log n) O(n) এর চেয়ে ভালো কিন্তু O(1) এর চেয়ে খারাপ।
96. Which tool is primarily used for writing the initial program instructions? / প্রাথমিক প্রোগ্রাম নির্দেশাবলী লেখার জন্য প্রাথমিকভাবে কোন টুলটি ব্যবহৃত হয়?
- Debugger / ডিবাগার
- Compiler / কম্পাইলার
- Editor / এডিটর
- Linker / লিঙ্কার
Correct Answer (সঠিক উত্তর): c) Editor / এডিটর
Explanation (ব্যাখ্যা): A source code editor (or text editor) is the software where a programmer types the instructions (source code) of a program. Other tools like compilers and debuggers work on the code after it has been written. / একটি সোর্স কোড এডিটর (বা টেক্সট এডিটর) হলো সেই সফ্টওয়্যার যেখানে একজন প্রোগ্রামার একটি প্রোগ্রামের নির্দেশাবলী (সোর্স কোড) টাইপ করে। কম্পাইলার এবং ডিবাগারের মতো অন্যান্য সরঞ্জামগুলি কোড লেখার পরে তার উপর কাজ করে।
97. The concept of using sequence, selection, and iteration to control program flow is central to: / প্রোগ্রামের প্রবাহ নিয়ন্ত্রণ করতে সিকোয়েন্স, সিলেকশন এবং ইটারেশন ব্যবহার করার ধারণাটি যার কেন্দ্রবিন্দুতে রয়েছে তা হলো:
- Object-Oriented Programming / অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং
- Data Structures / ডেটা স্ট্রাকচার
- Structured Programming / স্ট্রাকচার্ড প্রোগ্রামিং
- Operating Systems / অপারেটিং সিস্টেম
Correct Answer (সঠিক উত্তর): c) Structured Programming / স্ট্রাকচার্ড প্রোগ্রামিং
Explanation (ব্যাখ্যা): The Böhm-Jacopini theorem states that any computable function can be implemented using only these three control structures: sequence (statements in order), selection (if/then/else), and iteration (loops). This is the theoretical foundation of structured programming. / বোহম-জ্যাকোপিনি উপপাদ্য বলে যে যেকোনো গণনাযোগ্য ফাংশন শুধুমাত্র এই তিনটি কন্ট্রোল স্ট্রাকচার ব্যবহার করে বাস্তবায়ন করা যেতে পারে: সিকোয়েন্স (ক্রমানুসারে স্টেটমেন্ট), সিলেকশন (যদি/তাহলে/অন্যথায়), এবং ইটারেশন (লুপ)। এটি স্ট্রাকচার্ড প্রোগ্রামিংয়ের তাত্ত্বিক ভিত্তি।
98. Insertion and deletion from the middle of an array is a(n) ______ operation. / একটি অ্যারের মাঝখান থেকে সন্নিবেশ এবং মোছা একটি ______ অপারেশন।
- O(1)
- O(log n)
- O(n)
- O(n^2)
Correct Answer (সঠিক উত্তর): c) O(n)
Explanation (ব্যাখ্যা): When you insert or delete an element in the middle of an array, you must shift all subsequent elements to either make space or fill the gap. In the worst case, you might have to shift n-1 elements, making it a linear time, O(n), operation. / যখন আপনি একটি অ্যারের মাঝখানে একটি উপাদান সন্নিবেশ বা মোছেন, তখন আপনাকে স্থান তৈরি করতে বা ফাঁক পূরণ করতে পরবর্তী সমস্ত উপাদান স্থানান্তর করতে হবে। সবচেয়ে খারাপ ক্ষেত্রে, আপনাকে n-1টি উপাদান স্থানান্তর করতে হতে পারে, যা এটিকে একটি রৈখিক সময়, O(n), অপারেশন করে তোলে।
99. A CPU can only execute instructions written in: / একটি সিপিইউ শুধুমাত্র ______ ভাষায় লেখা নির্দেশাবলী কার্যকর করতে পারে।
- Java / জাভা
- C++ / সি++
- Assembly Language / অ্যাসেম্বলি ভাষা
- Machine Language / মেশিন ভাষা
Correct Answer (সঠিক উত্তর): d) Machine Language / মেশিন ভাষা
Explanation (ব্যাখ্যা): All other languages (high-level or assembly) must first be translated into the binary machine code that the specific CPU architecture understands and can execute directly. / অন্য সমস্ত ভাষা (উচ্চ-স্তরের বা অ্যাসেম্বলি) প্রথমে নির্দিষ্ট সিপিইউ আর্কিটেকচার যা বোঝে এবং সরাসরি কার্যকর করতে পারে সেই বাইনারি মেশিন কোডে অনুবাদ করতে হবে।
100. The primary purpose of an algorithm is to provide a(n): / একটি অ্যালগরিদমের প্রাথমিক উদ্দেশ্য হলো একটি ______ প্রদান করা।
- Executable program / এক্সিকিউটেবল প্রোগ্রাম
- Correct and efficient solution to a problem / একটি সমস্যার সঠিক এবং কার্যকর সমাধান
- User-friendly interface / ব্যবহারকারী-বান্ধব ইন্টারফেস
- Hardware specification / হার্ডওয়্যার স্পেসিফিকেশন
Correct Answer (সঠিক উত্তর): b) Correct and efficient solution to a problem / একটি সমস্যার সঠিক এবং কার্যকর সমাধান
Explanation (ব্যাখ্যা): An algorithm is the blueprint for solving a problem. The goal is not just to get a solution, but to get a correct solution that is also efficient in terms of time and space resources. The algorithm is then implemented as a program. / একটি অ্যালগরিদম হলো একটি সমস্যা সমাধানের জন্য একটি ব্লুপ্রিন্ট। লক্ষ্য শুধু একটি সমাধান পাওয়া নয়, বরং একটি সঠিক সমাধান পাওয়া যা সময় এবং স্থান রিসোর্সের দিক থেকেও কার্যকর। অ্যালগরিদমটি তখন একটি প্রোগ্রাম হিসাবে বাস্তবায়িত হয়।