เนื้อหาวิชา : 3 : กระบวนการทางคณิตศาสตร์และตรรกศาสตร์
ข้อ 181. 3 + 5 * 5 – 1 มีค่าเท่าใด
1 : 23
2 : 27
3 : 49
4 : 625
เฉลย: 2
อธิบาย:
3 + (5 * 5) – 1
3 + (25) – 1
= 27
Note: คูณก่อน บวก/ลบ ทีหลัง
ข้อ 182. ถ้า wet=true, cold=false, windy=false และ && คือ AND, || คือ OR, ! คือ NOT
จงหาค่าความจริงของ (cold && !wet) || !(windy || cold)
1 : จริง
2 : เท็จ
3 : นิพจน์ที่เขียนเป็นนิพจน์ทางตรรกศาสตร์ที่ผิด
4 : ไม่สามารถหาได้
เฉลย: 1
อธิบาย:
true=1, false=0
(cold && !wet) || !(windy || cold)
→ (0 && !1) || !(0 || 0)
→ (0 && 0 ) || !(0)
→ 0 || 1 = 1
Note: ทำทีละสเต็ป
ข้อ 183. ข้อใดถูกต้อง
1 : (x > 0) จะเป็นจริง เมื่อ x เป็น 0
2 : (x >= 0) จะเป็นจริง เมื่อ x ไม่เท่ากับ 0
3 : (x <= 0) จะเป็นเท็จ เมื่อ x เป็นจำนวนบวก
4 : (x < 0) จะเป็นเท็จ เมื่อ x เป็นจำนวนลบ
เฉลย: 3
อธิบาย:
1 : (x > 0) จะเป็น จริง เมื่อ x เป็น 0 → ผิด ✖
2 : (x >= 0) จะเป็น จริง เมื่อ x ไม่เท่ากับ 0 → ถ้า x เป็นลบ จะเป็นเท็จ → ผิด ✖
3 : (x <= 0) จะเป็น เท็จ เมื่อ x เป็นจำนวนบวก → ถูก ✔
4 : (x < 0) จะเป็น เท็จ เมื่อ x เป็นจำนวนลบ → X เป็นลบทำให้เป็นจริง → ผิด ✖
ข้อ 184. ให้ % แทน modulus operator และมีลำดับการทำงานจากซ้ายไปขวา
(203 % 10 % 9 % 7 % 5) มีค่าเท่าใด
1 : 0
2 : 1
3 : 2
4 : 3
เฉลย: 4
อธิบาย:
คำนวณซ้ายไปขวา:
203%10 = 3,
→ 3%9 = 3,
→ 3%7 = 3,
→ 3%5 = 3
Note: ถ้าตัวตั้งน้อยกว่าตัวหาร เศษคือตัวตั้งเดิม
ข้อ 185. ให้ % แทน modulus operator
(201 % (11 % (8 % (7 % 4)))) มีค่าเท่าใด
1 : 0
2 : 1
3 : 2
4 : 3
เฉลย: 1
อธิบาย:
เริ่มวงเล็บในสุด 7%4=3,
แล้ว 8%3=2,
ต่อด้วย 11%2=1,
สุดท้าย 201%1=0
ข้อ 186. กำหนดให้ a,b,c เป็นจำนวนเต็ม
a=10,b=20,c=30
จงหาค่าของนิพจน์ a + b * c / a + 10
1 : 70
2 : 80
3 : 100
4 : 120
เฉลย: 2
อธิบาย:
a + (b * c / a) + 10 → 10 + (20 * 30 / 10) + 10
→ 10 + (600 / 10) + 10
→ 10 + (60) + 10 = 80
ข้อ 187. ให้ && แทน AND, || แทน OR
operator ใดทำงานก่อนเป็นอันดับแรก ในการหาค่าของนิพจน์
(x > y + 80) && (z > 100) || (x > 500)
1 : + ใน (y + 80)
2 : > ใน (x > y + 80)
3 : &&
4 : ||
เฉลย: 1
อธิบาย:
ในการเปรียบเทียบ x > y + 80 ต้องคำนวณ y + 80 ก่อน
แล้วจึงนำไปเปรียบเทียบด้วย >
Note: คำนวณเลขก่อน เปรียบเทียบทีหลัง
ข้อ 188.
x = 1 + 2 + 3 + 4 + 5;
x = x + x;
x = x + x;
x = x + x;
เมื่อทำงานเสร็จ x มีค่าเท่าใด
1 : 120
2 : 100
3 : 80
4 : 60
เฉลย: 1
อธิบาย:
เริ่ม x = 1+2+3+4+5 = 15
จากนั้น x=x+x ครั้งที่ 1 ได้ 30,
ครั้งที่ 2 ได้ 60,
ครั้งที่ 3 ได้ 120
ข้อ 189. กำหนดให้
~ คือ one-complement หรือ bit-wise NOT,
& คือ bit-wise AND,
! คือ logical NOT
และ logical operation มีค่าได้ 1 หรือ 0
กระบวนการ ~!(b & 1) จะได้ค่าใด หาก b=5
1 : 5
2 : 1
3 : 0
4 : -1
เฉลย: 4
อธิบาย:
logical operation กระทำการทางบิต
~!(b & 1), b=5
~!(5 & 1) → 5 & 1 ได้ 1 เพราะ 5 = …1012 ฐานสอง (บิตท้าย คือ 1)
~!(1) = ~0 → กลับบิตทั้งหมดของข้อมูล …00002 → …11112
ในระบบจำนวนเต็ม signed (เช่น int 32-bit) เมื่อกลับบิตทั้งหมด จะเท่ากับ -1
~0 = -1
ข้อ 190. มีการอ่านข้อมูลเข้ามาทางพอร์ตขนาด 8 บิต
โดย 4 บิตบนเป็นข้อมูลจากแหล่งที่หนึ่ง
และ 4 บิตล่างเป็นข้อมูลจากแหล่งที่สอง
หากต้องการตรวจสอบข้อมูลจากแหล่งที่หนึ่ง โดยข้อมูลพักไว้ในตัวแปร x ต้องใช้นิพจน์ใด
1 : x>>4
2 : x/16
3 : x-64
4 : x%64
5 : ไม่สามารถหาได้ ต้องออกแบบให้มีการรับค่าแยกพอร์ตกันเท่านั้น
เฉลย: 1, 2
อธิบาย:
ข้อมูล แหล่งที่หนึ่ง อยู่ 4 บิตบน อยู่ในตำแหน่ง bit 4–7
bit
7-4 3-0
0000 0000
บิตบน บิตล่าง
ถ้าเราต้องการเอาเฉพาะ 4 บิตบนออกมา → ต้อง เลื่อนบิตขวา 4 ตำแหน่งx >> 4 คือการเลื่อนบิตขวา 4 ตำแหน่ง
แต่ x / 16 → จริง ๆ ก็ได้ผลเหมือนกัน เพราะการหารด้วย 16 = สามารถเลื่อนบิตขวา 4 ตำแหน่งได้
เช่น
10010011 /162 = 1001