নিচের উদ্দীপকটি পড়ঃ #include main ( ) int a = 3, b; b= ++a; printf("%d", b); অতিরিক্ত লাইন না লিখে প্রোগ্রাম রান করলে printf ( ) ফাংশনে b এর মান ৮ হবে কী পরিবর্তন করলে?
ক. b=a++
খ. b=a--
গ. b=a-5
ঘ. b=a+5
উত্তর: b=a+5
ব্যাখ্যা: প্রোগ্রামটিতে `b = ++a;` লাইনটির কারণে `a` এর মান প্রথমে বৃদ্ধি পেয়ে ৪ হয় এবং তারপর সেই মান `b` তে অ্যাসাইন হয়, তাই `b` এর মান হয় ৪। প্রশ্নে `b` এর মান ৮ হবে কী পরিবর্তন করলে তা জানতে চাওয়া হয়েছে। `b=a+5` পরিবর্তন করলে `a` এর বর্তমান মান (৩) এর সাথে ৫ যোগ হয়ে `b` এর মান ৮ হবে। প্রোগ্রামের `int a = 3, b;` লাইনে `a` এর প্রাথমিক মান ৩। `b = ++a;` এই লাইনে প্রি-ইনক্রিমেন্ট অপারেটর (`++a`) ব্যবহার করা হয়েছে। এর মানে হলো, `a` এর মান অ্যাসাইনমেন্টের আগেই ১ বেড়ে যাবে। তাই, `a` এর মান হবে [গণিত] । এরপর, `a` এর এই নতুন মান `b` তে অ্যাসাইন করা হবে। অর্থাৎ, `b` এর মান হবে ৪। `printf("%d", b);` এই লাইনটি `b` এর মান প্রিন্ট করবে, যা হলো ৪। প্রশ্ন অনুযায়ী, `printf()` ফাংশনে `b` এর মান ৮ করতে হবে, যদি উদ্দীপকের কোডটি পরিবর্তন করা হয়। যদি `b = a + 5;` এই পরিবর্তনটি করা হয়: প্রথমে `a` এর মান ৩। তারপর [গণিত] এর মান গণনা করা হবে, যা হবে [গণিত] । এই মান `b` তে অ্যাসাইন করা হবে। তাই `b` এর মান হবে ৮। তখন `printf("%d", b);` লাইনটি ৮ প্রিন্ট করবে। বিকল্প A) `b = a++;`: এটি পোস্ট-ইনক্রিমেন্ট। এখানে `a` এর বর্তমান মান (৩) `b` তে অ্যাসাইন হবে, এবং তারপর `a` এর মান ১ বাড়বে। তাই `b` এর মান হবে ৩। বিকল্প B) `b = a--;`: এটি পোস্ট-ডিক্রিমেন্ট। এখানে `a` এর বর্তমান মান (৩) `b` তে অ্যাসাইন হবে, এবং তারপর `a` এর মান ১ কমবে। তাই `b` এর মান হবে ৩। বিকল্প C) `b = a - 5;`: এখানে `a` এর মান (৩) থেকে ৫ বিয়োগ হবে, যা হবে [গণিত] । তাই `b` এর মান হবে -২। তাই, `b=a+5` পরিবর্তন করলে `b` এর মান ৮ হবে।
HSC ICT Chapter 5 : প্রোগ্রামিং ভাষা MCQ — Prosthuti প্রশ্নব্যাংক
HSC · ICT · Chapter 5 : প্রোগ্রামিং ভাষা · MCQ
নিচের উদ্দীপকটি পড়ঃ #include main ( ) int a = 3, b; b= ++a; printf("%d", b); } অতিরিক্ত লাইন না লিখে প্রোগ্রাম রান করলে printf ( ) ফাংশনে b এর মান ৮ হবে কী পরিবর্তন করলে?
- ক.b=a++
- খ.b=a--
- গ.b=a-5
- ঘ.b=a+5
উত্তর