Saturday to Thursday: 12.30 PM - 18.30 PM
Haji Ismail Road, Sonadanga, Khulna (9100)
Email Us

ictprofessoracademy@gmail.com

WhatsApp Us
+880 1325 007788
JOIN NOW
Live Session: PTI & BOYRA

এইচএসসি আইসিটি: ৫ম অধ্যায় (প্রোগ্রামিং ভাষা) - ৫৭টি MCQ-এর উত্তর ও ব্যাখ্যা

[০১] উত্তর: ⓑ DIV

ব্যাখ্যা: অ্যাসেম্বলি ল্যাঙ্গুয়েজে সরাসরি কোনো বাইনারি কোড ব্যবহার না করে মানুষের বোঝার জন্য কিছু সংক্ষিপ্ত সংকেত বা নিউমোনিক কোড (Mnemonic Code) ব্যবহার করা হয়। যেমন: যোগের জন্য ADD, ভাগের জন্য DIV, গুণের জন্য MUL ইত্যাদি। বাকি অপশনগুলো C ভাষার কিওয়ার্ড বা ফাংশন।

[০২] উত্তর: ⓑ Python

ব্যাখ্যা: IEEE (Institute of Electrical and Electronics Engineers) তাদের বার্ষিক র‍্যাংকিংয়ে কৃত্রিম বুদ্ধিমত্তা, ডেটা সায়েন্স এবং সহজ সিনট্যাক্সের কারণে পাইথন (Python)-কে বর্তমান সময়ের অন্যতম সেরা ও জনপ্রিয় ভাষা হিসেবে স্বীকৃতি দিয়েছে।

[০৩] উত্তর: ⓐ 14

ব্যাখ্যা: সমীকরণটি লক্ষ্য করি: F = POW(5, (7 MOD 3)) + (6/3) * 2 + 5;

·       প্রথমে ব্র্যাকেটের কাজ: 7 MOD 3 অর্থাৎ ৭ কে ৩ দিয়ে ভাগ করলে ভাগশেষ থাকে ১।

·       এরপর POW(5, 1) অর্থাৎ  5^1 = 5 ।

·       এরপর ভাগের কাজ: 6/3 = 2।

·       এরপর গুণের কাজ: 2 * 2 = 4।

·       সবশেষে যোগের কাজ: 5 + 4 + 5 = 14।

[০৪] উত্তর: ⓑ !

ব্যাখ্যা: C ভাষায় ! হলো লজিক্যাল নট (Logical NOT) অপারেটর, যা কোনো সত্য কন্ডিশনকে মিথ্যা এবং মিথ্যাকে সত্য করে। অপশন ⓐ (&) হলো বিটওয়াইজ অপারেটর (লজিক্যাল অ্যান্ড-এর জন্য && লাগে), ⓒ (=) হলো অ্যাসাইনমেন্ট অপারেটর এবং ⓓ (>) হলো রিলেশনাল অপারেটর।

[০৫] উত্তর: ⓓ Array

ব্যাখ্যা: অ্যারে (Array) হলো একই ডেটা টাইপের (Homogeneous data) একাধিক উপাদানের সমষ্টি যা মেমোরিতে পরপর অবস্থান করে। অপরদিকে স্ট্রাকচার (Structure) ভিন্ন ভিন্ন ডেটা টাইপের সমষ্টি ধারণ করে।

[০৬] উত্তর: ⓓ conio.h

ব্যাখ্যা: getch() ফাংশনটি কনসোল ইনপুট-আউটপুট নিয়ন্ত্রণ করে। এর পুরো নাম Console Input Output। তাই এটি ব্যবহার করতে প্রোগ্রামের শুরুতে #include <conio.h> হেডার ফাইলটি যুক্ত করতে হয়।

[০৭] উত্তর: ⓓ %d

ব্যাখ্যা: C ভাষায় Integer বা ডেসিমেল পূর্ণসংখ্যা ইনপুট বা আউটপুট দেওয়ার জন্য ফরম্যাট স্পেসিফায়ার হিসেবে %d ব্যবহৃত হয়। %c ক্যারেক্টার, %f ফ্লোট এবং %lf ডাবল-এর জন্য ব্যবহৃত হয়।

