الگوریتم و فلوچارت
1.75K subscribers
334 photos
9 videos
459 files
280 links
برنامه نویسی را از اینجا شروع کنید‌؛
آموزش طراحی فلوچارت و الگوریتم |
مثال‌های عملی + دانلود رایگان |
مناسب برای برنامه‌نویسان مبتدی
#flowgorithm
گروه چت حل تمرین
https://t.me/flowchart_algorithmGp

جهت ارتباط با ادمین و تبلیغات
@Programer24h 💻
Download Telegram
دوستان عزیز با توجه به نزدیک شدن امتحانات پایان ترم، نمونه سوالات با چه زبان برنامه نویسی بیشتر گذاشته شود؟
Anonymous Poll
37%
زبان برنامه نویسی پایتون
34%
زبان برنامه نویسی ++C
17%
زبان برنامه نویسی C
7%
زبان برنامه نویسی جاوا
10 نمونه سوال مبانی برنامه‌نویسی با سطح متوسط تا پیشرفته به زبان سی شارپ با پاسخ است. در ادامه یک مجموعه سوال متنوع، به‌همراه پاسخ کوتاه

⦁ تفاوت بین کلاس و ساختار (struct) در C# چیست؟ چه زمانی از struct استفاده می‌کنیم؟
⦁ پاسخ: کلاس‌ها ارجاعی هستند (reference type) و از طریق اشاره‌گر به شیء مدیریت می‌شوند، امکان ارث‌بری دارند و فضای heap را اشغال می‌کنند. Structها مقدار-نوع (value type) هستند، معمولاً اندازه کوچکتری دارند، به طور پیش‌فرض به صورت مقدار کپی می‌شوند و از ارث‌بری بین structها پشتیبانی نمی‌کنند. از struct وقتی استفاده می‌شود که نیاز به داده‌های کوچک با عمر محدود و عملکرد Copy-by-Value باشد و نیاز به همگام‌سازی با عملکرد‌های سیستم پایین‌تری وجود داشته باشد.

⦁ تفاوت بین throw و throw ex چیست؟ چه تاثیری روی استک خطا دارد؟
⦁ پاسخ: throw معمولاً خطا را با حفظ استک اصلی رها می‌کند. throw ex در بازگردانی استک را به نقطه‌ دیگری می‌آورد که می‌تواند منجر به از دست رفتن استک اصلی و پیچیدگی اشتباهات debugging شود. در اکثر مواقع استفاده از throw بدون تغییر استک توصیه می‌شود.

⦁ توضیح دهید مدیریت حافظه در C# چگونه کار می‌کند و Garbage Collector چه نقشی دارد؟
⦁ پاسخ: زبان C# اداره‌شده است و از Garbage Collector برای آزادسازی حافظه استفاده می‌کند. GC به طور دوره‌ای اشیاء غیر استفاده را پیدا می‌کند و حافظه را پس می‌گیرد تا فضای heap آزاد شود. این باعث کاهش نیاز به مدیریت صریح حافظه توسط برنامه‌نویس می‌شود، اما می‌تواند باعث توقف‌های کوتاه در اجرای برنامه شود.

⦁ تفاوت بین پارامترهای ref و out چیست؟
⦁ پاسخ: هر دو به‌عنوان ورودی خروجی به کار می‌روند. پارامتر ref باید در زمان فراخوانی مقداردهی اولیه داشته باشد، در حالی که out باید قبل از استفاده مقداردهی اولیه شود تا مقدار خروجی به سمت فراخوان بازگردد. به‌عبارت دیگر، ref مقدار اولیه می‌گیرد و out باید مقداردهی شود در داخل تابع.

⦁ LINQ چیست و چه مزایایی دارد؟
⦁ پاسخ: LINQ مخفف Language-Integrated Query است که امکان پرس‌وجو را به شکل زبانی یکپارچه درون زبان C# فراهم می‌کند. با LINQ می‌توان داده‌ها را از منابع مختلف (مانند آرایه‌ها، لیست‌ها، پایگاه داده‌ها) فیلتر و مرتب کرد و به صورت شی‌ءگرا نتیجه گرفت. مزایا شامل خوانایی بالا، کاهش کد، و امکان استفاده از توابع تو در تو و بهبود نگهداری کد است.

⦁ تفاوت بین interface و abstract class چیست و در چه مواقعی از هرکدام استفاده می‌شود؟
⦁ پاسخ: interface فقط قراردادها (اعلان اعضا بدون پیاده‌سازی) را تعریف می‌کند و می‌تواند چند اینترفیس به‌طور هم‌زمان پیاده‌سازی شود. abstract class می‌تواند برخی اعضا را پیاده‌سازی کند و برخی دیگر را abstract نگه دارد؛ همچنین فقط می‌تواند از کلاس‌های پایه ارث‌بری کند. از interface وقتی نیاز به پشتیبانی از چندوراثتی یا قرارداد بدون پیاده‌سازی دارید استفاده می‌شود، از abstract class زمانی که نیاز به اشتراک‌گذاری پیاده‌سازی و داشتن سطحی از پایه مشترک بین کلاس‌ها دارید.

⦁ چه زمانی از async/await استفاده می‌کنیم و مزیت آن چیست؟
⦁ پاسخ: برای انجام کارهای ناهمزمان بدون بلاک کردن نخ اصلی (مثلاً عملیات ورودی/خروجی، درخواست‌های شبکه)، از async/await استفاده می‌شود. مزیت‌ها شامل پاسخ‌دهی بهتر رابط کاربری، استفاده کارآمد از منابع و ساده‌سازی کد‌های ناهمزمان نسبت به استفاده از callbacks است.

⦁ تفاوت بین Array و List<T> چیست و کجا از هرکدام استفاده می‌شود؟
⦁ پاسخ: Array اندازه ثابت دارد و پس از ایجاد تغییر اندازه ندارد، دسترسی سریع و کار با حافظه را ساده می‌کند. List<T> از اندازه‌پذیری دینامیک برخوردار است، امکانات بیشتری مانند افزودن/حذف عناصر به‌طور پویا را فراهم می‌کند. از آرایه‌ها برای حجم ثابت و کار با داده‌های ثابت استفاده می‌شود؛ از List<T> برای داده‌های پویا و نیازمند گسترش در طول زمان استفاده می‌شود.

⦁ مفهوم Generic در C# چیست و چه مزیتی دارد؟
⦁ پاسخ: جنریک‌ها امکان تعریف کلاس‌ها، اینترفیس‌ها و متدها با نوع داده باز را فراهم می‌کنند. مزیت‌ها شامل بازتوانی دوباره استفاده، کاهش تبدیل‌های نوع (boxing/unboxing) و افزایش ایمنی نوع در زمان کامپایل است.


