รวมข้อสอบคอม (หลายๆที่)

สำหรับคนที่อยากลองฝีมือนะครับ ผมเอามาจาก สอวน. นะครับข้อนี้ อันนี้ง่ายที่สุดแล้วอยากให้ลองคิดเล่นๆครับ



หากทำงานตามขั้นตอนต่อไปนี้

1. รับเลขจำนวนเต็ม m และ n เป็น input

2. ให้เลขจำนวนเต็ม x มีค่าเป็น 0

3. ถ้า m เป็นเลขคี่ บวก x กับ n เก็บผลลัพธ์ไว้ที่ x

4. หาร m ด้วย 2 (ถ้ามีเศษน้อยกว่าหนึ่งปัดทิ้ง) เก็บผลลัพธ์ไว้ที่ m

5. คูณ n ด้วย 2 เก็บผลลัพธ์ที่ n

6. ถ้า m มากกว่า 0 กลับไปขั้นตอนที่ 3

7. รายงานค่า x เป็นผลลัพธ์



ความสัมพันธ์ระหว่าง m, n, x คือ



ก. m+n=x

ข. mn = x

ค. m = n+x

ง. 2m+n=x







อีกข้อนึงครับ อันนี้ง่ายกว่ามากๆ รับรองว่าทุกคนต้องทำได้แน่นอน

กำหนดให้ลำดับขั้นตอนของคำสั่งมีดังนี้

1. กำหนดให้ k = 999 i = 1 และ p = 0

2. ถ้า k มากกว่า i จะไปทำขั้นที่ 3 มิฉะนั้นจะไปทำขั้นที่ 5

3. กำหนดให้ i มีค่าเพิ่มขึ้น 2 เท่า จากเดิม และให้ p มีค่าเพิ่มขึ้นจากเดิม 5

4. ไปทำขั้นที่ 2

5. แสดงค่า p



หลังจบแล้ว p เป็นเท่าไร

ก. 45

ข. 50

ค. 512

ง. 1024





มีอีก 10 กว่าข้อ ถ้าคิดสองข้อนี้ได้แล้วจะนำข้อที่เหลือมาฝาก แต่ถ้ายังไม่มีใครคิดได้ก็เก็บไว้ก่อนนะครับ เมื่อยมือ =.=;


ความคิดเห็นที่ 1

attapon56
18 ก.ย. 2548 12:39
  1. อันนี้ข้อสอบโอลิมปิกรอบ 1 โดยส่วนตัวผมว่าง่ายกว่า สอวน. มากๆเลยแหละครับ แต่ทำไมมันหลายๆภาษาจัง ตอนนี้มีเวลาพิมพ์ให้ซักข้อแล้วกัน เอาข้อที่น่าคิดหน่อยนะครับ ส่วนข้อง่ายๆเดื๋ยวกลับมาพิมพ์ให้อีกรอบ จากส่วนของโปรแกรมต่อไปนี้ จงตอบคำถาม r: = 0; i := 1; while(i<=n)do begin for j := to n do r := r+1; i := 1*2 end ถ้า n มีค่าเท่ากับ 128 หลังจากจบการทำงานแล้ว r มีค่าเป็นเท่าใด ก. 896 ข. 8192 ค. 1024 ง. ไม่มีข้อใดถูก ในบรรทัดที่ 5 ถ้าเปลี่ยนจาก for j:=1 to n เป็น for j:=1 to j หลังจากจบการทำงานแล้ว r มีค่าเป็นเท่าใด ถ้า n มีค่าเท่ากับ 128 ก. 120 ข. 255 ค. 1024 ง. 11050 ติดตามตอนต่อไปได้เร็วๆนี้น่อ

ความคิดเห็นที่ 2

attapon56
18 ก.ย. 2548 12:42
  1. งานนี้คุณ samongi น่าจะชอบนะครับ ^^

ความคิดเห็นที่ 3

liptontea
3 ต.ค. 2548 02:55
  1. เพิ่มให้สองข้อครับ : ) 1. แสดงผลลัพธ์ของ int i; for(i=0;i<100&&(i%2)==0;i+=25) printf("%d",i); 2. จากเลขจำนวนเต็มที่รับเข้ามาเป็น 1903 จำนวนใหฒ่ที่ได้จาก โปรแกรมคือ ? int main() { int x,d,i,num=0; scanf("%d",&x); for(i=1; x;i++) { d=x%10; x=x/10; num=num*10+d; } printf("result = %d",num); return 0; }

ความคิดเห็นที่ 5

x9y17k2b
3 ต.ค. 2548 09:31
  1. 1. แสดงผลลัพธ์ของ int i; for(i=0;i<100&&(i%2)==0;i+=25) printf("%d",i); *น่าจะแสดงว่า 25 มั้ง

ความคิดเห็นที่ 6