[০৮] উত্তর: ⓑ Virtual memory -> RAM -> Register

ব্যাখ্যা: কম্পিউটারের মেমোরি হায়ারার্কি অনুযায়ী সবচেয়ে ধীরগতির হলো ভার্চুয়াল মেমোরি (যা হার্ডডিস্কের অংশ)। তার চেয়ে দ্রুতগতির হলো RAM এবং কম্পিউটারের প্রসেসরের অভ্যন্তরে থাকা রেজিস্টার (Register) হলো সবচেয়ে দ্রুতগতির মেমোরি।

[০৯] উত্তর: ⓐ Compiler

ব্যাখ্যা: কম্পাইলার (Compiler) হলো একটি অনুবাদক প্রোগ্রাম যা উচ্চ-স্তরের ভাষায় লেখা সম্পূর্ণ উৎস প্রোগ্রামকে (Source Program) একবারে মেশিন ভাষায় বা বস্তু প্রোগ্রামে (Object Program) রূপান্তর করে।

[১০] উত্তর: ⓓ %lf

ব্যাখ্যা: Double ডেটা টাইপ (যা ফ্লোটের চেয়ে বেশি বড় ভগ্নাংশ ধারণ করে) এর ফরম্যাট স্পেসিফায়ার হলো %lf (Long Float)।

[১১] উত্তর: ⓓ আয়তক্ষেত্র

ব্যাখ্যা: ফ্লোচার্ট বা প্রবাহচিত্রে যেকোনো গাণিতিক হিসাব-নিকাশ বা প্রক্রিয়াকরণ (Processing) বোঝাতে আয়তক্ষেত্র প্রতীক ব্যবহার করা হয়। সামান্তরিক ব্যবহৃত হয় ইনপুট/আউটপুটের জন্য এবং রম্বস সিদ্ধান্তের জন্য।

[১২] উত্তর: ⓓ Design

ব্যাখ্যা: সফ্টওয়্যার ডেভেলপমেন্ট বা প্রোগ্রাম ডিজাইন লাইফ সাইকেলে সিস্টেমের নকশা বা 'Design' ধাপে অ্যালগরিদম, ফ্লোচার্ট এবং ইউজার ইন্টারফেস তৈরি করতে মোট সময়ের প্রায় ২০% থেকে ৪০% ব্যয় হয়।

[১৩] উত্তর: ⓑ !=

ব্যাখ্যা: C ভাষায় দুটি মানের মধ্যে তুলনা করার জন্য রিলেশনাল অপারেটর ব্যবহার করা হয়। এখানে != মানে হলো 'Not Equal to' (সমান নয়), যা একটি রিলেশনাল অপারেটর।

[১৪] উত্তর: ⓒ Debugging

ব্যাখ্যা: প্রোগ্রামের যেকোনো ভুল বা ত্রুটিকে বলা হয় 'Bug' (বাগ)। আর এই ভুলগুলো খুঁজে বের করে সংশোধন করার পদ্ধতিকে বলা হয় 'Debugging' (ডিবাগিং)।

[১৫] উত্তর: ⓒ 1, 3, 5, 7, 9

ব্যাখ্যা: লুপটি  i=1  থেকে শুরু হয়ে  i \le 9  পর্যন্ত চলবে এবং প্রতিবারে  i -এর মান ২ করে বাড়বে ( i+=2 )। ফলে ১, ৩, ৫, ৭, ৯ এই বিজোড় সংখ্যাগুলো প্রিন্ট হবে।

[১৬] উত্তর: ⓑ Array

ব্যাখ্যা: এটি ৫ নম্বর প্রশ্নের অনুরূপ। C-প্রোগ্রামিংয়ে মেমোরিতে সমজাতীয় বা একই ধরণের ডেটা উপাদান একগুচ্ছ আকারে সংরক্ষণ করার জন্য অ্যারে ব্যবহার করা হয়।

[১৭] উত্তর: ⓐ %f

