المپدیا

دانش‌نامه‌ی المپیاد کامپیوتر ایران

ابزار کاربر

ابزار سایت


سوالات المپیاد:دوره ی تابستان:دوره ی ۲۲:برنامه نویسی:سوال ۱

سوال ۱

در پرسش‌های زیر شما باید چند مورد رو برای هر پرسش ذکر کرده و مختصراً توضیح دهید. هر مورد شما نباید بیشتر از یک خط باشد. کل این بخش هم باید دقیقاً به همین ترتیب و با شماره سوال، حتماً در دو صفحه پاسخ‌نامه (یک برگه) جا بشوند!

  1. تفاوت class و struct چیست؟
  2. نویسندگان و دست‌اندرکاران نرم‌افزارهای متن‌باز (Open Source) هم زن و بچه دارند! دو مورد متفاوت از منابع پول در آوردن یک شرکت سازنده‌ی توزیع‌های لینوکس (مثل اوبونتو) را نام ببرید.
  3. سه قانون آسیموف در مورد ربات‌ها چیست؟
  4. به‌تعداد ۶ عدد مزایا و ۲ عدد معایب مدل «هسته – واسط» را ذکر کرده و مختصراً هر مورد را توضیح دهید.
  5. سه تا از ویژگی‌هایی که دوست داریم ربات‌ها در آینده بدان دست پیدا کنند «شعور»، «هوش» و «خلاقیت» هستند. بر حسب وجود یا عدم وجود این سه ویژگی، ۸ = ۲۳ تا موجود زنده یا غیرزنده (ربات) نام برده و مثال بزنید. برای مثال یک تکه سنگ هیچ‌کدام از این ویژگی‌ها را ندارد (ندارد، ندارد، ندارد) و یک المپیادی ایده‌آل قرار است هر سه ویژگی را داشته باشد (دارد، دارد، دارد). ۶ تای بقیه را خودتان بسازید و در یک خط توضیح دهید چرا هر ویژگی را دارد یا ندارد.
  6. اجرای یک دستور assignment چند بخش دارد؟ یک ایده مختصر بدهید که بفهمیم اول کدام بخش اجرا می‌شود.
  7. سوال سه بخشی:
    • دو سودمندی وجود فریضه‌ی کامنت و کامنت کردن در زبان C/C++ را نام ببرید.
    • دو روش مختلف کامنت کردن را نام ببرید. هر کدام از این دو روش برای کدام سودمندی بالا مفیدتر است؟
    • برای هر روش کمترین کاراکتری که باید حذف/اضافه شوند تا یک تکه کد کامنت و غیرکامنت شود چندتاست و چه‌طور؟
  8. دو مدل ساده‌ی حلقه که آموخته‌ایم کدامند؟ آیا این دو روش به هم قابل تبدیل هستند؟ اگر بله چه‌طور؟ هر کدام از این دو روش برای چه مقاصدی مناسب‌تر و مفهوم‌تر هستند؟
  9. سه دستوری که می‌توانند کنترل برنامه را از اجرای خط بعدی به جای دیگری ببرند کدامند؟ مختصر معرفی کنید.
  10. می‌خواهیم عنصر پنجم یک آرایه‌ی int a[10] را چاپ کنیم. سه روش مختلف برای دسترسی به این خانه بنویسید. روش‌های شما نباید به‌طرز احمقانه‌ای متفاوت باشند (شبیه a[1+3] یا a[8/2])!
  11. سه دلیل مختلف برای استفاده از مفهوم تابع و نوشتن تابع (به‌جای وسط کد) چیست؟
  12. وقتی یک تابع را صدا می‌کنید سه نوع اطلاعات مربوط به آن تابع در stack ذخیره می‌شوند. این سه فقره کدامند؟
  13. سه روش مختلف برای برگرداندن دو تا خروجی از یک تابع (مثل تجزیه $X$ به یک توان دو و یک عدد فرد) ذکر کنید.
  14. می‌خواهیم برنامه‌ای بنویسیم که یک کلمه‌ی حداکثر ۱۰ حرفی را بخواند و آن را برعکس کند. سپس رشته نهایی را چاپ کند. چهار روش مختلف برای نگه‌داری و تخصیص حافظه‌ی مورد نیاز این برنامه ذکر کنید.

ابزار صفحه