المپدیا

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

ابزار کاربر

ابزار سایت


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

سوال ۷

به پرسش‌های جواب مختصر، مفید و جامع بدهید.

  1. می‌دانیم یک راه برای استفاده از cin این است که بعد از includeها، using namespace std داشته باشیم. دو روش جایگزین به‌جای استفاده از این عبارت طولانی بیان کنید.
  2. در زبان C قدیمی، مفهوم private وجود نداشت. به‌نظر شما این کار چه ضعفی را برای برنامه‌نویسان داشت؟
  3. می‌دانیم برحسب بودن یا نبودن const (دو حالت) و بودن یا نبودن & (این هم دو حالت) در نحوه‌ی دریافت پارامتر یک تابع، جمعاً $۲×۲=۴$ حالت مختلف داریم.
    • برای هر یک از این ۴ حالت تفاوت آن با ۳ حالت دیگر را در یک خط بیان کنید.
    • اگر تنها فاکتور مهم برای ما سرعت باشد و پارامتری ارسالی در داخل تابع تغییر نیابد، کدام یک از این ۴ حالت بهتر است، چرا؟
  4. فرض کنید int *&a = p; در یک کد دیده شده است.
    • این متغیر به چه معناست؟ چه چیزی را نگه می‌دارد؟ چگونه می‌توان از آن استفاده کرد؟ کاربرد آن کجاست؟
    • اگر متغیر p در خط قبلی این خط تعریف شده باشد و تنها این دو متغیر در برنامه باشند، نوع p آن چیست؟
  5. کد ۷ خطی زیر را در نظر بگیرید. این کد را اگر همین‌الآن کامپایل کنیم عبارت World را چاپ می‌کند. آیا می‌توانید بدون تغییر در تابع main() کاری کنید که در خروجی عبارت Hello World چاپ شود؟ (تغییری که به برنامه می‌دهید باید تا حد امکان کمترین تعداد کاراکتر را داشته باشد).
 
#include <iostream>
using namespace std;
// اینجا کد بنویسید
int main() {
   cout << "World" << endl;
   return 0;
}

ابزار صفحه