چه تفاوتی بین مقداردهی اولیه با
= و Initialize با new وجود دارد در موقعیت‌های شیء‌گرا؟
پاسخ: استفاده از = برای مقداردهی اولیه به یک مقدار ثابت یا مقدار برگرفته از متغیر دیگر است. استفاده از new برای ساخت یک شیء جدید از یک کلاس/ساختار است که به منظور تخصیص حافظه و ایجاد نمونه‌ای از شیء استفاده می‌شود. اغلب در کلاس‌ها، برای ایجاد نمونه از new استفاده می‌کنیم تا فضای حافظه برای آن شیء رزرو شود.


برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
🙏1
10 نمونه سوال مبانی برنامه‌نویسی سطح متوسط تا پیشرفته زبان جاوا با پاسخ برای امتحان پایان‌ترم

⦁  تفاوت بین ArrayList و LinkedList در جاوا چیست؟ چه زمانی از هر کدام استفاده می‌شود؟
⦁ پاسخ: ArrayList از آرایه پویا (resizable array) استفاده می‌کند و دسترسی تصادفی (get/set) سریع است، اما افزودن/حذف در وسط کندتر. LinkedList از لیست دوطرفه (doubly-linked list) استفاده می‌کند و افزودن/حذف سریع‌تر است، اما دسترسی تصادفی کند. از ArrayList برای خواندن مکرر و LinkedList برای تغییرات مکرر در وسط لیست.[4]

⦁  String در جاوا immutable است؛ چرا و چه مزایایی دارد؟
⦁ پاسخ: String immutable است تا امنیت (immutability) تضمین شود، thread-safe باشد و به عنوان کلید در HashMap استفاده شود. مزایا: کاهش خطاهای تغییر ناخواسته، امکان اشتراک‌گذاری حافظه و بهینه‌سازی رشته‌های ثابت.[5]

⦁  تفاوت abstract class و interface در جاوا چیست؟
⦁ پاسخ: Abstract class می‌تواند فیلد، متد پیاده‌سازی‌شده و abstract داشته باشد و فقط یک superclass. Interface (تا جاوا 7) فقط متد abstract و constant؛ از جاوا 8 به بعد default و static methods. Interface برای قراردادهای چندگانه، abstract برای اشتراک کد.[5]

⦁  Garbage Collector در جاوا چگونه کار می‌کند و انواع آن چیست؟
⦁ پاسخ: GC اشیاء بدون مرجع را شناسایی و حافظه heap را آزاد می‌کند. انواع: Serial (تک‌ترد)، Parallel (چندترد)، CMS (کم‌توقف)، G1 (نسل‌گرا برای heap بزرگ). هدف: جلوگیری از memory leak و مدیریت خودکار حافظه.[5]

⦁  Stream API در جاوا 8 چیست و مثالی بزنید؟
⦁ پاسخ: Stream API برای پردازش مجموعه‌ها به صورت تابعی (functional) مانند فیلتر، نقشه و کاهش. مثال: list.stream().filter(x -> x > 10).map(x -> x*2).collect(Collectors.toList()); مزایا: کد خوانا و موازی‌سازی آسان.[6]

⦁  Multithreading در جاوا چگونه پیاده‌سازی می‌شود؟ تفاوت Runnable و Thread؟
⦁ پاسخ: با extend Thread یا implement Runnable (ترجیحی برای چندوراثتی). Runnable فقط run() دارد، Thread کلاس کاملی است. مثال: Runnable برای اشتراک کد، Thread برای کنترل بیشتر.[7]

⦁  Exception handling در جاوا: تفاوت checked و unchecked exceptions؟
⦁ پاسخ: Checked (مانند IOException) کامپایل‌تایم اجباری handle می‌شود. Unchecked (RuntimeException مانند NullPointer) اختیاری. try-catch-finally یا throws استفاده می‌شود.[3]

⦁  Generics در جاوا چیست و چرا Type Erasure وجود دارد؟
⦁ پاسخ: Generics نوع امن (type-safe) برای collections فراهم می‌کند، مانند List<String>. Type Erasure: در runtime نوع پاک می‌شود تا سازگاری با نسخه‌های قدیمی حفظ شود، فقط کامپایل‌تایم چک می‌شود.[5]

⦁  Lambda expressions در جاوا 8 چه تغییری ایجاد کرد؟
⦁ پاسخ: Lambda کد ناشناس (anonymous function) برای functional interfaces مانند Runnable یا Comparator فراهم می‌کند. مثال: (a,b) -> a+b; کد را کوتاه و تابعی می‌کند.[6]

⦁   synchronized keyword چگونه کار می‌کند و برای چیست؟
پاسخ: synchronized برای thread-safety روی متد یا بلوک، lock روی object یا class می‌گیرد تا دسترسی همزمان جلوگیری شود. مثال: synchronized void method() {}; از race condition جلوگیری می‌کند.[5]

برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
20 سوال تستی سطح متوسط
/پیشرفته ++C همراه با پاسخ


⦁ کدام یک از انواع زیر توسط زبان C پشتیبانی نمی‌شود ولی در C++ وجود دارد؟
⦁ الف) double
⦁ ب) float
⦁ ج) bool
⦁ د) int
پاسخ: ج

⦁ برای پیاده‌سازی binding تاخیری (late binding) از کدام مفهوم استفاده می‌شود؟
⦁ الف) توابع ایستا
⦁ ب) توابع ثابت
⦁ ج) عملگرها
⦁ د) توابع مجازی
پاسخ: د

⦁ کدام گزینه هیچ مقدار باز نمی‌گرداند؟
⦁ الف) void
⦁ ب) null
⦁ ج) free
⦁ د) empty
پاسخ: الف

⦁ برای تشخیص اینکه یک کاراکتر فضای خالی است یا tabs از کدام تابع استفاده می‌شود؟
⦁ الف) isdigit()
⦁ ب) isblank()
⦁ ج) isalnum()
⦁ د) isalpha()
پاسخ: ب

⦁ وقتی از یک آرگومان void در پاس‌گذاری استفاده می‌شود چه اتفاقی می‌افتد؟
⦁ الف) مقدار بازگردانی می‌شود
⦁ ب) ممکن است یا نباشد، به نوع تابع بازگشتی بستگی دارد
⦁ ج) مقداری به فراخواننده بازگرداند
⦁ د) هیچ مقدار بازگردانی نمی‌شود
پاسخ: د

⦁ چیست که امکان گروه‌بندی تعدادی خطوط کد را فراهم می‌کند تا در برنامه گنجانده شوند؟
⦁ الف) ماکروها
⦁ ب) مدولارسازی
⦁ ج) کنترل برنامه
⦁ د) وظیفه مشخص
پاسخ: ب

