View previous topic :: View next topic |
Author |
Message |
reza_telecom بابا اينكاره
Joined: 10 Dec 2004 Posts: 108
|
Posted: Sat Dec 11, 2004 1:41 am Post subject: 1 تست از کارشناسی ناپیوسته(سراسری 81) |
|
|
2)در صورت اجرای برنامه زیر خروجی آن چیست؟
|
#include <stdio.h>
int main(){
int i,j;
long int sum=0;
for(j=0; j<10; ++j)
{ scanf ("%d",i);
sum+=i;
printf (" the sum of number:%d",sum);
}
} |
الف) برنامه دارای خطا است ولی حاصل 10 عدد نامشخص روی صفحه چاپ میشود.
ب)برنامه دارای خطای error بوده و اجرا نمیشود.
ج) 10 عدد از ورودی میگیرد و حاصل جمع آنها را به ترتیب چاپ میکند.
د) 10 بار مقدار sum را روی صفحه چاپ میکند. |
|
Back to top |
|
|
vahid بي تو هرگز
Joined: 26 Nov 2004 Posts: 3067 Location: Tehran
|
Posted: Sat Dec 11, 2004 8:01 pm Post subject: |
|
|
به اين ميگن سوال !
|
|
Back to top |
|
|
vahid بي تو هرگز
Joined: 26 Nov 2004 Posts: 3067 Location: Tehran
|
Posted: Sat Dec 11, 2004 8:04 pm Post subject: |
|
|
رضا تا حالا نديدم از دكمه ارسال پاسخ استفاده كني ! |
|
Back to top |
|
|
arash مدير بخش سي
Joined: 27 Nov 2004 Posts: 1232 Location: www.parsx.com
|
Posted: Sat Dec 11, 2004 8:58 pm Post subject: |
|
|
vahid wrote: | رضا تا حالا نديدم از دكمه ارسال پاسخ استفاده كني ! |
آقا رضا جان آقا وحید منظورشون این هست که گاهی وقتا به بقیه سوالها هم جواب بدی .
یادآوری :
می دانید که حلقه بالا 10 بار اجرا می شود وبه جای این دستورات می توان از دستورات زیر استفاده کرد زیرا این سری دستورات با هم کاملا یکسان هستند .
|
#include <stdio.h>
int main(){
int i,j;
long int sum=0;
for(j=1; j<=10; scanf ("%d",i) , sum+=i , printf("The sum of number:%d",sum) , j++);
} |
Last edited by arash on Sat Dec 11, 2004 9:01 pm; edited 2 times in total |
|
Back to top |
|
|
arash مدير بخش سي
Joined: 27 Nov 2004 Posts: 1232 Location: www.parsx.com
|
Posted: Sat Dec 11, 2004 8:59 pm Post subject: |
|
|
در مثال فوق I از نوع integer می باشد وعددی است که ما از ورودی می گیریم ، j نیز شمارده حلقه بوده و باعث می شود که حلقه for ده بار اجرا شود . و در نهایت sum که هر بار I را با مقدار قبلی sum جمع می کند ( مقدار اولیه sum صفر می باشد ) .
اولا ما ده عدد از ورودی می گیرم و دستور printf باعث می شود با هر بار اجرای حلقه مقدار sum چاپ شود . پس گزینه ج صحیح می باشد . |
|
Back to top |
|
|
vahid بي تو هرگز
Joined: 26 Nov 2004 Posts: 3067 Location: Tehran
|
Posted: Sat Dec 11, 2004 9:50 pm Post subject: |
|
|
اينجاست كه آرش توي كنكور منفي ميزنه !!!
آرش يك نمره منفي باقي دوستان نظري ندارند ؟ |
|
Back to top |
|
|
vahid بي تو هرگز
Joined: 26 Nov 2004 Posts: 3067 Location: Tehran
|
Posted: Sun Dec 12, 2004 5:40 pm Post subject: |
|
|
پس دوستان نظري ندارند . من اگه بودم گزينه الف رو انتخاب ميكردم... |
|
Back to top |
|
|
reza_telecom بابا اينكاره
Joined: 10 Dec 2004 Posts: 108
|
Posted: Sun Dec 12, 2004 7:18 pm Post subject: |
|
|
کاملا حق با آقا وحید است . گزینه 1 درست است.
از آنجا که دریافت عدد توسط تابع scanf باید قبل از متغیر عددی از علامت & بهره برد لذا دستور scanf سبب بروز خطا میشود. ولی برنامه اجرا میشود ( خطای نحوی ندارد) با چرخش حلقه for به تعداد 10 بار حاصل جمع 10عدد نامشخص در متغیر sum ذخیره شده و در هر مرحله چرخش چاپ را خواهیم داشت زیرا printf در حلقه قرار دارد.
با تشکر reza_telecom و به امید موفقیت امتحان آمار برای وحید. |
|
Back to top |
|
|
vahid بي تو هرگز
Joined: 26 Nov 2004 Posts: 3067 Location: Tehran
|
Posted: Sun Dec 12, 2004 7:59 pm Post subject: |
|
|
البته يه مورد ديگه هم برنامه بالا خطا داره !
برنامه return نداره .
كه نبود return در توابعي كه قبل از انها از void استفاده نشده سبب بروز يك warning ميشود كه البته برنامه كامپايل هم ميشه ... |
|
Back to top |
|
|
arash مدير بخش سي
Joined: 27 Nov 2004 Posts: 1232 Location: www.parsx.com
|
Posted: Mon Dec 13, 2004 5:01 am Post subject: vay |
|
|
خوب پس اگه دقیق بخواهیم محاسبه کنیم گزینه چندم می شه ؟
به نظر همه همون گزینه الف شد دیگه نه ؟؟؟ |
|
Back to top |
|
|
|