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

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



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

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 กว่าข้อ ถ้าคิดสองข้อนี้ได้แล้วจะนำข้อที่เหลือมาฝาก แต่ถ้ายังไม่มีใครคิดได้ก็เก็บไว้ก่อนนะครับ เมื่อยมือ =.=;
17 ก.ย. 2548 20:46
18 ความเห็น
15644 อ่าน


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

อันนี้ข้อสอบโอลิมปิกรอบ 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





ติดตามตอนต่อไปได้เร็วๆนี้น่อ
18 ก.ย. 2548 12:39


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

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


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

เพิ่มให้สองข้อครับ : )



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;

}
3 ต.ค. 2548 02:55


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

1. แสดงผลลัพธ์ของ



int i;

for(i=0;i<100&&(i%2)==0;i+=25)

printf("%d",i);



*น่าจะแสดงว่า 25 มั้ง
3 ต.ค. 2548 09:31


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

ปิ้น.......... เข้ามาตั้งแต่เมื่อไรเนี่ย





ที่พี่คิดได้ 50 นะ :P เดื๋ยวคิดให้ใหม่ เผื่อคิดผิด
3 ต.ค. 2548 14:40


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

เอาล่ะ 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 ^^;
3 ต.ค. 2548 14:53


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

ตรวจด้วยภาษา PHP นะครับ ง่ายดีไม่ต้อง include แบบ C พอดีเปิดดรีมค้างไว้





<?php

$k = 999;

$i = 1;

$p = 0;



while($k>$i){

$i *= 2;

$p += 5;

}





echo $p;

?>





ได้ 50 จริงๆด้วยครับ ^^
3 ต.ค. 2548 14:53


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

คห. 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 มากๆนะครับ ^^
3 ต.ค. 2548 15:49


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

for(i=1; x;i++)



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


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

ติดข้อไหนลอง complie ดูครับ : )

base on C



เอาไว้ว่าง ๆ จะมานั่งพิมพ์ให้นะครับ....
4 ต.ค. 2548 00:01


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

ถึงคุณ liptontea ครับ





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


ความคิดเห็นที่ 14 วีพะนรบย (Guest)

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


ความคิดเห็นที่ 15 asd@qwe.com (Guest)

งง

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


ความคิดเห็นที่ 16 Nikolet (Guest)

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


ความคิดเห็นที่ 17 simon_love (Guest)

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


ความคิดเห็นที่ 18 patcharaporn30@hotmail.com (Guest)

I'm มืด ตึ๊บ

28 ก.ย. 2552 20:42

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

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