ব্যাখ্যা: ভগ্নাংশ বা ফ্লোটিং পয়েন্ট (Floating point) ডেটা টাইপের মান ইনপুট বা আউটপুট দেওয়ার জন্য ফরম্যাট স্পেসিফায়ার হিসেবে %f ব্যবহৃত হয়।

[১৮] উত্তর: ⓑ Double

ব্যাখ্যা: Double হলো C ভাষার একটি বিল্ট-ইন বা প্রাইমারি ডেটা টাইপ যা ভগ্নাংশ সংখ্যার জন্য ব্যবহৃত হয়। বাকিগুলোর মধ্যে main হলো মূল ফাংশন এবং printf, scanf হলো লাইব্রেরি ফাংশন।

[১৯] উত্তর: ⓒ a!=b

ব্যাখ্যা: এখানে  a  এবং  b -এর মান সমান কিনা তা যাচাই করা হচ্ছে (!= অর্থাৎ Not Equal)। এটি একটি রিলেশনাল অপারেটর। বাকিগুলো অ্যাসাইনমেন্ট বা লজিক্যাল অপারেটরের অংশ।

[২০] উত্তর: ⓒ রম্বস/হীরকৃতি

ব্যাখ্যা: ফ্লোচার্টে কোনো শর্ত বা সিদ্ধান্ত (Decision) গ্রহণের ক্ষেত্রে রম্বস বা হীরক আকৃতির (Diamond shape) প্রতীক ব্যবহার করা হয়, যেখান থেকে হ্যাঁ বা না সূচক দুটি লাইন বের হয়।

[২১] উত্তর: ⓐ integer (সংশোধিত: int)

ব্যাখ্যা: C ভাষায় পূর্ণসংখ্যা বা ইন্টিজার ডেটা টাইপ ঘোষণার জন্য কিওয়ার্ড হিসেবে int ব্যবহৃত হয়। (নোট: C একটি কেস-সেন্সিটিভ ভাষা হওয়ায় অপশনে ছোট হাতের int থাকা আবশ্যক)।

[২২] উত্তর: ⓓ return, goto, break

ব্যাখ্যা: C ভাষায় ৩২টি সংরক্ষিত শব্দ বা কি-ওয়ার্ড (Keyword) আছে। return, goto, break তিনটিই কিওয়ার্ড। অন্য অপশনগুলোতে scanf, cos, line এগুলো কিওয়ার্ড নয়, লাইব্রেরি ফাংশন বা সাধারণ শব্দ।

[২৩] উত্তর: ⓐ scanf

ব্যাখ্যা: scanf কোনো কি-ওয়ার্ড নয়; এটি stdio.h হেডার ফাইলের অধীনে থাকা একটি স্ট্যান্ডার্ড ইনপুট লাইব্রেরি ফাংশন। auto, int, short তিনটিই C ভাষার নির্ধারিত কিওয়ার্ড।

[২৪] উত্তর: ⓒ int X5;

ব্যাখ্যা: ভেরিয়েবল নামকরণের নিয়ম অনুযায়ী ভেরিয়েবলের নাম সংখ্যা দিয়ে শুরু হতে পারে না (তাই 5X ভুল), এতে কোনো হাইফেন বা বিশেষ চিহ্ন বসতে পারে না (তাই X-5 ভুল) এবং কোনো কিওয়ার্ড বা মূল ফাংশনের নাম ব্যবহার করা যায় না (তাই main ভুল)। সুতরাং X5 সঠিক।

[২৫] উত্তর: ⓐ m = m + 1

ব্যাখ্যা: ++m হলো একটি প্রি-ইনক্রিমেন্ট অপারেটর। এর অর্থ হলো ভেরিয়েবল  m -এর বর্তমান মানের সাথে ১ যোগ করে মান ১ বাড়ানো, যা গাণিতিকভাবে  m = m + 1 ।

[২৬] উত্তর: ⓑ Array

ব্যাখ্যা: একই ডেটা টাইপের (যেমন সব ইন্টিজার বা সব ফ্লোট) একাধিক ডেটা মেমোরিতে একটি একক নামে গুচ্ছ আকারে রাখার জন্য অ্যারে (Array) ব্যবহার করা হয়।

