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