⦁ کدام واژه کلیدی برای اعلان تابع دوست (friend) استفاده می‌شود؟
⦁ الف) myfriend
⦁ ب) classfriend
⦁ ج) friend
⦁ د) firend
پاسخ: ج

⦁ برای دیرفراس کردن (dereferencing) از کدام گزینه استفاده می‌شود؟
⦁ الف) اشاره‌گر با ستاره
⦁ ب) اشاره‌گر بدون ستاره
⦁ ج) مقدار با ستاره
⦁ د) مقدار بدون ستاره
پاسخ: الف

⦁ پورلوپلی‌مورفیسم به چه چیزی اشاره می‌کند؟
⦁ الف) کلاسی که چهار فرم دارد
⦁ ب) کلاسی که دو فرم دارد
⦁ ج) کلاسی که فقط یک فرم دارد
⦁ د) کلاسی که چندین فرم دارد
پاسخ: د

⦁ برای هندر کنش تمامی استثناها از کدام هندلر استفاده می‌شود؟
⦁ الف) try-catch
⦁ ب) catch-none
⦁ ج) catch-all
⦁ د) catch
پاسخ: ج

⦁ برای پرتاب یک استثناء از چه چیزی استفاده می‌شود؟
⦁ الف) try
⦁ ب) throw
⦁ ج) handler
⦁ د) catch
پاسخ: ب

⦁ RTTI را می‌توان به کدام دسته از کلاس‌ها اعمال کرد؟
⦁ الف) Polymorphic
⦁ ب) Encapsulation
⦁ ج) Static
⦁ د) Derived
پاسخ: الف

⦁ کدام هدر برای تولید اعداد تصادفی استفاده می‌شود؟
⦁ الف) <random>
⦁ ب) <generator>
⦁ ج) <distribution>
⦁ د) <gen_dist>
پاسخ: الف

⦁ کدام کانتینِر برای نگهداری مجموعه‌ای از عناصر متفاوت و متمایز بهترین گزینه است؟
⦁ الف) queue
⦁ ب) set
⦁ ج) heap
⦁ د) multimap
پاسخ: ب

⦁ مدل‌های وراثت چه نوع رابطه‌ای را توصیف می‌کنند؟
⦁ الف) Belongs-to
⦁ ب) Part-Of
⦁ ج) Is-A
⦁ د) Has-A
پاسخ: ج

⦁ در heap کدام مقدار به‌زودی اولین مقدار خوانده می‌شود؟
⦁ الف) اولین مقدار
⦁ ب) کمترین مقدار
⦁ ج) سومین مقدار
⦁ د) بیشترین مقدار
پاسخ: د

⦁ کدام تابع برای افزایش مقدار ایترِیتر به اندازه‌ای مشخص استفاده می‌شود؟
⦁ الف) move()
⦁ ب) prev()
⦁ ج) advance()
⦁ د) next()
پاسخ: ج

⦁ در شئ Locale اطلاعات کدام اشیاء بارگذاری می‌شود؟
⦁ الف) secant
⦁ ب) facet
⦁ ج) instead
⦁ د) هر دو instead و facet
پاسخ: ب

⦁ کدام کتابخانه ریاضی در C++ برای دست‌کاری بردارها استفاده می‌شود؟
⦁ الف) blitz++
⦁ ب) stac++
⦁ ج) vec++
⦁ د) cli+++
پاسخ: الف

⦁ کدام اپراتور برای ثبت همه متغیرهای خارجی به‌طور مرجع استفاده می‌شود؟
⦁ الف) *
⦁ ب) &&
⦁ ج) &
⦁ د) =
پاسخ: د

برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
🤯1
20 سؤال تستی سطح متوسط پایان ترم زبان C با پاسخ

⦁  C چیست؟
⦁ گزینه‌ها:
  ⦁ a) زبان برنامه‌نویسی سطح پایین
  ⦁ b) زبان برنامه‌نویسی سطح بالا
  ⦁ c) زبان برنامه‌نویسی سطح متوسط با کاربرد سیستم‌محور
  ⦁ d) زبان نشانه‌گذاری
⦁ پاسخ: c

⦁  کدام گزینه نحوه استفاده از متغیرها را در C تضمین می‌کند که مقدار اولیه بدهد؟
⦁ الف) اعلان extern
⦁ ب) اعلان static
⦁ ج) اعلان تعریف با مقداردهی اولیه
⦁ د) اعلان typedef
⦁ پاسخ: ج

⦁  کدام یک از داده‌های زیر در C نوع داده اصلی برای کاراکتر است؟
⦁ الف) int
⦁ ب) char
⦁ ج) short
⦁ د) long
⦁ پاسخ: ب

⦁  عملگر شرطی به چه صورت عمل می‌کند؟
⦁ الف) if-else
⦁ ب) switch
⦁ ج) ?:
⦁ د) goto
⦁ پاسخ: ج

⦁  آیا عبارت زیر در C مجاز است: int a = 5, b = 10;؟
⦁ الف) بله
⦁ ب) خیر
⦁ پاسخ: الف

⦁  تعریف تابع با امضای غیر یکتا در چند تابع با نام یکسان در C چه نتیجه‌ای دارد؟
⦁ الف) فرقی ندارد
⦁ ب) هر تابع باید امضای دقیق یکسان داشته باشد
⦁ ج) مجاز است اما با ارجاع پنهانی
⦁ د) تابع با امضاهای متفاوت نمی‌تواند هم‌نام باشد
⦁ پاسخ: د

⦁  کدام یک از واژه‌های کلیدی برای جلوگیری از تغییر مقدار یک متغیر استفاده می‌شود؟
⦁ الف) mutable
⦁ ب) const
⦁ ج) static
⦁ د) volatile
⦁ پاسخ: ب

⦁  کدام ساختار برای اجرای حلقه‌های تکرار استفاده می‌شود؟
⦁ الف) if
⦁ ب) switch
⦁ ج) for، while، do-while
⦁ د) goto
⦁ پاسخ: ج

⦁  در C، مفهوم اشاره‌گر چیست؟
⦁ الف) متغیرهایی که مقدار آنان تغییر می‌کند
⦁ ب) آدرس یک متغیر در حافظه
⦁ ج) تابعی که مقدار بازمی‌گرداند
⦁ د) مجموعه‌ای از متغیرها در یک ساختار
⦁ پاسخ: ب

⦁   مقداردهی به اشاره‌گر NULL چه معنایی دارد؟
⦁ الف) به معنای مقدار صفر است
⦁ ب) به معنای عدم مقداردهی است
⦁ ج) به معنای آدرس حافظه معتبر است
⦁ د) به معنای مقدار همیشه معتبر است
⦁ پاسخ: ب