[২৭] উত্তর: ⓓ i=2, i=i+2

ব্যাখ্যা: বর্তমান লুপটি ১ থেকে ৬ পর্যন্ত যোগ করে  ১+২+৩+৪+৫+৬ = ২১  আউটপুট দেয়। যদি আমরা শুরুতে  i=2  করি এবং প্রতিবারে ২ করে বাড়াই ( i=i+2 ), তবে লুপটি চলবে ২, ৪, ৬ এর জন্য। ফলে যোগফল হবে  ২+৪+৬ = ১২ ।

[২৮] উত্তর: ⓒ i and iii (অথবা বইভেদে ⓓ)

ব্যাখ্যা: প্রথাগত BASIC এবং C ল্যাঙ্গুয়েজ হলো স্ট্রাকচার্ড বা মডুলার প্রোগ্রামিং ভাষা। তবে আধুনিক লজিক অনুযায়ী Visual Basic-ও স্ট্রাকচার্ড কোড সাপোর্ট করে। বোর্ড পরীক্ষার সাধারণ পাঠ্যবই অনুযায়ী কেবল BASIC এবং C-কে স্ট্রাকচার্ড হিসেবে গণ্য করা হয়।

[২৯] উত্তর: ⓒ ii and iii

ব্যাখ্যা: উচ্চ-স্তরের ভাষা (High-level language) থেকে মেশিন ভাষায় রূপান্তরের জন্য কম্পাইলার (Compiler) এবং ইন্টারপ্রিটার (Interpreter) ব্যবহৃত হয়। অ্যাসেম্বলার (Assembler) ব্যবহৃত হয় শুধুমাত্র মধ্যম স্তরের অ্যাসেম্বলি ভাষার জন্য।

[৩০] উত্তর: i, ii, iii (অপশনে i, ii, iii এর বহুপদী অপশন থাকবে)

ব্যাখ্যা: এখানে তিনটিই ফরম্যাট স্পেসিফায়ার: %d পূর্ণসংখ্যার জন্য, %lf ডাবল বা বড় ভগ্নাংশের জন্য এবং %c ক্যারেক্টার বা বর্ণের জন্য ব্যবহৃত হয়।

[৩১] উত্তর: ⓐ i & ii

ব্যাখ্যা: C ভাষায় Character বা বর্ণ টাইপ ভেরিয়েবল মেমোরিতে ১ বাইট (1 byte) জায়গা নেয়। আমরা জানি ১ বাইট = ৮ বিটস (8 bits)। সুতরাং i ও ii দুটি তথ্যই সঠিক।

[৩২] উত্তর: ⓒ %d

ব্যাখ্যা: C ভাষায় ডেসিমেল ইন্টিজার বা ডেসিমেল পূর্ণসংখ্যাকে বোঝাতে ডেসিমেল শব্দ থেকে ফরম্যাট স্পেসিফায়ার হিসেবে %d ব্যবহার করা হয়।

[৩৩] উত্তর: ⓒ ii & iii

ব্যাখ্যা: ভেরিয়েবলের নামের শুরুতে সংখ্যা ব্যবহার করা সম্পূর্ণ নিষিদ্ধ (তাই i নম্বর তথ্যটি ভুল)। ভেরিয়েবলের মাঝে ফাঁকা জায়গা বা হোয়াইট স্পেস রাখা যায় না এবং কোনো কি-ওয়ার্ড ব্যবহার করা যায় না— এই দুটি নিয়ম সঠিক।

[৩৪] উত্তর: ⓐ i and ii

ব্যাখ্যা: চতুর্থ প্রজন্মের ভাষা বা 4GL (যেমন: SQL) মানুষের ভাষার খুব কাছাকাছি এবং একে কুয়েরি ভাষাও বলা হয়। অপরদিকে Fortran হলো একটি তৃতীয় প্রজন্মের (3GL) উচ্চ-স্তরের ভাষা।

[৩৫] উত্তর: ⓒ 25

