ايران ويج

نسخه‌ی کامل: چند سوال C++
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام دوستان
چنتا سوال داشتم
1.متغیر k چند بایت فضا حافظه را اشغال می کند
کد:
union {
    int i;
    double a,b;
    long c;
} k;
k مجموع اندازه ی اون متغیرا می شه؟یا اندازه ی بزرگترین متغیر؟
2.خروجی تکه برنامه زیر چیست؟
کد:
int i=3;
switch(i&2) {
    case 1 : cout << "A";
    case 2 : cout << "B";
    default : cout << "C";
}

3.پس از اجرای دستورات زیر a[0] و a[1] چند است؟
کد:
Union {
    short int k; int i ; char a[10] ;} t; t.k=12

دوستان اینا تست بودن.لطفا جواب با کمی توضیح دهید
با تشکــــــــــــــــHeartـــــــــــــــــــــر
اول از همه بگم این سوالاتت باجال بودن؛ برا تست چه درسیه و چه کتابه؟
نکات اموزن‌ده ای داره؛

۱-
union در واقع اندازش برابر با بزگترین نوع هست!
به نقل از کتاب جعفر نژاد:
طول یک یونیو به اندازه‌ی مجموع طول عناصر آن نیست؛ بلکه به اندازه طول عنصری است که بیشترین طول را دارد؛

و دلیلاشو چنین عنوان کرده:
زیرا در واقع یونیون ساختمانی است که ادرس شروع کلیه عناصر ان از یک نقطه است

پس با این اوصاف چون طول double هست ۶۴ بیت؛ پ از همه بزگتر؛ در نتیجه طول k میشه 64 بیت یا ۸ بایت

۲ -
& عملگر بیتی هست! یعنی and منطقی
در واقع داره به این روش میگن ماسک کردن؛
داره اینکا رو میکنه:

۳ به باینری میشه : ۱۱
۲ به باینری میشه ۱۰
حالا

11
10 &
-------
10

۱۰ باینری میشه ۲ ؛
درنتیجه جواب میشه ۲
و قانونا باید خط زیر اجرا بش:
کد php:
case cout << "B"

اما یبینیم که در خروجی BC چاپ میشه!!!
که اینو خودم هم در نگاه اول اشتباه کرده بودم!‌این یه نکته داره!
در عبارت های switch/case باید برای هر case یک break گذاشته! چون در غیر اینصوریت تمام شرط‌های بعد هم درست فرض میشن!!!!!!

3 -
سوال سوم هم:
بستگی به درکت از union + آرایه داره!‌
من نوشته بودم که:
زیرا در واقع یونیون ساختمانی است که ادرس شروع کلیه عناصر ان از یک نقطه است
خب پس k و i دارن از یه خونه شروع میشن!!
آرایه چیه؟ یعنی خونه‌های پشت سر!!!
پس نتیجه میگیریم که شروع آرایه هم باید با k و i برابر باشه!!!
حالا اولین خونه‌ی a چیه؟ خب معلومه :
کد php:
a[0

حالا من توی خونه‌ی k عدد ۱۲ رو ریختم!‌ اما a از نوع char هست!‌ یعنی فرض میکنه کد هگز معادل کاراکترم داخل این خونه هست!!!
پس یعنی:
کد php:
a[0] = 12H 
سوال:
۱۲ هگز کد چیه؟!
جواب:
اینتر!!!!!! یا همون (n\)

در نتیجه اینتر چاپ میکنه!!

حالا توی
کد php:
a[1
چیه؟

هیچی! خالیه! Biggrin
با سلام
دستت درد نکته خیلی خوب توضیح دادی
می تونی سوالای سیستم عال هم جواب بدی؟http://www.iranled.com/forum/thread-26317-lastpost.html
ممنون می شم
با تشکــــــــــــــــــــــــر
سوالای تست برای کدوم کتابه؟

سیستم عامل رو دیدم؛ بلد نیستم؛
(۱۳-تير-۱۳۹۲, ۲۰:۳۸:۲۸)babyy نوشته است: [ -> ]سوالای تست برای کدوم کتابه؟
با سلام و تشکر
کتابشو نمی دونم
از طرف دانشگاه اسممو برای مسابقات علمی کاربردی دوره ی کاردانی نوشتن هنوز چند روز پیش خبر دار شدمAngry17 هم امتحانه اینا هم نمونه سوال سال 86 بودن
این دو درسو ترم اول خوندم الان یادم رفتنWhistleوقتم ندارم بشینم این کتابای بزرگو بخونمAmazeمجبورم همینطور ...
اگه میتونید و امکانش هست + نویسند‌ه سوالات مشکلی نداره

این سوالات رو اسکن کنید و بزارید اینجا؛ نکات خوبی توش هست برای آموزش
(۱۳-تير-۱۳۹۲, ۲۱:۰۶:۱۸)babyy نوشته است: [ -> ]اگه میتونید و امکانش هست + نویسند‌ه سوالات مشکلی نداره

این سوالات رو اسکن کنید و بزارید اینجا؛ نکات خوبی توش هست برای آموزش
باشه دوست عزیز ولی تا 17 همین ماه که امتحان دارم وقت نمی کنم.
دعا کنید قبول بشم