⦁   کتابخانه استاندارد C چیست و برای چه کارکردی استفاده می‌شود؟
⦁ الف) <stdio.h> برای ورودی/خروجی
⦁ ب) <math.h> برای مثلثات
⦁ ج) <stdlib.h> برای مدیریت حافظه
⦁ د) همه موارد بالا
⦁ پاسخ: د

⦁   sizeof در C چه کاربردی دارد؟
⦁ الف) اندازه نوع داده‌ای را برمی‌گرداند
⦁ ب) طول رشته را می‌سنجد
⦁ ج) اندازه آرایه‌های داینامیک را مشخص می‌کند
⦁ د) سایز حافظه کل برنامه را می‌سنجند
⦁ پاسخ: الف

⦁   کدام گزینه نشان‌دهنده یک تابع بازگشتی صحیح است؟
⦁ الف) تابعی که خود را فراخوانی می‌کند
⦁ ب) تابعی که به صورت غیرمسطح فراخوانی می‌شود
⦁ ج) تابعی که خروجی ندارد
⦁ د) تابعی که تنها از طریق ماکروها کار می‌کند
⦁ پاسخ: الف

⦁   در C، آرایه‌ها چگونه مقداردهی اولیه می‌شوند؟
⦁ الف) فقط با مقداردهی مستقیم
⦁ ب) با استفاده از braced initializer
⦁ ج) با استفاده از malloc
⦁ د) با استفاده از calloc
⦁ پاسخ: ب

⦁   پرچم‌های هدف پیش‌پردازنده چه نقشی دارند؟
⦁ الف) شامل کردن فایل‌ها با #include
⦁ ب) تعریف ماکروها با #define
⦁ ج) شرطی کردن بخش‌های کد با #if
⦁ د) همه موارد بالا
⦁ پاسخ: د

⦁   تفاوت اصلی بین اشاره‌گر و مقدار چیست؟
⦁ الف) آدرس محل ذخیره مقدار است، نه مقدار itself
⦁ ب) مقدار همیشه ثابت است
⦁ ج) اشاره‌گر به هر نوع داده‌ای نمی‌تواند اشاره کند
⦁ د) هیچ تفاوتی وجود ندارد
⦁ پاسخ: الف

⦁   آیا امکان استفاده از متغیرهای داخلی در خارج از بلوک آن وجود دارد؟
⦁ الف) بله
⦁ ب) خیر
⦁ پاسخ: ب

⦁   خطای رایج در استفاده از scanf چیست؟
⦁ الف) فراموشی ampersand برای دریافت آدرس
⦁ ب) استفاده از فرمت‌های منطبق با نوع داده
⦁ ج) عدم چک کردن خطاهای ورودی
⦁ د) همه موارد
⦁ پاسخ: د

⦁   رایج‌ترین دستور برای بازگرداندن مقدار از تابع در C چیست؟
⦁ الف) return
⦁ ب) exit
⦁ ج) throw
⦁ د) break
⦁ پاسخ: الف

⦁   کدام هدر برای کار با ورودی/خروجی استاندارد استفاده می‌شود؟
⦁ الف) <stdio.h>
⦁ ب) <stdlib.h>
⦁ ج) <string.h>
⦁ د) <math.h>
⦁ پاسخ: الف

⦁   چه تفاوتی بین scanf و gets وجود دارد؟
⦁ الف) scanf ایمن‌تر است زیرا اندازه‌گیری می‌کند
⦁ ب) gets امن است چون اندازه‌گیری ندارد
⦁ ج) gets منسوخ است و امنیت ندارد، در مقابل scanf می‌تواند با دفرنس اندازه‌دهی امن‌تر باشد
⦁ د) هیچ تفاوتی ندارند
⦁ پاسخ: ج

برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
ادامه سوالات تستی زبان برنامه نویسی C
کدام عملگر برای دسترسی به عضو‌های یک ساختار از طریق اشاره‌گر استفاده می‌شود؟
الف) .
ب) ->
ج) *
د) &
پاسخ: ب
چه زمانی از ماژول‌های استاندارد مانند string.h استفاده می‌شود؟
الف) برای کار با رشته‌ها و عملیات مربوط به رشته‌ها
ب) برای عملیات ورودی/خروجی
ج) برای مدیریت حافظه
د) برای ریاضیات پیشرفته
پاسخ: الف
آیا در C امکان بازگرداندن مقدار از تابع با استفاده از اشاره‌گر وجود دارد؟
الف) بله
ب) خیر
پاسخ: الف
چه چیزی باعث خطای کلی در هنگام کامپایل می‌شود؟
الف) استفاده از نام تابع تکراری با امضای متفاوت در همان بخش
ب) استفاده از توابع کتابخانه‌ای غیرمرتبط
ج) استفاده از متغیر بدون مقداردهی اولیه
د) همه موارد
پاسخ: د
کدام گزینه مناسب برای مدیریت خطا در ورودی/خروجی است؟
الف) بررسی مقدار بازگشتی توابع
ب) استفاده از دستورات خروج به جای بازگشت
ج) استفاده از goto برای خروج سریع
د) هیچکدام
پاسخ: الف
چه کاربردی برای sizeof(char) در اغلب کامپایلرها وجود دارد؟
الف) برابر با 1 است (1 بایت)
ب) برابر با 4 است
ج) برابر با 2 است
د) بستگی به پلتفرم دارد
پاسخ: الف
در پایان هر پروژه C چه مرحله‌ای برای صحت‌سنجی وجود دارد؟
الف) نوشتن تست‌های واحد
ب) اجرای تست‌های یکپارچگی
ج) بررسی حافظه و گزارش استفاده
د) همه موارد
پاسخ: د

برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
📝 20 نمونه سوال پایتون (سطح متوسط) با پاسخ

1. چاپ اعداد زوج بین 1 تا 20

for i in range(1, 21):
if i % 2 == 0:
print(i)


---

2. محاسبه مجموع عناصر یک لیست

nums = [3, 7, 2, 9]
print(sum(nums))


---

3. پیدا کردن بزرگ‌ترین عدد در لیست

nums = [12, 45, 7, 23]
print(max(nums))


---

4. شمارش تعداد کاراکترهای یک رشته

text = "python exam"
print(len(text))


---

5. بررسی اینکه عدد اول است یا نه

n = 17
is_prime = True
for i in range(2, n):
if n % i == 0:
is_prime = False
break
print(is_prime)


---

6. معکوس کردن یک رشته

text = "hello"
print(text[::-1])


---

7. محاسبه فاکتوریل عدد

def factorial(n):
result = 1
for i in range(1, n+1):
result *= i
return result