ব্যাখ্যা: কোডটি লক্ষ্য করি: x = 100; x /= 20; অর্থাৎ  x = 100 / 20 = 5 । এরপর pow(x,2) মানে  x^2  বা  5^2 = 25  প্রিন্ট হবে।

[৩৬] উত্তর: ⓑ i and iii

ব্যাখ্যা: উদ্দীপকের কোডে স্ট্যান্ডার্ড ইনপুট-আউটপুটের printf ফাংশন ব্যবহারের জন্য stdio.h এবং গাণিতিক pow() ফাংশন ব্যবহারের জন্য math.h হেডার ফাইল দুটি প্রয়োজন।

[৩৭] উত্তর: ⓐ 0

ব্যাখ্যা: এখানে শুরুতে  x = 20 , এরপর x += 10; লাইনের কারণে  x -এর মান বেড়ে দাঁড়ায়  ২০ + ১০ = ৩০ । সবশেষে y = x % 5; অর্থাৎ ৩০ কে ৫ দিয়ে ভাগ করলে কোনো ভাগশেষ থাকে না, ভাগশেষ শূন্য ( 0 ) হয়।

[৩৮] উত্তর: ⓐ 0

ব্যাখ্যা: এখানে  b = 125 । a = b % 25; অর্থাৎ ১২৫ কে ২৫ দিয়ে ভাগ করলে ৫ বার যায় ( ২৫ \times ৫ = ১২৫ ) এবং ভাগশেষ থাকে শূন্য ( 0 )। তাই  a -এর মান  0  প্রিন্ট হবে।

[৩৯] উত্তর: ⓓ i, ii and iii

ব্যাখ্যা: উদ্দীপকে ব্যবহৃত ভাষাটি হলো 'C'। C ভাষা একই সাথে সাধারণ কাজের জন্য উপযোগী (General purpose), হার্ডওয়্যার ও উচ্চস্তরের মেলবন্ধন করায় মিড-লেভেল (Mid-level) এবং ছোট ও বড় হাতের অক্ষর আলাদাভাবে চিনে থাকায় এটি একটি কেস সেন্সিটিভ (Case sensitive) ভাষা।

[৪০] উত্তর: ⓑ 31.20

ব্যাখ্যা: এখানে  A = 21.5  এবং  B = 9.7 । এদের যোগফল sum = 21.5 + 9.7 = 31.2। যেহেতু printf-এ %.2f বলা আছে, তাই দশমিকের পর দুই ঘর পর্যন্ত অর্থাৎ 31.20 প্রদর্শিত হবে।

[৪১] উত্তর: ⓑ 12

ব্যাখ্যা: কোডটিতে তিনটি ভেরিয়েবল আছে: A, B এবং sum। তিনটি ভেরিয়েবলের ডেটা টাইপই হলো float। C ভাষায় প্রতিটি ফ্লোট ভেরিয়েবল মেমোরিতে ৪ বাইট করে জায়গা নেয়। সুতরাং ৩টি ভেরিয়েবল মোট  ৩ \times ৪ = ১২  বাইট জায়গা দখল করবে।

[৪২] উত্তর: ⓑ 6

ব্যাখ্যা: লুপটি  i=3  থেকে শুরু হয়ে প্রতিবারে ৩ করে বাড়বে এবং ২০ পর্যন্ত বা তার চেয়ে কম সময় চলবে। অর্থাৎ লুপের ধাপগুলো হবে: ৩, ৬, ৯, ১২, ১৫, ১৮। মোট ৬ বার কন্ডিশন সত্য হওয়ায় "ICT" শব্দটি ৬ বার প্রিন্ট হবে।

[৪৩] উত্তর: ⓐ 4

ব্যাখ্যা: লুপটি স্বাভাবিকভাবে ৩, ৬, ৯, ১২, ১৫, ১৮ মানের জন্য মোট ৬ বার চলত। কিন্তু মাঝে শর্ত দেওয়া হয়েছে  i  এর মান ১২ অথবা ১৮ হলে continue করতে, যার ফলে এই দুটি মানের জন্য নিচের printf এক্সিকিউট না হয়ে লুপ পরের ধাপে চলে যাবে। ফলে ৬ বার থেকে ২ বার বাদ গিয়ে "ICT" লেখাটি ৪ বার প্রিন্ট হবে।

[৪৪] উত্তর: ⓒ 3

ব্যাখ্যা: লুপটি  c=2  থেকে শুরু হয়ে ২ করে বাড়ছে (২, ৪, ৬...)। লুপের ভেতরে প্রথমে printf দিয়ে "ICT" প্রিন্ট হয়, তারপর কন্ডিশন চেক হয়।

·       c=2 -এর জন্য ১ম বার প্রিন্ট।

·       c=4 -এর জন্য ২য় বার প্রিন্ট।

·       c=6 -এর জন্য ৩য় বার প্রিন্ট হওয়ার পর if(c==6) শর্তটি সত্য হওয়ায় break স্টেটমেন্টের কারণে লুপটি সম্পূর্ণ বন্ধ হয়ে যায়। ফলে মোট ৩ বার প্রিন্ট হবে।

[৪৫] উত্তর: ⓓ 5

ব্যাখ্যা: লুপ থেকে if কন্ডিশন সরিয়ে দিলে লুপটি  c=2, 4, 6, 8, 10  এই ৫টি মানের জন্যই সত্য হবে এবং কোনো বাধা ছাড়াই "ICT" টেক্সটটি মোট ৫ বার প্রদর্শিত হবে।

[৪৬] উত্তর: ⓑ 3

ব্যাখ্যা: লুপটি বিজোড় সংখ্যা অনুযায়ী  z=1, 3, 5, 7...  এভাবে চলবে।

·       z=1  এর জন্য ১ম বার প্রিন্ট।

·       z=3  এর জন্য ২য় বার প্রিন্ট।

·       z=5  এর জন্য ৩য় বার প্রিন্ট।

·       এরপর  z=7  হলে if(z==7) break; শর্তটি সত্য হয়ে লুপ থেকে বের হয়ে যাবে। ফলে "KHULNA" ৩ বার প্রিন্ট হবে।

[৪৭] উত্তর: ⓓ 5

ব্যাখ্যা: break-এর জায়গায় continue দিলে  z=7  হওয়ার সাথে সাথে লুপটি ঐ ধাপের বাকি কাজ (প্রিন্ট করা) বাদ দিয়ে পরবর্তী ধাপে ( z=9 ) চলে যাবে। লুপটি মোট ১ থেকে ১২ এর মধ্যে ৬ বার চলার কথা ছিল ( ১, ৩, ৫, ৭, ৯, ১১ )। শুধু ৭ নম্বরের বার প্রিন্ট না হওয়ায় মোট  ৬ - ১ = ৫  বার প্রিন্ট হবে।

[৪৮] উত্তর: ⓑ B

ব্যাখ্যা: এখানে  x = 10 । প্রথম শর্ত if(x > 5) অর্থাৎ  10 > 5 , যা সত্য। তাই প্রোগ্রামটি ভেতরের ব্লকে ঢুকবে। সেখানে আবার শর্ত if(x < 10) অর্থাৎ  10 < 10 , যা মিথ্যা। যেহেতু শর্ত মিথ্যা, তাই ভেতরের else ব্লকটি কাজ করবে এবং আউটপুট আসবে 'B'।

[৪৯] উত্তর: ⓒ 1245

ব্যাখ্যা: লুপটি  i=1  থেকে ৫ পর্যন্ত প্রিন্ট করার কথা। কিন্তু যখন  i=3  হয়, তখন শর্ত সত্য হওয়ায়  i -এর মান এক বেড়ে ৪ হয় (i++) এবং continue-এর কারণে ৩ প্রিন্ট না হয়ে লুপের পরবর্তী ধাপে চলে যায়। বাকি ১, ২, ৪, ৫ মানগুলো স্বাভাবিকভাবে প্রিন্ট হবে।

[৫০] উত্তর: ⓑ ১ বার

