پاسخ فصل چهارم
# 21
print(sum(range(1,101)))
# 22
for i in range(2,51,2): print(i)
# 23
n = int(input("عدد: "))
fact=1
for i in range(1,n+1): fact*=i
print(fact)
# 24
for i in range(1,11):
for j in range(1,11):
print(i*j,end="\t")
print()
# 25
s = input("رشته: ")
vowels = "aeiouAEIOU"
print(sum(1 for ch in s if ch in vowels))
# 26
n = input("عدد: ")
print(sum(int(d) for d in n))
# 27
nums = [float(input("عدد: ")) for _ in range(10)]
print(sum(nums)/len(nums))
# 28
n = int(input("تعداد: "))
a,b=0,1
for _ in range(n):
print(a,end=" ")
a,b=b,a+b
# 29
while True:
pwd = input("رمز: ")
if pwd=="1234":
print("درست")
break
# 30
rows = int(input("تعداد سطر: "))
for i in range(1,rows+1):
print("*"*i)
برنامهنویسی را از اینجا شروع کنید👇
@flowchart_algorithm
# 21
print(sum(range(1,101)))
# 22
for i in range(2,51,2): print(i)
# 23
n = int(input("عدد: "))
fact=1
for i in range(1,n+1): fact*=i
print(fact)
# 24
for i in range(1,11):
for j in range(1,11):
print(i*j,end="\t")
print()
# 25
s = input("رشته: ")
vowels = "aeiouAEIOU"
print(sum(1 for ch in s if ch in vowels))
# 26
n = input("عدد: ")
print(sum(int(d) for d in n))
# 27
nums = [float(input("عدد: ")) for _ in range(10)]
print(sum(nums)/len(nums))
# 28
n = int(input("تعداد: "))
a,b=0,1
for _ in range(n):
print(a,end=" ")
a,b=b,a+b
# 29
while True:
pwd = input("رمز: ")
if pwd=="1234":
print("درست")
break
# 30
rows = int(input("تعداد سطر: "))
for i in range(1,rows+1):
print("*"*i)
برنامهنویسی را از اینجا شروع کنید👇
@flowchart_algorithm
پاسخ فصل پنجم
# 31
lst = [int(input("عدد: ")) for _ in range(5)]
print(lst)
# 32
print("max:", max(lst), "min:", min(lst))
# 33
print(sorted(lst))
# 34
print(sum(lst))
# 35
x = int(input("جستجو: "))
print("وجود دارد" if x in lst else "نیست")
# 36
names = ["علی","رضا","مریم"]
search = input("نام: ")
print("یافت شد" if search in names else "نیست")
# 37
print([n for n in lst if n%2==0])
# 38
print(sum(lst)/len(lst))
# 39
lst2 = [1,2,3]
print(lst+lst2)
# 40
days = ("شنبه","یکشنبه","دوشنبه","سهشنبه","چهارشنبه","پنجشنبه","جمعه")
print(days)
برنامهنویسی را از اینجا شروع کنید👇
@flowchart_algorithm
# 31
lst = [int(input("عدد: ")) for _ in range(5)]
print(lst)
# 32
print("max:", max(lst), "min:", min(lst))
# 33
print(sorted(lst))
# 34
print(sum(lst))
# 35
x = int(input("جستجو: "))
print("وجود دارد" if x in lst else "نیست")
# 36
names = ["علی","رضا","مریم"]
search = input("نام: ")
print("یافت شد" if search in names else "نیست")
# 37
print([n for n in lst if n%2==0])
# 38
print(sum(lst)/len(lst))
# 39
lst2 = [1,2,3]
print(lst+lst2)
# 40
days = ("شنبه","یکشنبه","دوشنبه","سهشنبه","چهارشنبه","پنجشنبه","جمعه")
print(days)
برنامهنویسی را از اینجا شروع کنید👇
@flowchart_algorithm
پاسخ فصل ششم
# 41
grades = {"علی":15,"رضا":18,"مریم":12}
print(grades)
# 42
name = input("نام: ")
print(grades.get(name,"یافت نشد"))
# 43
print(sum(grades.values())/len(grades))
# 44
products = {"کتاب":100,"خودکار":5}
item = input("محصول: ")
print(products.get(item,"یافت نشد"))
# 45
nums = [1,2,2,3,4,4]
print(set(nums))
# 46
a={1,2,3}; b={3,4,5}
print(a|b)
# 47
print(a&b)
# 48
words = {"python","java","c++"}
w = input("کلمه: ")
print("وجود دارد" if w in words else "نیست")
# 49
capitals = {"ایران":"تهران","فرانسه":"پاریس"}
country = input("کشور: ")
print(capitals.get(country,"یافت نشد"))
# 50
nums = {10,20,5,7}
print(max(nums))
برنامهنویسی را از اینجا شروع کنید👇
@flowchart_algorithm
# 41
grades = {"علی":15,"رضا":18,"مریم":12}
print(grades)
# 42
name = input("نام: ")
print(grades.get(name,"یافت نشد"))
# 43
print(sum(grades.values())/len(grades))
# 44
products = {"کتاب":100,"خودکار":5}
item = input("محصول: ")
print(products.get(item,"یافت نشد"))
# 45
nums = [1,2,2,3,4,4]
print(set(nums))
# 46
a={1,2,3}; b={3,4,5}
print(a|b)
# 47
print(a&b)
# 48
words = {"python","java","c++"}
w = input("کلمه: ")
print("وجود دارد" if w in words else "نیست")
# 49
capitals = {"ایران":"تهران","فرانسه":"پاریس"}
country = input("کشور: ")
print(capitals.get(country,"یافت نشد"))
# 50
nums = {10,20,5,7}
print(max(nums))
برنامهنویسی را از اینجا شروع کنید👇
@flowchart_algorithm
🙏2
دانلود کتاب آموزش پایتون
قالب فایل : PDF
زبان : فارسی
ترجمه و تالیف : سعید خالقی، علیرضا حق نیا
برنامهنویسی را از اینجا شروع کنید👇
@flowchart_algorithm
قالب فایل : PDF
زبان : فارسی
ترجمه و تالیف : سعید خالقی، علیرضا حق نیا
برنامهنویسی را از اینجا شروع کنید👇
@flowchart_algorithm
🔥2
📖 جزوه ای خلاصه
برای مفاهیم اولیه الگوریتم نویسی
و فلوچارت مناسب برای کسانی که اطلاعاتی از برنامه نویسی
ندارند
برنامهنویسی را از اینجا شروع کنید👇
@flowchart_algorithm
برای مفاهیم اولیه الگوریتم نویسی
و فلوچارت مناسب برای کسانی که اطلاعاتی از برنامه نویسی
ندارند
برنامهنویسی را از اینجا شروع کنید👇
@flowchart_algorithm
❤2
مهارت ها و زبان های برنامه نویسی مورد نیاز هر شغل
برنامهنویسی را از اینجا شروع کنید👇
@flowchart_algorithm
برنامهنویسی را از اینجا شروع کنید👇
@flowchart_algorithm
👍3
💻 بهترین سایتها برای تمرین برنامهنویسی!
میخوای برنامهنویسیت قویتر شه؟ این سایتها بهترین جا برای تمرین و رقابتن 👇
🔥 LeetCode – تمرین برای مصاحبههای برنامهنویسی
⚡️ HackerRank – چالش و رقابت با بقیه برنامهنویسها
🏆 Codeforces – محل اصلی مسابقات الگوریتمی
🎯 Codewars – حل معماهای کدنویسی با سبک بازی
🤖 Exercism – تمرین با راهنمایی مربی و فیدبک
🌈 TopCoder – رقابتهای واقعی با جایزه
🍳 CodeChef – سوالهای متنوع از سطح مبتدی تا حرفهای
⚔️ AtCoder – رقابتهای دقیق و زماندار ژاپنی
🔥 FreeCodeCamp – یادگیری با تمرین و پروژههای واقعی
برنامهنویسی را از اینجا شروع کنید👇
@flowchart_algorithm
میخوای برنامهنویسیت قویتر شه؟ این سایتها بهترین جا برای تمرین و رقابتن 👇
🔥 LeetCode – تمرین برای مصاحبههای برنامهنویسی
⚡️ HackerRank – چالش و رقابت با بقیه برنامهنویسها
🏆 Codeforces – محل اصلی مسابقات الگوریتمی
🎯 Codewars – حل معماهای کدنویسی با سبک بازی
🤖 Exercism – تمرین با راهنمایی مربی و فیدبک
🌈 TopCoder – رقابتهای واقعی با جایزه
🍳 CodeChef – سوالهای متنوع از سطح مبتدی تا حرفهای
⚔️ AtCoder – رقابتهای دقیق و زماندار ژاپنی
🔥 FreeCodeCamp – یادگیری با تمرین و پروژههای واقعی
برنامهنویسی را از اینجا شروع کنید👇
@flowchart_algorithm
❓ چه کاربردهای عملی برای زبان برنامه نویسی C# وجود دارد
زبان برنامهنویسی C# کاربردهای عملی متنوعی دارد که در زیر به برخی از مهمترین آنها اشاره میشود:
✏️ کاربردهای عملی C#
📚 1. توسعه برنامههای ویندوز
⦁ C# بهطور گستردهای برای توسعه برنامههای دسکتاپ ویندوز استفاده میشود. مایکروسافت از این زبان برای ساخت بسیاری از نرمافزارهای خود استفاده کرده است
⦁ نرمافزارهای مشهور: نرمافزارهای مانند Paint و Visual Studio از C# استفاده کردهاند.
📚 2. توسعه برنامههای وب
⦁ ASP.NET: با استفاده از فریمورک ASP.NET میتوان وبسایتها و اپلیکیشنهای وب را توسعه داد. این فریمورک به توسعهدهندگان امکان میدهد تا وبسایتهای پویا و قدرتمند ایجاد کنند
⦁ تکنولوژیهای مدرن: فریمورکهای مانند ASP.NET Razor Pages و Blazor برای ساخت اپلیکیشنهای تکصفحهای (Single-page application) استفاده میشوند.
📚 3. توسعه برنامههای موبایل
⦁ Xamarin: با استفاده از Xamarin میتوان برنامههای موبایل برای سیستمعاملهای Android و iOS
را توسعه داد. این تکنولوژی امکان cross-platform را فراهم میکند
⦁ Xamarin.Forms: این تکنولوژی به توسعهدهندگان امکان میدهد تا یک بار کد بنویسند و خروجیهای Android و iOS
را دریافت کنند.
📚 4. توسعه بازی
⦁ موتور Unity: C# بهطور یکپارچه با موتور بازی Unity ادغام شده است. این موتور یکی از محبوبترین موتورهای بازی امروزی است و برای ساخت بازیهای ویدیویی استفاده میشود.
⦁ بازیهای AR/VR: C# در توسعه بازیهای واقعیت مجازی و واقعیت افزوده نیز کاربرد دارد.
📚 5. هوش مصنوعی و یادگیری ماشین
⦁ ML.NET: C# میتواند برای کارهای هوش مصنوعی و یادگیری ماشین با استفاده از ML.NET استفاده شود. این فریمورک به توسعهدهندگان امکان میدهد تا مدلهای یادگیری ماشین را در برنامههای خود ادغام کنند.
📚 6. اینترنت اشیا (IoT)
⦁ C# میتواند برای توسعه پروژههای مرتبط با اینترنت اشیا استفاده شود. این زبان به توسعهدهندگان امکان میدهد تا دستگاههای مختلف را به یکدیگر متصل کنند و دادهها را پردازش کنند.
📚 7. سرویسها و API
⦁ WCF و API: C# میتواند برای توسعه سرویسها و API استفاده شود. این زبان به توسعهدهندگان امکان میدهد تا سرویسهای وب را ایجاد کنند و با سایر برنامهها...
#معرفی_منابع_آموزشی
@flowchart_algorithm
❤1🔥1
دانلود ویژوال استودیو 2026 + کد فعالسازی
https://www.sourcebaran.com/visual-studio-2026.html
#معرفی_منابع_آموزشی
برنامهنویسی را از اینجا شروع کنید👇
@flowchart_algorithm
https://www.sourcebaran.com/visual-studio-2026.html
#معرفی_منابع_آموزشی
برنامهنویسی را از اینجا شروع کنید👇
@flowchart_algorithm
🔥2
سؤالهای نمونه مناسب پایان ترم برای مبانی برنامهنویسی
به زبان ++C با پاسخ
⦁ نوشته زیر چه خروجیای دارد؟
#include <iostream>
using namespace std;
int main() {
cout << 3 + 4 * 5 << endl;
return 0;
}
⦁ پاسخ: 23
⦁ تفاوت بین متغیر و ثابت را با یک مثال بنویسید.
⦁ پاسخ: متغیر مقداری دارد که میتواند تغییر کند (مثلاً int a = 5؛ a = 7؛)، ثابت مقداری است که پس از مقداردهی تغییر نمیکند (مثلاً const int b = 10؛).
⦁ عبارت شرطی زیر چه نتیجهای دارد؟
#include <iostream>
using namespace std;
int main() {
int x = 6;
cout << (x > 4 ? 1 : 0) << endl;
return 0;
}
⦁ پاسخ: 1
⦁ کلمه کلیدی مرتبط با کلاس در C++ چیست و چرا استفاده میشود؟
⦁ پاسخ: کلاس (class)؛ برای تعریف نوع دادهای با ویژگیها (اعضای data) و رفتارها (اعضای تابع) استفاده میشود.
⦁ تابعی بنویسید که دو عدد صحیح را گرفته و بزرگترین آنها را برگرداند. نام تابع max_of_two باشد.
⦁ پاسخ نمونه (حداقل خروجی): int max_of_two(int a, int b) { return (a > b) ? a : b; }
⦁ یک آرایه با اندازه 5 با مقادیر 1 تا 5 تعریف کنید و مقدار اولین عنصر را در چاپ کنید.
⦁ پاسخ:
int arr = {1,2,3,4,5};
std::cout << arr[0] << std::endl;
// خروجی 1
⦁ رشته (string) در C++ چیست و چگونه یک رشته بنویسیم و چاپ کنیم؟
⦁ پاسخ: کلاس string در کتابخانه استاندارد است. نمونه: #include <string> ... std::string s = "سلام"; std::cout << s << std::endl;
⦁ تفاوت بین حلقه for و while را با مثال کوتاه توضیح دهید.
⦁ پاسخ: for زمانی مناسب است که تعداد تکرار مشخص است (برای نمونه برای i = 0; i < n; ++i). while زمانی مناسب است که شمارنده یا شرط تکرار به صورت پویا تعیین میشود (مثلاً while (condition)).
⦁ مفهوم ایجاد یک کلاس ساده به نام Point با دو عضو x و y و یک سازنده ( constructor ) بنویسید.
⦁ پاسخ نمونه:
class Point {
public:
int x, y;
Point(int x_, int y_) : x(x_), y(y_) {}
};
⦁ یک تابع با بازگشت مقدار بنویسید که مقدار دو عدد را جمع کند و نتیجه را چاپ نکند بلکه برگرداند.
⦁ پاسخ نمونه: int sum(int a, int b) { return a + b; }
نکات کلیدی برای آمادهسازی پایان ترم
⦁ الگوریتمهای پایه: شرطیها، حلقهها، توابع، و سازههای دادهای پایه (آرایهها و استراکچرز/کلاسها) را با مثالهای کوتاه تمرین کنید.
⦁ مفهوم وراثت، چندریختی (polymorphism) و کلاسها و توابع عضو را در سطح ابتدایی مرور کنید.
⦁ ورودی و خروجی: کار با cin و cout، مدیریت رشتهها و کار با کاراکترها را تمرین کنید.
⦁ نکتههای رایج در سوالات کلاسی: خروجی کدها با تغییر ترتیب اپراتورها یا استفاده از پیشزبانها (prefix) و پسزبانها (postfix) گاهی سوءتفاهم ایجاد میکند؛ حتماً با دقت اجرای پیشفرضهای اولیه را بررسی کنید.
برنامهنویسی را از اینجا شروع کنید👇
@flowchart_algorithm
به زبان ++C با پاسخ
⦁ نوشته زیر چه خروجیای دارد؟
#include <iostream>
using namespace std;
int main() {
cout << 3 + 4 * 5 << endl;
return 0;
}
⦁ پاسخ: 23
⦁ تفاوت بین متغیر و ثابت را با یک مثال بنویسید.
⦁ پاسخ: متغیر مقداری دارد که میتواند تغییر کند (مثلاً int a = 5؛ a = 7؛)، ثابت مقداری است که پس از مقداردهی تغییر نمیکند (مثلاً const int b = 10؛).
⦁ عبارت شرطی زیر چه نتیجهای دارد؟
#include <iostream>
using namespace std;
int main() {
int x = 6;
cout << (x > 4 ? 1 : 0) << endl;
return 0;
}
⦁ پاسخ: 1
⦁ کلمه کلیدی مرتبط با کلاس در C++ چیست و چرا استفاده میشود؟
⦁ پاسخ: کلاس (class)؛ برای تعریف نوع دادهای با ویژگیها (اعضای data) و رفتارها (اعضای تابع) استفاده میشود.
⦁ تابعی بنویسید که دو عدد صحیح را گرفته و بزرگترین آنها را برگرداند. نام تابع max_of_two باشد.
⦁ پاسخ نمونه (حداقل خروجی): int max_of_two(int a, int b) { return (a > b) ? a : b; }
⦁ یک آرایه با اندازه 5 با مقادیر 1 تا 5 تعریف کنید و مقدار اولین عنصر را در چاپ کنید.
⦁ پاسخ:
int arr = {1,2,3,4,5};
std::cout << arr[0] << std::endl;
// خروجی 1
⦁ رشته (string) در C++ چیست و چگونه یک رشته بنویسیم و چاپ کنیم؟
⦁ پاسخ: کلاس string در کتابخانه استاندارد است. نمونه: #include <string> ... std::string s = "سلام"; std::cout << s << std::endl;
⦁ تفاوت بین حلقه for و while را با مثال کوتاه توضیح دهید.
⦁ پاسخ: for زمانی مناسب است که تعداد تکرار مشخص است (برای نمونه برای i = 0; i < n; ++i). while زمانی مناسب است که شمارنده یا شرط تکرار به صورت پویا تعیین میشود (مثلاً while (condition)).
⦁ مفهوم ایجاد یک کلاس ساده به نام Point با دو عضو x و y و یک سازنده ( constructor ) بنویسید.
⦁ پاسخ نمونه:
class Point {
public:
int x, y;
Point(int x_, int y_) : x(x_), y(y_) {}
};
⦁ یک تابع با بازگشت مقدار بنویسید که مقدار دو عدد را جمع کند و نتیجه را چاپ نکند بلکه برگرداند.
⦁ پاسخ نمونه: int sum(int a, int b) { return a + b; }
نکات کلیدی برای آمادهسازی پایان ترم
⦁ الگوریتمهای پایه: شرطیها، حلقهها، توابع، و سازههای دادهای پایه (آرایهها و استراکچرز/کلاسها) را با مثالهای کوتاه تمرین کنید.
⦁ مفهوم وراثت، چندریختی (polymorphism) و کلاسها و توابع عضو را در سطح ابتدایی مرور کنید.
⦁ ورودی و خروجی: کار با cin و cout، مدیریت رشتهها و کار با کاراکترها را تمرین کنید.
⦁ نکتههای رایج در سوالات کلاسی: خروجی کدها با تغییر ترتیب اپراتورها یا استفاده از پیشزبانها (prefix) و پسزبانها (postfix) گاهی سوءتفاهم ایجاد میکند؛ حتماً با دقت اجرای پیشفرضهای اولیه را بررسی کنید.
برنامهنویسی را از اینجا شروع کنید👇
@flowchart_algorithm
❤2
سوالات دشوارتر مبانی برنامهنویسی++C
(سطح متوسط: اشارهگرها، ارجاع، کلاسها، حافظه پویا و آرایهها)
سوالات با پاسخها
⦁ خروجی کد زیر چیست؟ (اشارهگر و افزایش)
#include <iostream>
int main() {
int x = 5;
int *p = &x;
(*p)++;
std::cout << x;
return 0;
}
⦁ پاسخ: 6 (اشارهگر p به x اشاره میکند؛ *p++ مقدار x را به 6 افزایش میدهد).[1]
⦁ تفاوت اشارهگر (pointer) و ارجاع (reference) را با مثال بنویسید.
⦁ پاسخ: اشارهگر آدرس ذخیره میکند و میتواند nullptr باشد
(int *p = &x;)؛ ارجاع
alias
متغیر است و همیشه معتبر
(int &r = x; r = 10;
x تغییر میکند)
ارجاع نمیتواند تغییر کند.
[2]
⦁ تابعی بنویسید که آرایه را با اشارهگر معکوس کند (reverse).
⦁ پاسخ نمونه:
void reverse(int *arr, int size) { for(int i=0; i<size/2; i++) std::swap(arr[i], arr[size-1-i]); }
[3]
⦁ کلاس Student با اعضای خصوصی name (string)، grade (int) و تابع عمومی setGrade بنویسید.
⦁ پاسخ نمونه:
class Student {
private:
std::string name;
int grade;
public:
void setGrade(int g) { grade = g; }
int getGrade() { return grade; }
};[4]
⦁ حافظه پویا: آرایه 5 تایی int با new تخصیص دهید، مقدار 10 پر کنید و با delete[] آزاد کنید.
⦁ پاسخ نمونه:
int *arr = new int;
for(int i=0; i<5; i++) arr[i]=10; delete[] arr;
[5][1]
⦁ خروجی:
int a=10, b=20; int &ref = a; ref = b; std::cout << a << " " << b;
⦁ پاسخ:
20 20 (ارجاع ref به a است؛ تغییر ref، a را تغییر میدهد اما b نه؛ منتها به ref، مقدار b را به a کپی میکند).[6]
⦁ تابعی با ارجاع که دو عدد را مبادله کند (swap by reference).
⦁ پاسخ نمونه:
void swap(int &x, int &y)
{ int temp = x; x = y; y = temp; }
[2]
⦁ اشارهگر به اشارهگر:
int x=5;
int *p=&x;
int **pp = &p;
**pp = 10;
خروجی *p؟
⦁ پاسخ: 10 (pp به p اشاره میکند؛ **pp مقدار x را 10 میکند).[1]
⦁ کلاس Rectangle با سازنده و تابع area (مساحت).
⦁ پاسخ نمونه:
class Rectangle {
private:
double width, height;
public:
Rectangle(double w, double h) : width(w), height(h) {}
double area() { return width * height; }
};[4]
⦁ با اشارهگر، عنصر میانی آرایه 5 تایی {1,2,3,4,5} را پیدا کنید.
⦁ پاسخ: int arr[]={1,2,3,4,5};
int *mid = arr + 2;
std::cout << *mid;
// 3[1]
نکات برای تمرین بیشتر
⦁ اشارهگرها و ارجاعها: همیشه چک کنید nullptr نباشد و حافظه را آزاد کنید تا memory leak جلوگیری شود.
⦁ کلاسها: private برای دادهها، public برای متدها؛ سازنده برای مقداردهی اولیه.
⦁ تست کنید: هر کد را در کامپایلر آنلاین مانند onlinegdb اجرا کنید و تغییرات را ببینید.
برنامهنویسی را از اینجا شروع کنید👇
@flowchart_algorithm
(سطح متوسط: اشارهگرها، ارجاع، کلاسها، حافظه پویا و آرایهها)
سوالات با پاسخها
⦁ خروجی کد زیر چیست؟ (اشارهگر و افزایش)
#include <iostream>
int main() {
int x = 5;
int *p = &x;
(*p)++;
std::cout << x;
return 0;
}
⦁ پاسخ: 6 (اشارهگر p به x اشاره میکند؛ *p++ مقدار x را به 6 افزایش میدهد).[1]
⦁ تفاوت اشارهگر (pointer) و ارجاع (reference) را با مثال بنویسید.
⦁ پاسخ: اشارهگر آدرس ذخیره میکند و میتواند nullptr باشد
(int *p = &x;)؛ ارجاع
alias
متغیر است و همیشه معتبر
(int &r = x; r = 10;
x تغییر میکند)
ارجاع نمیتواند تغییر کند.
[2]
⦁ تابعی بنویسید که آرایه را با اشارهگر معکوس کند (reverse).
⦁ پاسخ نمونه:
void reverse(int *arr, int size) { for(int i=0; i<size/2; i++) std::swap(arr[i], arr[size-1-i]); }
[3]
⦁ کلاس Student با اعضای خصوصی name (string)، grade (int) و تابع عمومی setGrade بنویسید.
⦁ پاسخ نمونه:
class Student {
private:
std::string name;
int grade;
public:
void setGrade(int g) { grade = g; }
int getGrade() { return grade; }
};[4]
⦁ حافظه پویا: آرایه 5 تایی int با new تخصیص دهید، مقدار 10 پر کنید و با delete[] آزاد کنید.
⦁ پاسخ نمونه:
int *arr = new int;
for(int i=0; i<5; i++) arr[i]=10; delete[] arr;
[5][1]
⦁ خروجی:
int a=10, b=20; int &ref = a; ref = b; std::cout << a << " " << b;
⦁ پاسخ:
20 20 (ارجاع ref به a است؛ تغییر ref، a را تغییر میدهد اما b نه؛ منتها به ref، مقدار b را به a کپی میکند).[6]
⦁ تابعی با ارجاع که دو عدد را مبادله کند (swap by reference).
⦁ پاسخ نمونه:
void swap(int &x, int &y)
{ int temp = x; x = y; y = temp; }
[2]
⦁ اشارهگر به اشارهگر:
int x=5;
int *p=&x;
int **pp = &p;
**pp = 10;
خروجی *p؟
⦁ پاسخ: 10 (pp به p اشاره میکند؛ **pp مقدار x را 10 میکند).[1]
⦁ کلاس Rectangle با سازنده و تابع area (مساحت).
⦁ پاسخ نمونه:
class Rectangle {
private:
double width, height;
public:
Rectangle(double w, double h) : width(w), height(h) {}
double area() { return width * height; }
};[4]
⦁ با اشارهگر، عنصر میانی آرایه 5 تایی {1,2,3,4,5} را پیدا کنید.
⦁ پاسخ: int arr[]={1,2,3,4,5};
int *mid = arr + 2;
std::cout << *mid;
// 3[1]
نکات برای تمرین بیشتر
⦁ اشارهگرها و ارجاعها: همیشه چک کنید nullptr نباشد و حافظه را آزاد کنید تا memory leak جلوگیری شود.
⦁ کلاسها: private برای دادهها، public برای متدها؛ سازنده برای مقداردهی اولیه.
⦁ تست کنید: هر کد را در کامپایلر آنلاین مانند onlinegdb اجرا کنید و تغییرات را ببینید.
برنامهنویسی را از اینجا شروع کنید👇
@flowchart_algorithm
❤4
20 نمونه سوال متوسط سطح پایان ترم مبانی برنامهنویسی با پاسخ به زبان پایتون ارائه میشود.
⦁ تشخیص نوع داده
سوال: کدام گزینه به درستی نوع داده خروجی expression زیر را نشان میدهد؟
x = 3.14
type(x)
گزینهها:
⦁ a) int
⦁ b) float
⦁ c) str
⦁ d) complex
پاسخ: b
⦁ عملگرهای شرطی
سوال: کدام عبارت شرطی منجر به اجرای بخش else میشود اگر x برابر با 5 باشد؟
if x > 10:
return 1
elif x == 5:
return 2
else:
return 3
گزینهها:
⦁ a) مقدار 1 برگردانده میشود
⦁ b) مقدار 2 برگردانده میشود
⦁ c) مقدار 3 برگردانده میشود
⦁ d) هیچکدام
پاسخ: b
⦁ حلقه while
سوال: خروجی کد زیر چیست؟
i = 0
while i < 3:
print(i)
i += 1
پاسخ: سه خط با 0، 1، 2 چاپ میشوند.
سوال: برای افزودن عدد 5 به انتهای لیست l از چه دستور استفاده میشود؟
l =[1][2][3]
گزینهها:
⦁ a) l.add(5)
⦁ b) l.append(5)
⦁ c) l.insert(3, 5)
⦁ d) both b و c
پاسخ: d (در حالت عادی append به انتهای لیست میبرد و insert نیز جایگاه 3 را با 5 درج میکند)
سوال: خروجی کد زیر چیست؟
d = {'a': 1, 'b': 2}
print(d['a'])
گزینهها:
⦁ a) 1
⦁ b) 'a'
⦁ c) KeyError
⦁ d) None
پاسخ: a
سوال: کدام گزینه تابعی را تعریف میکند که هیچ مقداری برنمیگرداند؟
⦁ a) def f(): return 0
⦁ b) def f(): pass
⦁ c) def f(x): return x
⦁ d) def f(): return None
پاسخ: b
سوال: نتیجه اجرای تابع زیر چیست؟
def f():
return 1, 2
a = f()
print(type(a))
گزینهها:
⦁ a) int
⦁ b) tuple
⦁ c) list
⦁ d) dict
پاسخ: b
سوال: خروجی کد زیر چیست؟
for i in range(1, 5):
print(i, end=' ')
گزینهها:
⦁ a) 1 2 3 4
⦁ b) 0 1 2 3 4
⦁ c) 1 2 3 4 5
⦁ d) خطا
پاسخ: a
سوال: رشته «Hello» را به صورت معکوس برمیگرداند کدام دستور؟
s = "Hello"
قدرت ترکیبی:
⦁ a) s[::-1]
⦁ b) reversed(s)
⦁ c) both a و b
⦁ d) هیچکدام
پاسخ: c
سوال: چگونه مقدار ورودی کاربر را به عدد صحیح تبدیل میکنیم؟
⦁ a) int(input())
⦁ b) str(input())
⦁ c) float(input())
⦁ d) input()
پاسخ: a
⦁ تابع با بازگردانی چندمقدار
سوال: خروجی تابع زیر چیست؟
def min_max(a):
return min(a), max(a)
print(min_max())[2][4][5]
گزینهها:
⦁ a) (2, 8)
⦁ b) 2
⦁ c) 8
⦁ d) خطا
پاسخ: a
⦁ لیست تفاضلی
سوال: برای فیلتر کردن عناصر لیست به طوری که فقط عدد زوج باقی بماند، کدام روش درست است؟
numbers =[3][4][6][1][2]
زوجها:
⦁ a) [n for n in numbers if n % 2 == 0]
⦁ b) filter(lambda x: x ...
numbers)
c) هر دو
d) هیچکدام
پاسخ: c
کلاسها و شیءگرایی پایه سوال: کد زیر یک کلاس پایه تعریف میکند. ورودیهای سازنده به چه صورت مقداردهی میشوند؟
class Point:
def init(self, x, y):
self.x = x
self.y = y
a) x و y به عنوان متغیرهای عضو تعریف میشوند
b) x و y به عنوان توابع عضو تعریف میشوند
c) فقط x تعریف میشود
d) خطا میدهد
پاسخ: a
استثناها سوال: برای هندلینگ خطا در بخش تقسیم با مخرج صفر از چه کدی استفاده میشود؟
a) try/except ZeroDivisionError
b) catch ZeroDivisionError
c) try/catch ZeroDivisionError
d) if m != 0
پاسخ: a
لیستهای همپیوسته سوال: مقایسه دو لیست با استفاده از عملگر equals در پایتون چگونه است؟
a) مقادیر اعضا را مقایسه میکند
b) فقط مبدأ حافظه را مقایسه میکند
c) هر دو لیست را به هم وصل میکند
d) هیچکدام
پاسخ: a
ماشهی شخصیتسازی رشتهای سوال: کد زیر چه خروجی میدهد؟
s = "abc123"
print(s.isalpha())
گزینهها:
a) True
b) False
c) خطا
d) None
پاسخ: b
کار با فایل سوال: کدام دستور برای خواندن تمام محتویات یک فایل باز شده به صورت متنی مناسب است؟
a) f.read()
b) f.write("text")
c) f.open()
d) open("file").read()
پاسخ: a
ترکیب دادهها سوال: نتیجه استفاده از zip روی دو لیست برابر است با؟
a =[1][2][3] b = ['a','b','c']
list(zip(a,b))
گزینهها:
a) [(1,'a'), (2,'b')]
b) [(1,'a'), (2,'b'), (3,'c')]
c) [(1,2,3), ('a','b','c')]
d) خطا
پاسخ: b
برای تعریف استثنای سفارشی چه چیزی لازم است؟
a) یک کلاس که از Exception ارثبری کند
b) تابعی با نام Exception
c) هیچ چیز
d) استفاده از assert
پاسخ: a
برای بهبود کارایی در جستوجوی مقدار در لیست، کدام رویکرد مناسب است؟
a) استفاده از لیست به صورت خام و حلقهزنی
b) استفاده از مجموعه (set) برای وجودداشتن مقدار
c) تبدیل لیست به دیکشنری و بررسی کلید
d) استفاده از تابع eval
پاسخ: b
@flowchart_algorithm
⦁ تشخیص نوع داده
سوال: کدام گزینه به درستی نوع داده خروجی expression زیر را نشان میدهد؟
x = 3.14
type(x)
گزینهها:
⦁ a) int
⦁ b) float
⦁ c) str
⦁ d) complex
پاسخ: b
⦁ عملگرهای شرطی
سوال: کدام عبارت شرطی منجر به اجرای بخش else میشود اگر x برابر با 5 باشد؟
if x > 10:
return 1
elif x == 5:
return 2
else:
return 3
گزینهها:
⦁ a) مقدار 1 برگردانده میشود
⦁ b) مقدار 2 برگردانده میشود
⦁ c) مقدار 3 برگردانده میشود
⦁ d) هیچکدام
پاسخ: b
⦁ حلقه while
سوال: خروجی کد زیر چیست؟
i = 0
while i < 3:
print(i)
i += 1
پاسخ: سه خط با 0، 1، 2 چاپ میشوند.
سوال: برای افزودن عدد 5 به انتهای لیست l از چه دستور استفاده میشود؟
l =[1][2][3]
گزینهها:
⦁ a) l.add(5)
⦁ b) l.append(5)
⦁ c) l.insert(3, 5)
⦁ d) both b و c
پاسخ: d (در حالت عادی append به انتهای لیست میبرد و insert نیز جایگاه 3 را با 5 درج میکند)
سوال: خروجی کد زیر چیست؟
d = {'a': 1, 'b': 2}
print(d['a'])
گزینهها:
⦁ a) 1
⦁ b) 'a'
⦁ c) KeyError
⦁ d) None
پاسخ: a
سوال: کدام گزینه تابعی را تعریف میکند که هیچ مقداری برنمیگرداند؟
⦁ a) def f(): return 0
⦁ b) def f(): pass
⦁ c) def f(x): return x
⦁ d) def f(): return None
پاسخ: b
سوال: نتیجه اجرای تابع زیر چیست؟
def f():
return 1, 2
a = f()
print(type(a))
گزینهها:
⦁ a) int
⦁ b) tuple
⦁ c) list
⦁ d) dict
پاسخ: b
سوال: خروجی کد زیر چیست؟
for i in range(1, 5):
print(i, end=' ')
گزینهها:
⦁ a) 1 2 3 4
⦁ b) 0 1 2 3 4
⦁ c) 1 2 3 4 5
⦁ d) خطا
پاسخ: a
سوال: رشته «Hello» را به صورت معکوس برمیگرداند کدام دستور؟
s = "Hello"
قدرت ترکیبی:
⦁ a) s[::-1]
⦁ b) reversed(s)
⦁ c) both a و b
⦁ d) هیچکدام
پاسخ: c
سوال: چگونه مقدار ورودی کاربر را به عدد صحیح تبدیل میکنیم؟
⦁ a) int(input())
⦁ b) str(input())
⦁ c) float(input())
⦁ d) input()
پاسخ: a
⦁ تابع با بازگردانی چندمقدار
سوال: خروجی تابع زیر چیست؟
def min_max(a):
return min(a), max(a)
print(min_max())[2][4][5]
گزینهها:
⦁ a) (2, 8)
⦁ b) 2
⦁ c) 8
⦁ d) خطا
پاسخ: a
⦁ لیست تفاضلی
سوال: برای فیلتر کردن عناصر لیست به طوری که فقط عدد زوج باقی بماند، کدام روش درست است؟
numbers =[3][4][6][1][2]
زوجها:
⦁ a) [n for n in numbers if n % 2 == 0]
⦁ b) filter(lambda x: x ...
numbers)
c) هر دو
d) هیچکدام
پاسخ: c
کلاسها و شیءگرایی پایه سوال: کد زیر یک کلاس پایه تعریف میکند. ورودیهای سازنده به چه صورت مقداردهی میشوند؟
class Point:
def init(self, x, y):
self.x = x
self.y = y
a) x و y به عنوان متغیرهای عضو تعریف میشوند
b) x و y به عنوان توابع عضو تعریف میشوند
c) فقط x تعریف میشود
d) خطا میدهد
پاسخ: a
استثناها سوال: برای هندلینگ خطا در بخش تقسیم با مخرج صفر از چه کدی استفاده میشود؟
a) try/except ZeroDivisionError
b) catch ZeroDivisionError
c) try/catch ZeroDivisionError
d) if m != 0
پاسخ: a
لیستهای همپیوسته سوال: مقایسه دو لیست با استفاده از عملگر equals در پایتون چگونه است؟
a) مقادیر اعضا را مقایسه میکند
b) فقط مبدأ حافظه را مقایسه میکند
c) هر دو لیست را به هم وصل میکند
d) هیچکدام
پاسخ: a
ماشهی شخصیتسازی رشتهای سوال: کد زیر چه خروجی میدهد؟
s = "abc123"
print(s.isalpha())
گزینهها:
a) True
b) False
c) خطا
d) None
پاسخ: b
کار با فایل سوال: کدام دستور برای خواندن تمام محتویات یک فایل باز شده به صورت متنی مناسب است؟
a) f.read()
b) f.write("text")
c) f.open()
d) open("file").read()
پاسخ: a
ترکیب دادهها سوال: نتیجه استفاده از zip روی دو لیست برابر است با؟
a =[1][2][3] b = ['a','b','c']
list(zip(a,b))
گزینهها:
a) [(1,'a'), (2,'b')]
b) [(1,'a'), (2,'b'), (3,'c')]
c) [(1,2,3), ('a','b','c')]
d) خطا
پاسخ: b
برای تعریف استثنای سفارشی چه چیزی لازم است؟
a) یک کلاس که از Exception ارثبری کند
b) تابعی با نام Exception
c) هیچ چیز
d) استفاده از assert
پاسخ: a
برای بهبود کارایی در جستوجوی مقدار در لیست، کدام رویکرد مناسب است؟
a) استفاده از لیست به صورت خام و حلقهزنی
b) استفاده از مجموعه (set) برای وجودداشتن مقدار
c) تبدیل لیست به دیکشنری و بررسی کلید
d) استفاده از تابع eval
پاسخ: b
@flowchart_algorithm
Studocu
Python LNGG 1003 Final Exam Solutions and Key Concepts
Think Twice Code Once The Islamic University of Gaza Engineering Faculty Department of Computer Engineering Fall 2017 LNGG 1003 Khaleel I.
دوستان عزیز با توجه به نزدیک شدن امتحانات پایان ترم، نمونه سوالات با چه زبان برنامه نویسی بیشتر گذاشته شود؟
Anonymous Poll
37%
زبان برنامه نویسی پایتون
34%
زبان برنامه نویسی ++C
17%
زبان برنامه نویسی C
7%
زبان برنامه نویسی جاوا
5%
زبان برنامه نویسی #C
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
⦁ تفاوت بین کلاس و ساختار (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
⦁ تفاوت بین 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
Codefinity
The 80 Top Java Interview Questions and Answers
An informative compilation of 50 essential Java interview questions covering themes like Basics and Syntax, OOP, Exception Handling, Core APIs, and Concurrency. Topics include Java fundamentals, object-oriented concepts, exception handling, Java APIs, and…
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
/پیشرفته ++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 چیست؟
⦁ گزینهها:
⦁ 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