attapon56
3 ต.ค. 2548 14:40
  1. ปิ้น.......... เข้ามาตั้งแต่เมื่อไรเนี่ย ที่พี่คิดได้ 50 นะ :P เดื๋ยวคิดให้ใหม่ เผื่อคิดผิด

ความคิดเห็นที่ 7

attapon56
3 ต.ค. 2548 14:53
  1. เอาล่ะ 50 แน่นอนแล้ว บอกให้สองอย่างนะ เริ่มจากตอนสอบไม่มีคอมใช่ม๊ะก็เรามาดูกันว่าทำยังไงให้ I มันมากกว่า 999 ข้อนี้ไม่ยากครับ เพราะเป็นอะไรที่แน่นอนมาก ถ้ามันให้ I+1 นี่ยังจะยากกว่าอีก เราลองทำตามคอมเลย จะได้ ค่า P ตามช้อยที่เป็นไปได้คือ 45 และ 50 เพราะ 512 กะ 1024 หาร 5 ไม่ลง ถ้า p บวกทีละ 5 เป็นไปไม่ได้ที่ p จะหารด้วย 5 ไม่ลง และตรงนี้เอง เป็นตัวบอกเราว่าจะ loop ทั้งหมดกี่ครั้ง เอา 5 หารได้ 9 ไม่ก็ 10 ครั้ง 1 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 (คูณ 2 กำลัง 9) ได้ 512 ครับ ซึ่งแน่นอน ถ้า loop อีกรอบจะได้ 1024 มันเกินแล้ว หึหึหึ อย่าเพิ่งดีใจไปครับ น้องลืม loop ครั้งสุดท้ายรึป่าว O.o; ถึงตอนนั้น i จะเป็นซักกี่ล้าน แต่ ค่า p ต้อง +5 รอบสุดท้ายนะคับ จะได้ P = 50 ^^;

ความคิดเห็นที่ 8

attapon56
3 ต.ค. 2548 14:53
  1. ตรวจด้วยภาษา PHP นะครับ ง่ายดีไม่ต้อง include แบบ C พอดีเปิดดรีมค้างไว้ <?php $k = 999; $i = 1; $p = 0; while($k>$i){ $i *= 2; $p += 5; } echo $p; ?> ได้ 50 จริงๆด้วยครับ ^^

ความคิดเห็นที่ 9

attapon56
3 ต.ค. 2548 15:49
  1. คห. 3 ผมงงๆกับโจทย์ข้อแรกอยู่นิดๆอ่ะครับ ถ้า for ไม่ใช้ {} นี่มันจะรวม printf ไปด้วย ซึ่งคำตอบที่ได้มันจะแตกต่างกันหรือปล่าว int i; for(i=0;i<100&&(i%2)==0;i+=25){} printf("%d",i); ไม่รู้นะ แต่ถ้าดูๆแล้ว เงื่อนไข I<100 และ I หารสองลงตัว เป็นจริง มันน่าจะจบที่ 0 แล้ว i += 25 ก็น่าจะตอบ 25 แบบปิ้นว่า ขอบคุณคุณ liptontea มากๆนะครับ ^^

ความคิดเห็นที่ 10

attapon56
3 ต.ค. 2548 15:53
  1. for(i=1; x;i++) สำหรับข้อสองผมงงๆอ่ะครับ ไม่เข้าใจว่ามันคืออะไร ความรู้ไม่ถึงครับ T.T;

ความคิดเห็นที่ 11

liptontea
4 ต.ค. 2548 00:01
  1. ติดข้อไหนลอง complie ดูครับ : ) base on C เอาไว้ว่าง ๆ จะมานั่งพิมพ์ให้นะครับ....

ความคิดเห็นที่ 12

attapon56
4 ต.ค. 2548 17:38
  1. ถึงคุณ liptontea ครับ คือบ้านผมไม่มีตัว complie อ่ะครับ ปรกติไม่ได้เขียน C บ่อยๆเลยไม่ได้โหลดเก็บไว้ ทุกทีจะตรวจคำตอบนี่ก็เขียนเป็น php อ่าคับ :P เดื๋ยวนี้ให้มาเขียน C ยัง include ไม่ค่อยจะถูกเลย ได้แต่ไวยกรณ์นิดๆเองอ่ะคับ

ความคิดเห็นที่ 14

2 ก.พ. 2551 10:55
  1. เก่งตายล่ะ

ความคิดเห็นที่ 15

4 ก.พ. 2551 13:35
  1. งง เราอ่อนคอมมากๆๆค๊าฟ

ความคิดเห็นที่ 16

19 มี.ค. 2551 02:06
  1. Nice site!

ความคิดเห็นที่ 17

29 ก.ค. 2551 15:35
  1. เเจ๋ว

ความคิดเห็นที่ 18

28 ก.ย. 2552 20:42
  1. I'm มืด ตึ๊บ


แสดงความคิดเห็น

กรุณา Login ก่อนแสดงความคิดเห็น