ব্যাখ্যা: do-while লুপের বৈশিষ্ট্য হলো— শর্ত সত্য হোক বা মিথ্যা, লুপের ভেতরের কোডটি প্রথমে অন্তত একবার (১ বার) রান করবেই। এখানে count = 5, প্রথমে "ICT " প্রিন্ট হবে এবং মান বেড়ে ৬ হবে। এরপর শর্ত চেক হবে while(6 < 5) যা মিথ্যা, তাই লুপ বন্ধ হয়ে যাবে।

[৫১] উত্তর: ⓑ i ও iii

ব্যাখ্যা: C ভাষায় অ্যারের ইনডেক্স সর্বদা ০ (শূন্য) থেকে শুরু হয় এবং একবার অ্যারের সাইজ ডিক্লেয়ার বা ঘোষণা করে দিলে রানটাইমে তা আর পরিবর্তন করা যায় না (স্ট্যাটিক মেমোরি)। তবে একটি অ্যারেতে কেবল একই ধরণের ডেটা রাখা যায়, ভিন্ন ভিন্ন ডেটা টাইপ রাখা যায় না (তাই ii ভুল)।

[৫২] উত্তর: ⓒ 185

ব্যাখ্যা: অ্যারের ইনডেক্স শুরু হয় ০ থেকে। সে অনুযায়ী: marks[0]=80, marks[1]=75, marks[2]=90, marks[3]=85, marks[4]=95। কোডে জানতে চাওয়া হয়েছে marks[2] + marks[4] এর মান, যা হলো  ৯০ + ৯৫ = ১৮৫ ।

[৫৩] উত্তর: ⓒ test

ব্যাখ্যা: C ভাষায় ব্যবহারকারী নিজে কোনো কাজের জন্য যে ফাংশন তৈরি করে তাকে User-defined function বলে। এখানে test() ফাংশনটি ব্যবহারকারী নিজে তৈরি করেছেন। main() হলো প্রধান বিল্ট-ইন স্ট্রাকচার এবং printf হলো লাইব্রেরি ফাংশন।

[৫৪] উত্তর: ⓐ i ও ii

ব্যাখ্যা: ফাংশন ব্যবহারের প্রধান সুবিধা হলো একই কোড বারবার লিখতে হয় না (কোডের পুনরাবৃত্তি হ্রাস পায়) এবং বড় প্রোগ্রামকে ছোট ছোট ভাগে ভাগ করায় সহজে ভুল বা ত্রুটি মুক্ত (Debugging) করা যায়। ফাংশন ব্যবহারের সাথে এক্সিকিউশন গতি বহুগুণ বৃদ্ধির কোনো সরাসরি সম্পর্ক নেই।

[৫৫] উত্তর: ⓐ True

ব্যাখ্যা: এখানে  a = 5  এবং  b = 10 । কন্ডিশনটি হলো: if (a > 3 && b < 15)। লজিক্যাল অ্যান্ড (&&) অপারেটরের দুই পাশের শর্তই সত্য হতে হয়। এখানে  5 > 3  (সত্য) এবং  10 < 15  (সত্য)। যেহেতু উভয় শর্তই সত্য, তাই আউটপুট আসবে 'True'।

[৫৬] উত্তর: ⓑ 14

ব্যাখ্যা: লুপটি  i=1  থেকে ৩ পর্যন্ত চলবে এবং প্রতিবারে  i -এর বর্গের মান  s -এর সাথে যোগ হবে।

o   i=1 :  s = 0 + 1 \times 1 = 1

o   i=2 :  s = 1 + 2 \times 2 = 1 + 4 = 5

o   i=3 :  s = 5 + 3 \times 3 = 5 + 9 = 14

লুপ শেষে  s -এর মান ১৪ প্রিন্ট হবে।

[৫৭] উত্তর: ⓑ Recursion

ব্যাখ্যা: প্রোগ্রামিংয়ে কোনো ফাংশন যদি কোনো নির্দিষ্ট শর্তের ওপর ভিত্তি করে তার নিজের ভেতর থেকে নিজেকেই পুনরায় কল (Call) করে, তবে সেই বিশেষ প্রক্রিয়াকে বলা হয় রিকার্সন (Recursion)। এর একটি অন্যতম বাস্তব উদাহরণ হলো ফ্যাক্টোরিয়াল (!) নির্ণয়।