نمونه سوالات برنامه نویسی دانشگاه امیرکبیر
1 – ( 12 نمره ) پاسخ سوالات تستي را در محل معين شده در كنار هر گزينه با خودكار يا مداد علامت بزنيد.
نمره منفي ندارد. هر سوال تستي 2 امتياز دارد.
1– در بين حافظه هاي زير ، كدام يك پايدار (permanent) مي باشد؟
RAM
buffer
register
hard disk
2– اشتراك زماني (time sharing) در سيستم عامل چيست ؟
به هر برنامه مدت كوتاهي وقت كامپيوتر اختصاص داده مي شود.
برنامه ها به نوبت و يكي پس از پايان ديگري خوانده و اجرا مي شوند.
ايجاد تعادل مناسب بين پردازش دهنده و ورودي – خروجي ، كه موجب مي شود زمان بيكاري پردازنده تقليل يابد.
هنگامي كه عمليات ورودي يا خروجي كه وقت گير است براي يك برنامه در حال انجام است، وقت پردازنده در اختيار برنامه ديگر قرار مي گيرد.
3– كدام گزينه نادرست است؟
كامپايلر كل برنامه را ترجمه و اجرا مي كند.
مفسر برنامه را خط به خط ترجمه و اجرا مي كند.
كامپايلر خطاهاي نحوي را تشخيص داده و اعلام مي كند.
مفسر هم خطاهاي نحوي و هم خطاهاي اجرايي را تشخيص داده، اعلام مي كند.
4– چه نوع خطايي هيچگاه توسط سيستم به كاربر اعلام نمي شود.
پيوندي (link error)
نحوي (syntax error)
منطقي (logical error)
اجرايي (execution error)
5– حاصل اجراي تكه برنامه زير چيست ؟
int a=0;
for( ; a; )
a++;
printf ( “%d”, a );
چاپ مقدار: 0
چاپ مقدار: 1
خطاي اجرايي اعلام مي شود.
اجراي برنامه در حلقه نامتناهي مي افتد.
6– در قطعه برنامه زير، خروجي چيست؟
int i = –1, j = 0, k = -2, m = 2, n ;
n = i++ && j++ && ++k || m++;
printf ( “i: %d j:%d k:%d m:%d n:%d”, i, j, k, m, n );
i: –1 j:0 k: –1 m:2 n:1
i: 0 j:1 k: –2 m:3 n:1
i: 0 j:1 k: –1 m:3 n:1
i: –1 j:1 k: –1 m:2 n:0
2 – ( 18 نمره )
1– ( 5 نمره ) نتيجه دستورات چاپ زير چيست؟
خروجي : | int i=1,a=0, b=0, c; c= i<=5 && (a = b = 100)? (i==2)+3 : 0; printf(“%d %d %d\n”, a, b, c); if ((c = 100) || (a=++b)) printf(“%d %d %d\n” , a , b, c); printf(“\nABC\r**%#7.4g**%.2g**”, 12.998, 10.98); printf(“%d”,’B’<’A’); |
2– ( 7 نمره ) دستور switch زير را با استفاده از دستورات شرطي تودرتو بازنويسي کنيد.
switch ( x++ ) { default: printf(“+++\n”); case 1: printf(“*\n”); break; case 2: case 3: printf(“***\n”); case 5: case 6: printf(“******\n”); break; case 10: printf(“**********\n”); } |
3– ( 6 نمره ) خروجي برنامه زير چيست؟
خروجي : | #include <stdio.h> int i=10; void func(int x) { static int k=2; i+=x; printf(“%5d%5d\n”, k, i); k*=3; } main() { int a=1, b=2, c=3, i=5; { float b=3; int c; a *=c = b/4; printf(“%5d%5.1f%5d\n”, a, b, c); } printf(“%5d%5d%5d\n”, a, b, c); func(3); printf(“%5d\n”, i++); func(5); } |
3 – ( 15 نمره )
الف) ( 8 نمره ) تابعي بنويسيد كه عدد صحيح n ( n فرد است ) و عدد اعشاري x را به عنوان پارامتر دريافت کند و مجموع زير را بدست آورده، به محل فراخواني بازگرداند.
ب) ( 7 نمره ) برنامهاي بنويسيد كه هربار عدد صحيح n ( n فرد است ) و عدد اعشاري x را از ورودي بخواند و با استفاده از تابع فوق (مرحله الف)، حاصل مجموعه را دريافت نموده، چاپ كند. اين كار تا زماني ادامه يابد كه مقدار n خوانده شده، غير منفي مي باشد.
4 – ( 8 نمره ) برنامه اي بنويسيد كه يک عدد صحيح را از ورودي دريافت کند، و پس از حذف ارقام فرد آن، عدد جديد را توليد و چاپ كند. درصورتي كه همه ارقام عدد حذف شد، پيغام “All digits were deleted” را چاپ كند.
مثال: عدد دريافت شده حاصل چاپ
238 28
6194 64
125 2
462 462
175 All digits were deleted
5 – ( 7 نمره ) برنامه ای بنويسيد که بصورت محاوره ای، هر بار شعاع يک دايره به مرکز مبداء مختصات را از ورودی بخواند، و تعداد نقاطی از دايره اي به مرکز مختصات و با شعاع r را، كه در ربع اول دايره واقع بوده (اعم از روي دايره، داخل دايره و محور مختصات) و داراي مختصات صحيح مي باشند، پيدا نموده، با پيام مناسب چاپ کند. اين عمل تا زمانی ادامه يابد که شعاع خوانده شده مثبت می باشد.