ParsX.com
پذیرش پروژه از دانشجویی ... تا سازمانی 09376225339
 
   ProfileProfile   Log in to check your private messagesLog in to check your private messages  |  FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups Log inLog in   RegisterRegister 

تست کارشناسی ناپیوسته (سراسری 82)

 
Post new topic   Reply to topic    ParsX.com Forum Index -> C/C++ Programming
View previous topic :: View next topic  
Author Message
reza_telecom
بابا اينكاره


Joined: 10 Dec 2004
Posts: 108

PostPosted: Fri Dec 10, 2004 6:14 pm    Post subject: تست کارشناسی ناپیوسته (سراسری 82) Reply with quote

1) با اجرای قطعه برنامه زیر کدام مورد چاپ می شود؟
الف) 012
ب ) 121
ج) 123
د) 1201
قطعه برنامه :
for(i=0;i<3;++i)
for(j=i;j>0;--j)
printf("%d",j);
Back to top
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 3067
Location: Tehran

PostPosted: Fri Dec 10, 2004 8:16 pm    Post subject: Reply with quote

سوال خوبيه . منتهي من كدهاش رو درست كردم
برا اينكه از اين به بعد كدها رو درست بتوني نشون بدي كدها رو بنويس . بعد با ماوس انتخابشون كن و بعد دكمه code ‌رو بزن .
بعد هم اون تيك Disable BBCode in this post ‌رو تيك نزار .
Back to top
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 3067
Location: Tehran

PostPosted: Fri Dec 10, 2004 9:33 pm    Post subject: Reply with quote

فكر كنم گزينه دوم درست باشه ؟ Idea
Back to top
arash
مدير بخش سي
مدير بخش سي


Joined: 27 Nov 2004
Posts: 1232
Location: www.parsx.com

PostPosted: Fri Dec 10, 2004 9:37 pm    Post subject: Reply with quote

یادآوری Idea :
برنامه فوق معادل دستور زیر می باشد :

For (i=1;i<=2;i++)
{

   for(j=i;j>=1;j--)
      {
       printf("%d",j);
       }

}
Back to top
arash
مدير بخش سي
مدير بخش سي


Joined: 27 Nov 2004
Posts: 1232
Location: www.parsx.com

PostPosted: Fri Dec 10, 2004 9:38 pm    Post subject: Reply with quote

جواب گزینه ب
مثال بالا را به سادگی با سه مرحله تحلیل می توان حل کرد . سه مرحله به ترتیب عبارتند از :
1) اولین حلقه که i را از 0 تا 2 شمارش می کند .
2) دومین حلقه که از i به صورت معکوس تا 1 می شمارد .
3) اگر j مقداری داشته باشد آنرا چاپ می کند .
برای اولین بار i عدد 0 را می گیرد و j نیز 0 می شود ولی چون j باید یک عدد بزرگتر از صفر باشد تا حلقه اجرا شود پس دستور printf("%d%,j); اجرانخواهد شد .
سپس i=1 باعث می شود تا j نیز مساوی 1 شده وحلقه پس از یک بار اجرا عدد 1 را چاپ می کند .
مرتبه بعد i=2 خواهد بود j نیز همین طور و سپس حلقه j نیز دوبار اجرا شده اولین بار که مقدار j=2 بوده ودفعه بعد نیز از j یک واحد کم می شود وعدد 1 چاپ می شود .
در مرحله بعد چون i=3 از 3 کوچکتر نمی باشد پس حلقه i و در نتیچه حلقه j اجرا نمی شود .
Back to top
reza_telecom
بابا اينكاره


Joined: 10 Dec 2004
Posts: 108

PostPosted: Sat Dec 11, 2004 12:38 am    Post subject: Reply with quote

کاملا درست است . گزینه 2 درست است از آرش متشکرم.
Back to top
Display posts from previous:   
Post new topic   Reply to topic    ParsX.com Forum Index -> C/C++ Programming All times are GMT + 3.5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum