নিচের উদ্দীপকটি পড়ঃ #include main () int a = 3, b; b=2* a; printf("%d", b); প্রোগ্রাম রান করলে আউটপুট মান ৩ হবে, যখন- i. b = a++; ii. b = a --; iii. b+= a;. নিচের কোনটি সঠিক?
ক. i ও ii
খ. i ও iii
গ. ii ও iii
ঘ. i ,ii ও iii
উত্তর: i ও ii
ব্যাখ্যা: এখানে প্রোগ্রামটিতে `int a = 3, b;` দ্বারা a এর মান ৩ এবং b এর জন্য একটি মেমরি স্থান তৈরি করা হয়েছে। এরপর `b=2* a;` এই লাইনে b এর মান a এর দ্বিগুণ অর্থাৎ [গণিত] করা হয়েছে। সবশেষে `printf("%d", b);` দ্বারা b এর মান প্রিন্ট করা হয়েছে, যা হবে ৬। প্রশ্নটিতে বলা হয়েছে যে আউটপুট মান ৩ হবে, যখন `b = a++;`, `b = a --;` অথবা `b += a;` এই শর্তগুলো প্রযোজ্য হবে। * **i. b = a++;**: এই ক্ষেত্রে, প্রথমে a এর মান (যা ৩) b তে অ্যাসাইন হবে, অর্থাৎ b এর মান ৩ হবে। এরপর a এর মান ১ বৃদ্ধি পেয়ে ৪ হবে। তাই আউটপুট ৩ আসবে। * **ii. b = a --;**: এই ক্ষেত্রেও, প্রথমে a এর মান (যা ৩) b তে অ্যাসাইন হবে, অর্থাৎ b এর মান ৩ হবে। এরপর a এর মান ১ হ্রাস পেয়ে ২ হবে। তাই আউটপুট ৩ আসবে। * **iii. b += a;**: এই ক্ষেত্রে, b এর মান হবে b এর বর্তমান মান + a এর বর্তমান মান। এখানে b এর মান প্রথমে `b=2* a;` থেকে ৬ এবং a এর মান ৩। সুতরাং, b এর মান হবে [গণিত] । তাই আউটপুট ৩ আসবে না। সুতরাং, শুধুমাত্র i এবং ii শর্তে আউটপুট ৩ হবে। এই প্রোগ্রামিং সংক্রান্ত প্রশ্নটি C ভাষার basic syntax এবং operator precedence নিয়ে আলোচনা করে। post-increment (a++) এবং post-decrement (a--) operator এর কাজ হলো, প্রথমে মান ব্যবহার করা এবং তারপর মান পরিবর্তন করা। যেখানে compound assignment operator (+=) বর্তমান মানকে পরিবর্তন করে।
HSC ICT Chapter 5 : প্রোগ্রামিং ভাষা MCQ — Prosthuti প্রশ্নব্যাংক
HSC · ICT · Chapter 5 : প্রোগ্রামিং ভাষা · MCQ
নিচের উদ্দীপকটি পড়ঃ #include main () { int a = 3, b; b=2* a; printf("%d", b); } প্রোগ্রাম রান করলে আউটপুট মান ৩ হবে, যখন- i. b = a++; ii. b = a --; iii. b+= a;. নিচের কোনটি সঠিক?
- ক.i ও ii
- খ.i ও iii
- গ.ii ও iii
- ঘ.i ,ii ও iii
উত্তর