print(factorial(5))


---

8. پیدا کردن تعداد کلمات در یک جمله

sentence = "Python is very powerful"
print(len(sentence.split()))


---

9. مرتب‌سازی لیست

nums = [5, 2, 9, 1]
nums.sort()
print(nums)


---

10. محاسبه میانگین لیست

nums = [10, 20, 30, 40]
print(sum(nums)/len(nums))


---

11. پیدا کردن بیشترین تکرار در لیست

nums = [1, 2, 2, 3, 3, 3, 4]
print(max(nums, key=nums.count))


---

12. برنامه‌ای برای فیبوناچی تا عدد 10

a, b = 0, 1
for _ in range(10):
print(a)
a, b = b, a+b


---

13. ذخیره داده در فایل

with open("data.txt", "w") as f:
f.write("Hello Python")


---

14. خواندن داده از فایل

with open("data.txt", "r") as f:
print(f.read())


---

15. تعریف کلاس ساده

class Student:
def init(self, name, grade):
self.name = name
self.grade = grade

s = Student("Ali", 18)
print(s.name, s.grade)


---

16. محاسبه توان عدد

print(pow(2, 5))


---

17. حذف عناصر تکراری از لیست

nums = [1, 2, 2, 3, 4, 4]
print(list(set(nums)))


---

18. بررسی وجود یک عنصر در لیست

nums = [10, 20, 30]
print(20 in nums)


---

19. برنامه‌ای برای محاسبه مجموع اعداد فرد تا 50
total = 0
for i in range(1, 51, 2):
total += i
print(total)


---

20. استفاده از لیست درک
(List Comprehension)

squares = [x2 for x in range(1, 6)]
print(squares)

برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
🐍 20 نمونه سؤال پیشرفته پایتون با پاسخ

1. لیست درک (List Comprehension)
سؤال: لیستی از مربع اعداد زوج بین 1 تا 20 بساز.
پاسخ:

squares = [x2 for x in range(1, 21) if x % 2 == 0]
print(squares)


---

2. دیکشنری درک (Dict Comprehension)
سؤال: دیکشنری بساز که کلیدها اعداد 1 تا 5 و مقدارشان مکعب آن‌ها باشد.
پاسخ:

cubes = {x: x3 for x in range(1, 6)}
print(cubes)


---

3. تابع بازگشتی (Recursion)
سؤال: تابعی بنویس که فاکتوریل عدد را محاسبه کند.
پاسخ:

def factorial(n):
return 1 if n == 0 else n * factorial(n-1)

print(factorial(5))


---

4. مرتب‌سازی سفارشی
سؤال: لیست رشته‌ها را بر اساس طولشان مرتب کن.
پاسخ:

words = ["python", "ai", "algorithm", "data"]
print(sorted(words, key=len))


---

5. دکوراتور (Decorator)
سؤال: دکوراتوری بنویس که زمان اجرای تابع را محاسبه کند.
پاسخ:
import time

def timer(func):
def wrapper(args, *kwargs):
start = time.time()
result = func(args, *kwargs)
end = time.time()
print("Execution time:", end - start)
return result
return wrapper

@timer
def slow_function():
time.sleep(2)
return "Done"

print(slow_function())


---

6. ژنراتور (Generator)
سؤال: ژنراتوری بنویس که فیبوناچی تولید کند.
پاسخ:

def fibonacci(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a+b

print(list(fibonacci(10)))


---

7. مدیریت خطا
سؤال: برنامه‌ای بنویس که تقسیم بر صفر را مدیریت کند.
پاسخ:

try:
x = 10 / 0
except ZeroDivisionError:
print("Division by zero is not allowed!")


---

8. کلاس و شیءگرایی
سؤال: کلاسی برای دانشجو با ویژگی‌های نام و معدل بساز.
پاسخ:

class Student:
def init(self, name, gpa):
self.name = name
self.gpa = gpa

def str(self):
return f"{self.name} - GPA: {self.gpa}"

s = Student("Mohammad", 18.5)
print(s)


---

9. وراثت (Inheritance)
سؤال: کلاس Animal و کلاس Dog که از آن ارث‌بری کند بساز.
پاسخ:

class Animal:
def speak(self):
return "Some sound"

class Dog(Animal):
def speak(self):
return "Woof!"

d = Dog()
print(d.speak())


---

10. مدیریت فایل
سؤال: محتوای یک فایل متنی را بخوان و تعداد خطوط آن را چاپ کن.
پاسخ:

with open("test.txt", "r") as f:
lines = f.readlines()
print(len(lines))


---

11. استفاده از Lambda
سؤال: لیست اعداد را به توان دو برسان با استفاده از map.
پاسخ:

nums = [1, 2, 3, 4]
print(list(map(lambda x: x2, nums)))


---

12. مرتب‌سازی چندمعیاره
سؤال: لیست دیکشنری‌ها را بر اساس سن و سپس نام مرتب کن.
پاسخ:

people = [{"name":"Ali","age":25},{"name":"Sara","age":22},{"name":"Reza","age":25}]
print(sorted(people, key=lambda x: (x["age"], x["name"])))


---

13. استفاده از zip
سؤال: دو لیست را به صورت جفت ترکیب کن.
پاسخ:

names = ["Ali", "Sara"]
scores = [18, 19]
print(list(zip(names, scores)))


---

14. شمارش عناصر با collections.Counter
سؤال: تعداد تکرار کاراکترها در رشته را بشمار.
پاسخ:

from collections import Counter
text = "python programming"
print(Counter(text))


---

15. استفاده از enumerate
سؤال: لیست را همراه با شماره ایندکس چاپ کن.
پاسخ:

items = ["apple", "banana", "cherry"]
for i, item in enumerate(items):
print(i, item)


---

16. کار با JSON
سؤال: دیکشنری را به JSON تبدیل کن.
پاسخ:

import json
data = {"name":"Mohammad","age":21}
print(json.dumps(data))


---

17. کار با set
سؤال: اشتراک دو مجموعه را پیدا کن.
پاسخ:

a = {1,2,3,4}
b = {3,4,5,6}
print(a & b)


---

18. لیست تو در تو
سؤال: ماتریس 3×3 بساز و چاپ کن.
پاسخ:

matrix = [[i+j for j in range(3)] for i in range(3)]
print(matrix)


---

19. استفاده از filter
سؤال: اعداد بزرگ‌تر از 10 را فیلتر کن.
پاسخ:

nums = [5, 12, 7, 20]
print(list(filter(lambda x: x > 10, nums)))

20. کار با itertools
سؤال: همه جایگشت‌های رشته "abc" را تولید کن.
پاسخ:

import itertools
print(list(itertools.permutations("abc")))


برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
👍1🔥1
۵ نمونه سؤال از آرایه‌ها (Arrays) در زبان ++C به همراه پاسخ و کد نمونه آورده‌ام. سطح سؤالات از مبتدی تا متوسط است.

سؤال ۱: نمایش عناصر یک آرایه
صورت سؤال:
برنامه‌ای بنویسید که ۵ عدد را در یک آرایه دریافت کرده و آن‌ها را نمایش دهد.
پاسخ:
#include <iostream> using namespace std; int main()
{ int a[5];
for(int i = 0; i < 5; i++)
{ cin >> a[i]; } for(int i = 0; i < 5; i++)
{ cout << a[i] << " "; }
return 0; }


سؤال ۲: محاسبه مجموع عناصر آرایه
صورت سؤال:
مجموع عناصر یک آرایه ۶ عضوی را محاسبه و چاپ کنید.
پاسخ:
#include <iostream> using namespace std; int main()
{ int a[6], sum = 0; for(int i = 0; i < 6; i++)
{ cin >> a[i]; sum += a[i]; }
cout << "Sum = " << sum;
return 0;
}

سؤال ۳: پیدا کردن بزرگ‌ترین عدد در آرایه
صورت سؤال:
برنامه‌ای بنویسید که بزرگ‌ترین عدد یک آرایه را پیدا کند.
پاسخ:
#include <iostream> using namespace std; int main()
{ int a[5], max; for(int i = 0; i < 5; i++)
{ cin >> a[i]; } max = a[0];
for(int i = 1; i < 5; i++)
{ if(a[i] > max) max = a[i]; }
cout << "Max = " << max;
return 0;
}

سؤال ۴: شمارش اعداد زوج در آرایه
صورت سؤال:
تعداد اعداد زوج موجود در یک آرایه را محاسبه کنید.
پاسخ:
#include <iostream> using namespace std; int main()
{ int a[7], count = 0; for(int i = 0; i < 7; i++)
{ cin >> a[i]; if(a[i] % 2 == 0)
count++; }
cout << "Even numbers = " << count;
return 0;
}

سؤال ۵: معکوس کردن آرایه
صورت سؤال:
برنامه‌ای بنویسید که عناصر یک آرایه را به صورت معکوس چاپ کند.
پاسخ:
#include <iostream> using namespace std;
int main()
{ int a[5];
for(int i = 0; i < 5; i++)
{ cin >> a[i]; } for(int i = 4; i >= 0; i--)
{ cout << a[i] << " "; }
return 0;
}


برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
هزار ( 1000) نمونه سوال تستی زبان برنامه نویسی ++C به همراه پاسخ سوالات

منبع بسیار عالی برای یادگیری زبان ++C
منبع بسیار عالی برای آمادگی آزمونهای میان ترم و پایان ترم





برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
🙏1
هزار (1000) نمونه سوال تستی زبان برنامه نویسی C به همراه پاسخ سوالات

منبع بسیار عالی برای یادگیری زبان برنامه نویسی C
منبع بسیار عالی برای آمادگی آزمونهای میان ترم و پایان ترم





برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
🔥1
۱۰ نمونه سؤال پایان‌ترم زبان پایتون به‌همراه پاسخ (مناسب سطح مقدماتی تا متوسط) آورده‌ام. سؤالات ترکیبی از مفهومی، تشریحی و کدنویسی هستند.
سوال ۱: پایتون چیست و چه کاربردهایی دارد؟
پاسخ:
پایتون یک زبان برنامه‌نویسی سطح بالا، مفسری و چندمنظوره است که خوانایی بالایی دارد.
کاربردها:
توسعه وب
علم داده و هوش مصنوعی
اتوماسیون و اسکریپت‌نویسی
تحلیل داده
ساخت نرم‌افزار
سوال ۲: تفاوت لیست (list) و تاپل (tuple) را توضیح دهید.
پاسخ:
لیست قابل تغییر (mutable) است.
تاپل غیرقابل تغییر (immutable) است.
لیست با [] و تاپل با () تعریف می‌شود.
my_list = [1, 2, 3] my_tuple = (1, 2, 3)
سوال ۳: خروجی کد زیر چیست؟
x = 5 y = 2 print(x ** y)
پاسخ:
25
(عملگر ** توان را محاسبه می‌کند)

سوال ۴: یک تابع بنویسید که عددی را گرفته و زوج یا فرد بودن آن را مشخص کند.
پاسخ:
def even_or_odd(n):
if n % 2 == 0:
return "زوج"
else:
return "فرد" print(even_or_odd(7))


سوال ۵: حلقه for چه کاربردی دارد؟ یک مثال بزنید.
پاسخ:
حلقه for برای تکرار روی مجموعه‌ای از داده‌ها استفاده می‌شود.
for i in range(1, 6): print(i)
سوال ۶: دیکشنری چیست؟ یک مثال بزنید.
پاسخ:
دیکشنری مجموعه‌ای از کلید–مقدار است.
student = { "name": "Ali", "age": 20, "grade": 18 }

سوال ۷: خروجی کد زیر چیست؟
numbers = [1, 2, 3] numbers.append(4) print(len(numbers))
پاسخ:
4
سوال ۸: تفاوت == و = در پایتون چیست؟
پاسخ:
= برای انتساب مقدار
== برای مقایسه برابری

x = 5 # انتساب
x == 5 # مقایسه

سوال ۹: یک برنامه بنویسید که مجموع اعداد ۱ تا ۱۰ را محاسبه کند.
پاسخ:
total = 0
for i in range(1, 11): total += i
print(total)


سوال ۱۰: خطای (Exception) چیست و چگونه آن را مدیریت می‌کنیم؟
پاسخ:
خطا رویدادی است که باعث توقف اجرای برنامه می‌شود.
مدیریت خطا با try-except انجام می‌شود.
try:
x = int("abc") except ValueError:
print("خطا در تبدیل رشته به عدد")



برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
3
در زیر ۵ نمونه سوال و جواب با زبان پایتون در مورد ماتریس‌ها ارائه شده است:

سوال ۱: ایجاد یک ماتریس

سوال: یک ماتریس  3 × 3  با مقادیر تصادفی ایجاد کنید.

پاسخ:
import numpy as np

matrix = np.random.rand(3, 3)
print(matrix)


سوال ۲: جمع دو ماتریس

سوال: دو ماتریس  A  و  B  به ابعاد  2 × 2  را جمع کنید.
• ( A =
1 | 2
3 | 4

)
• ( B =
5 | 6
7 | 8

)

پاسخ:
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
C = A + B
print(C)
# خروجی: [[ 6  8]
#          [10 12]]


سوال ۳: ضرب دو ماتریس

سوال: ضرب دو ماتریس  A  و  B  به ابعاد  2 × 3  و  3 × 2  را محاسبه کنید.
• ( A =
1 | 2 | 3
4 | 5 | 6

)
• ( B =
7  | 8
9  | 10
11 | 12

)

پاسخ:
A = np.array([[1, 2, 3], [4, 5, 6]])
B = np.array([[7, 8], [9, 10], [11, 12]])
C = np.dot(A, B)
print(C)
# خروجی: [[ 58  64]
#          [139 154]]


سوال ۴: ترانهاده یک ماتریس

سوال: ترانهاده یک ماتریس  A  به ابعاد  2 × 3  را محاسبه کنید.
• ( A =
1 | 2 | 3
4 | 5 | 6

)

پاسخ:
A = np.array([[1, 2, 3], [4, 5, 6]])
A_transpose = A.T
print(A_transpose)
# خروجی: [[1 4]
#          [2 5]
#          [3 6]]


سوال ۵: تعیین معکوس یک ماتریس

سوال: معکوس یک ماتریس مربعی  A  به ابعاد  2 × 2  را محاسبه کنید.
• ( A =
4 | 7
2 | 6

)

پاسخ:
A = np.array([[4, 7], [2, 6]])
A_inverse = np.linalg.inv(A)
print(A_inverse)
# خروجی: [[ 0.6 -0.7]
#          [-0.2  0.4]]


با استفاده از این مثال‌ها می‌توانید نحوه کار با ماتریس‌ها در زبان پایتون را تمرین کنید.


برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
در زیر ۱۰ نمونه سوال و جواب با زبان پایتون در مورد ست‌ها و تاپل‌ها ارائه شده است:

سوال ۱: ایجاد یک ست

سوال: یک ست از اعداد ۱ تا ۵ ایجاد کنید.

پاسخ:
my_set = {1, 2, 3, 4, 5}
print(my_set)


سوال ۲: افزودن عنصر به ست

سوال: یک عنصر جدید (۶) به ست زیر اضافه کنید.
my_set = {1, 2, 3}


پاسخ:
my_set.add(6)
print(my_set)


سوال ۳: حذف عنصر از ست

سوال: عنصر (۲) را از ست زیر حذف کنید.
my_set = {1, 2, 3, 4, 5}


پاسخ:
my_set.remove(2)
print(my_set)


سوال ۴: بررسی وجود عنصر در ست

سوال: بررسی کنید که آیا عدد (۳) در ست زیر وجود دارد یا خیر.
my_set = {1, 2, 3, 4}


پاسخ:
exists = 3 in my_set
print(exists) # خروجی: True


سوال ۵: عملیات اتحاد دو ست

سوال: اتحاد دو ست زیر را محاسبه کنید.
set_a = {1, 2, 3}
set_b = {3, 4, 5}


پاسخ:
union_set = set_a | set_b
print(union_set) # خروجی: {1, 2, 3, 4, 5}


سوال ۶: ایجاد یک تاپل

سوال: یک تاپل شامل اعداد (۱، ۲، ۳) ایجاد کنید.

پاسخ:
my_tuple = (1, 2, 3)
print(my_tuple)


سوال ۷: دسترسی به عنصر در تاپل

سوال: به عنصر دوم تاپل زیر دسترسی پیدا کنید.
my_tuple = (10, 20, 30, 40)


پاسخ:
second_element = my_tuple[1]
print(second_element) # خروجی: 20


سوال ۸: طول تاپل

سوال: طول تاپل زیر را محاسبه کنید.
my_tuple = (1, 2, 3, 4, 5)


پاسخ:
length = len(my_tuple)
print(length) # خروجی: 5


سوال ۹: تکرار عناصر در تاپل

سوال: تعداد تکرار عدد (2) در تاپل زیر را محاسبه کنید.
my_tuple = (1, 2, 2, 3, 4)


پاسخ:
count_of_two = my_tuple.count(2)
print(count_of_two) # خروجی: 2


سوال ۱۰: تبدیل لیست به تاپل

سوال: یک لیست از اعداد را به تاپل تبدیل کنید.
my_list = [1, 2, 3, 4]


پاسخ:
my_tuple = tuple(my_list)
print(my_tuple) # خروجی: (1, 2, 3, 4)


با استفاده از این مثال‌ها می‌توانید نحوه کار با ست‌ها و تاپل‌ها در زبان پایتون را تمرین کنید.


برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
در زیر ۱۰ نمونه سوال و جواب با زبان پایتون در مورد حلقه‌های for و while ارائه شده است:

سوال ۱: استفاده از حلقه for برای چاپ اعداد

سوال: با استفاده از حلقه for اعداد ۱ تا ۵ را چاپ کنید.

پاسخ:
for i in range(1, 6):
print(i)


سوال ۲: جمع اعداد با حلقه for

سوال: مجموع اعداد ۱ تا ۱۰ را با استفاده از حلقه for محاسبه کنید.

پاسخ:
sum = 0
for i in range(1, 11):
sum += i
print(sum) # خروجی: 55


سوال ۳: استفاده از حلقه while برای شمارش معکوس

سوال: با استفاده از حلقه while اعداد ۵ تا ۱ را چاپ کنید.

پاسخ:
i = 5
while i > 0:
print(i)
i -= 1


سوال ۴: شمارش تکرار در حلقه for

سوال: تعداد عناصر لیست زیر را با استفاده از حلقه for محاسبه کنید.
my_list = [10, 20, 30, 40]


پاسخ:
count = 0
for item in my_list:
count += 1
print(count) # خروجی: 4


سوال ۵: استفاده از break در حلقه while

سوال: با استفاده از حلقه while اعداد را چاپ کنید تا به عدد ۳ برسید و سپس حلقه را متوقف کنید.

پاسخ:
i = 1
while True:
if i == 3:
break
print(i)
i += 1


سوال ۶: استفاده از continue در حلقه for

سوال: با استفاده از حلقه for اعداد ۱ تا ۵ را چاپ کنید، اما عدد ۳ را نادیده بگیرید.

پاسخ:
for i in range(1, 6):
if i == 3:
continue
print(i)


سوال ۷: محاسبه فاکتوریل با حلقه while

سوال: فاکتوریل عدد ۵ را با استفاده از حلقه while محاسبه کنید.

پاسخ:
n = 5
factorial = 1
i = 1
while i <= n:
factorial *= i
i += 1
print(factorial) # خروجی: 120


سوال ۸: استفاده از enumerate در حلقه for

سوال: با استفاده از enumerate، ایندکس و مقدار هر عنصر لیست زیر را چاپ کنید.
my_list = ['a', 'b', 'c']


پاسخ:
for index, value in enumerate(my_list):
print(index, value)


سوال ۹: جمع اعداد زوج با حلقه for

سوال: مجموع اعداد زوج بین ۱ تا ۲۰ را با استفاده از حلقه for محاسبه کنید.

پاسخ:
sum_even = 0
for i in range(1, 21):
if i % 2 == 0:
sum_even += i
print(sum_even) # خروجی: 110


سوال ۱۰: پیدا کردن بزرگترین عدد با حلقه while

سوال: بزرگترین عدد را از لیست زیر با استفاده از حلقه while پیدا کنید.
my_list = [3, 5, 2, 8, 6]


پاسخ:
max_num = my_list[0]
i = 1
while i < len(my_list):
if my_list[i] > max_num:
max_num = my_list[i]
i += 1
print(max_num) # خروجی: 8


با استفاده از این مثال‌ها می‌توانید نحوه کار با حلقه‌های for و while در زبان پایتون را تمرین کنید.


برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
1
در زیر ۵ نمونه سوال و جواب با زبان پایتون در مورد جمع سری‌های خطی و کسری ارائه شده است:

سوال ۱: جمع سری خطی

سوال: جمع سری خطی Sₙ = 1 + 2 + 3 + ... + n را برای n = 10 محاسبه کنید.

پاسخ:
n = 10
S_n = sum(range(1, n + 1))
print(S_n) # خروجی: 55


سوال ۲: جمع سری کسری

سوال: جمع سری کسری Sₙ = 1 / 1 + 1 / 2 + 1 / 3 + ... + 1 / n را برای n = 5 محاسبه کنید.

پاسخ:
n = 5
S_n = sum(1/i for i in range(1, n + 1))
print(S_n) # خروجی: 2.283333333333333


سوال ۳: جمع سری خطی با فرمول

سوال: از فرمول Sₙ = n(n + 1) / 2 برای محاسبه جمع سری خطی n = 100 استفاده کنید.

پاسخ:
n = 100
S_n = n * (n + 1) // 2
print(S_n) # خروجی: 5050


سوال ۴: جمع سری کسری با دقت مشخص

سوال: جمع سری کسری Sₙ = ∑ᵢ₌₁ⁿ 1 / i را برای n = 10 محاسبه کنید و نتیجه را با دقت دو رقم اعشار نمایش دهید.

پاسخ:
n = 10
S_n = sum(1/i for i in range(1, n + 1))
print(f"{S_n:.2f}") # خروجی: 2.93


سوال ۵: جمع سری کسری تا حد خاص

سوال: مجموع سری کسری S را تا زمانی که مقدار آن بیشتر از 2 شود محاسبه کنید و تعداد جملات را نمایش دهید.

پاسخ:
S = 0
n = 0

while S <= 2:
n += 1
S += 1/n

print(n) # خروجی: تعداد جملات تا زمانی که S بزرگتر از 2 شود


با استفاده از این مثال‌ها می‌توانید نحوه محاسبه جمع سری‌های خطی و کسری را در زبان پایتون تمرین کنید.


برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
🙏1
سوالات پرتکرار درس مبانی برنامه‌نویسی با زبان ++C همراه با پاسخ تشریحی و خلاصه آورده شده است؛ این‌ها جزو رایج‌ترین سؤالات امتحانی هستند.


🔹 ۱. تفاوت while و do while چیست؟
پاسخ:
در while ابتدا شرط بررسی می‌شود، سپس بدنه اجرا می‌شود.
در do while ابتدا بدنه اجرا می‌شود و سپس شرط بررسی می‌شود، بنابراین حداقل یک‌بار اجرا می‌شود.
while(condition) { // ممکن است اجرا نشود } do { // حداقل یک بار اجرا می‌شود } while(condition);
🔹 ۲. تفاوت ++i و i++ چیست؟
پاسخ:
++i (پیش‌افزایش): ابتدا مقدار افزایش می‌یابد سپس استفاده می‌شود.
i++ (پس‌افزایش): ابتدا استفاده می‌شود سپس مقدار افزایش می‌یابد.
int i = 5; cout << ++i; // 6 cout << i++; // 6 (بعداً 7 می‌شود)
🔹 ۳. متغیر محلی و سراسری چیست؟
پاسخ:
محلی (Local): داخل تابع تعریف می‌شود و فقط در همان تابع قابل استفاده است.
سراسری (Global): خارج از توابع تعریف می‌شود و در کل برنامه قابل دسترسی است.
🔹 ۴. آرایه چیست؟
پاسخ:
آرایه مجموعه‌ای از چند متغیر هم‌نوع است که با یک نام مشترک و اندیس استفاده می‌شوند.
int a[5] = {1,2,3,4,5};
اندیس آرایه‌ها از ۰ شروع می‌شود.
🔹 ۵. تابع چیست و چرا استفاده می‌شود؟
پاسخ:
تابع مجموعه‌ای از دستورات است که یک کار مشخص انجام می‌دهد.
مزایا:
کاهش تکرار کد
افزایش خوانایی
اشکال‌یابی ساده‌تر
int sum(int a, int b) { return a + b; }
🔹 ۶. تفاوت break و continue چیست؟
پاسخ:
break → خروج کامل از حلقه
continue → پرش به تکرار بعدی حلقه
🔹 ۷. مقداردهی پیش‌فرض متغیرها چگونه است؟
پاسخ:
متغیرهای سراسری → صفر (0)
متغیرهای محلی → مقدار نامشخص (garbage)
🔹 ۸. اشکال کد زیر چیست؟
int a[5];
for(int i=1; i<=5; i++) cin >> a[i];

پاسخ:
اندیس آرایه از 0 تا 4 است ولی در این کد از 1 تا 5 استفاده شده.
کد صحیح:
for(int i=0; i<5; i++) cin >> a[i];
🔹 ۹. برنامه تشخیص عدد اول
int n, c = 0; cin >> n; for(int i=1; i<=n; i++) if(n % i == 0) c++; if(c == 2)
cout << "Prime";
else
cout << "Not Prime";

🔹 ۱۰. تفاوت = و == چیست؟
پاسخ:
= → انتساب مقدار
== → مقایسه دو مقدار
if(x == 5) // درست x = 5; // انتساب
🔹 ۱۱. فاکتوریل یک عدد با تابع
int fact(int n)
{ int f = 1;
for(int i=1; i<=n; i++) f *= i;
return f;
}

🔹 ۱۲. ورودی و خروجی در ++C
int x; cin >> x; cout << x;
📌 نکته امتحانی مهم
بیشترین نمره معمولاً از حلقه‌ها + آرایه + تابع + شرط می‌آید.



برنامه‌نویسی را از اینجا شروع کنید👇
@flowchart_algorithm
2