เขียนตอบแต่ละข้อเริ่มด้วยเลขข้อในรูปแบบ <เลขข้อ>
<1> E <2> <3> B
<1> |
ข้อใดตั้งเป็นชื่อฟังก์ชันได้ A) ___________ (****) B) __-__-__-__ C) ._._._._._. D) False E) ไม่มีข้อใดถูก |
<1> |
ข้อใดตั้งเป็นชื่อฟังก์ชันได้ A) _o_o_ (****) B) o-o-o C) True D) 1a2b3 E) ไม่มีข้อใดถูก |
<1> |
ข้อใดตั้งเป็นชื่อฟังก์ชันได้ A) _x_x_ (****) B) __-__ C) $_$_$ D) 1_2_3 E) ไม่มีข้อใดถูก |
<2> |
ข้อใดมีค่าไม่ใกล้เคียงรากที่สองของ 100 A) math.sqrt(100) B) 100 ** 1/2 (****) C) pow(100, 0.5) D) 100 // 10 E) ใกล้เคียงทุกข้อ |
<2> |
ข้อใดมีค่าไม่ใกล้เคียงรากที่สองของ 400 A) math.sqrt(400) B) 400 ** 1/2 (****) C) pow(400, 0.5) D) 200 // 10 E) ใกล้เคียงทุกข้อ |
<2> |
ข้อใดมีค่าไม่ใกล้เคียงรากที่สองของ 81 A) math.sqrt(81) B) 81 ** 1/2 (****) C) pow(81, 0.5) D) 192 / 2 E) ใกล้เคียงทุกข้อ |
<2> |
เครื่องหมายคณิตศาสตร์ใดถูกทำเป็นลำดับที่ 4 ในนิพจน์ 4*5-2%(5+2)/32 A) * B) - C) % D) + E) / (****) |
<2> |
เครื่องหมายคณิตศาสตร์ใดถูกทำเป็นลำดับที่ 3 ในนิพจน์ 4*5-2%(5+2)/32 A) * B) - C) % (****) D) + E) / |
<2> |
เครื่องหมายคณิตศาสตร์ใดถูกทำเป็นลำดับที่ 5 ในนิพจน์ 4*5-2%(5+2)/32 A) * B) - (****) C) % D) + E) / |
<3> |
ข้อใดทำงานแล้วจะวนในวงวนไม่สิ้นสุด A) a = 227 while a != 0: a //= 2 B) a = 227 while a != 0: a -= 1 C) a = 227 while a != 0: a %= 11 (****) D) มีข้อที่ทำงานแล้วติดในวงวน 2 ข้อ E) ทุกข้อทำงานได้ไม่ติดในวงวน |
<3> |
ข้อใดทำงานแล้วจะวนในวงวนไม่สิ้นสุด A) a = 232 while a != 0: a //= 7 B) a = 232 while a != 0: a -= 1 C) a = 232 while a != 0: a %= 13 (****) D) มีข้อที่ทำงานแล้วติดในวงวน 2 ข้อ E) ทุกข้อทำงานได้ไม่ติดในวงวน |
<3> |
ข้อใดทำงานแล้วจะวนในวงวนไม่สิ้นสุด A) a = 132 while a != 0: a //= 3 B) a = 132 while a != 0: a -= 1 C) a = 132 while a != 0: a %= 11 D) มีข้อที่ทำงานแล้วติดในวงวน 2 ข้อ E) ทุกข้อทำงานได้ไม่ติดในวงวน (****) |
<3> |
ข้อใดทำงานแล้วจะวนในวงวนไม่สิ้นสุด A) a = 169 while a != 0: a //= 5 B) a = 169 while a != 0: a -= 2 (****) C) a = 169 while a != 0: a %= 13 D) มีข้อที่ทำงานแล้วติดในวงวน 2 ข้อ E) ทุกข้อทำงานได้ไม่ติดในวงวน |
<4> |
ข้อใดตรวจตัวแปร c ที่เก็บตัวพิมพ์เล็กตัวเดียวว่า เป็น a, e, i, o หรือ u หรือไม่ A) if c == "aeiou" : B) if c is in "aeiou" : C) if c.index("aeiou") != -1 : D) if "aeiou".find(c) >= 0 : (****) E) ไม่มีข้อใดถูก |
<4> |
ข้อใดตรวจตัวแปร c ที่เก็บตัวพิมพ์เล็กตัวเดียวว่า เป็น v, w, x, y หรือ z หรือไม่ A) if c == "vwxyz" : B) if c is in "vxwyz" : C) if c.find("vwxyz") != -1 : D) if 'v' =< c =< 'z' : E) ไม่มีข้อใดถูก (****) |
<4> |
ข้อใดตรวจตัวแปร c ที่เก็บตัวพิมพ์เล็กตัวเดียวว่า เป็น a, b, c, d หรือ e หรือไม่ A) if c == "abcde" : B) if c is in "abcde" : C) if c.find("abcde") != -1 : D) if 'e' => c => 'a': E) ไม่มีข้อใดถูก (****) |
<5> |
คำสั่งข้อใดมีโอกาสเกิด error ตอนทำงาน (ตัวแปร b กับ c มีค่ากำหนดให้แล้ว) A) a = b + c B) a = b / c C) a = b - c D) a = b * c E) มีโอกาสเกิด error ได้ทุกข้อ (****) |
<6> |
ฟังก์ชัน f มีรายละเอียดข้างล่างนี้ def f(x, y): for e in x: y += e return y คำสั่งในข้อใดทำงานแล้วไม่เกิด error A) f('123', '456') (****) B) f({1,2,3}, {4,5,6}) C) f([1,2,3], [1,2,3]) D) f(123, 456) E) มีข้อที่ไม่เกิด error มากกว่า 1 ข้อ |
<6> |
ฟังก์ชัน f มีรายละเอียดข้างล่างนี้ def f(x, y): for e in x: y += e return y คำสั่งในข้อใดทำงานแล้วไม่เกิด error A) f((123,), 456) (****) B) f((123), 456) C) f({'123'}, 456) D) f([1,2,3], (4,5,6)) E) มีข้อที่ไม่เกิด error มากกว่า 1 ข้อ |
<6> |
ฟังก์ชัน f มีรายละเอียดข้างล่างนี้ def f(x, y): for e in x: y += e return y คำสั่งในข้อใดทำงานแล้วไม่เกิด error A) f(((1,),(2,), (3,)), (4,5,6)) (****) B) f(((1), (2), (3)), [4,5,6]) C) f({123}, [456]) D) f([1,2,3], (4,5,6)) E) มีข้อที่ไม่เกิด error มากกว่า 1 ข้อ |
<7> |
ให้ m เป็นจำนวนเต็ม ข้อใดแทนเงื่อนไขว่า m เก็บเลขเดือนของ เดือนที่มีชื่อลงท้ายด้วย ยน A) not(m%2==1 and 0<m<8 or m%2==0 and 7<m<13) and m!= 2 (****) B) 1<=m<=12 or m==2 or m==4 or m==6 or m==9 or m==11 C) 0<m<13 and not(m!=2 and m!=4 and m!=6 and m!=9 and m!=11) D) m is in [4,6,9,11] E) ถูกมากกว่า 1 ข้อ |
<7> |
ให้ y เก็บเลขปี ค.ศ. เดือน ก.พ. มี 29 วัน เมื่อ - y หารด้วย 4 ลงตัว แต่หารด้วย 100 ไม่ลงตัว - ยกเว้นกรณีที่ y หารด้วย 400 ลงตัว ก็มี 29 วัน คำสั่งใดที่หาจำนวนวันในเดือนกุมภาพันธ์ ของปี ค.ศ. y ไม่ถูกต้อง A) d = 28 if y%400==0 or y%4==0 and y%100!=0: d = 29 B) d = 29 if (y%4!=0 or y%100==0) and y%400!=0: d = 28 C) if (y%4==0 and y%100!=0) or y%400==0: d = 29 else: d = 28 D) มีถูก 2 ข้อ ผิด 1 ข้อ E) ข้อ A, B และ C ถูกหมด (****) |
<8> |
ให้ x เป็นลิสต์เก็บจำนวนเต็ม ข้อใดได้ค่าของตัวแปร s ต่างจากข้ออื่น A) s = 0 for e in x[::-1]: s += e B) s = 0 for i in range(0,len(x),1): s += x[i] C) s = 0 for i in range(len(x),0,-1): s += x[i] (****) D) s = 0 for e in x[1::2]+x[::2]: s += e E) ทุกข้อได้ s มีค่าเท่ากันหมด |
<8> |
เมื่อโปรแกรมข้างล่างนี้ทำงาน จะแสดงผลอะไร x = [1,2]+[3,4,5]*1000 print(x.pop(len(x)-5)) A) 1 B) 2 C) 3 D) 4 (****) E) 5 |
<8> |
เมื่อโปรแกรมข้างล่างนี้ทำงาน จะแสดงผลอะไร x = [[1,[2,[3,4]]],[5,[6,[7,8]]]] print(x.pop(1)[1][1]) A) 2 B) [3, 4] C) 6 D) 7 E) [7, 8] (****) |
<9> |
หากนำเลขประจำตัวนิสิต 10 หลักของนิสิตจำนวนหนึ่ง มาเรียงต่อกัน มีเครื่องหมาย : คั่นระหว่างเลขประจำตัว เช่น "5937015921:5934847821:5938763221" แล้วเก็บสตริงนี้ในตัวแปร IDs ตัวเลือกในข้อใดสามารถหาว่า เลขประจำตัวที่เก็บในตัวแปร sid ที่มีอยู่ใน IDs แน่ ๆ อยู่เป็นลำดับที่เท่าใดใน IDs (กำหนดให้ตัวซ้ายสุดคือ ลำดับที่ 1) A) (IDs.find(sid)+11)//11 (****) B) IDs.find(sid)//10+1 C) IDs.find(sid)%10 D) IDs.find(sid)%11+1 E) ไม่มีข้อใดถูก |
<9> |
หากนำเลขประจำตัวนิสิต 10 หลักของนิสิตจำนวนหนึ่ง มาเรียงต่อกัน มี : เริ่มต้น ปิดท้าย และคั่นระหว่างเลขประจำตัว เช่น ":5937015921:5934847821:5938763221:" แล้วเก็บสตริงนี้ในตัวแปร IDs ตัวเลือกในข้อใดสามารถหาว่า เลขประจำตัวที่เก็บในตัวแปร sid ที่มีอยู่ใน IDs แน่ ๆ อยู่เป็นลำดับที่เท่าใดใน IDs (กำหนดให้ตัวซ้ายสุดคือ ลำดับที่ 1) A) IDs.find(sid)//10 + 1 B) IDs.find(sid+":")//11 + 1 (****) C) IDs.find(':'+sid)//12 + 1 D) IDs.find(':'+sid+':')//12 + 1 E) ไม่มีข้อใดถูก |
<9> |
ถ้าต้องการแสดงคำอ่านของเลขหนึ่งตัวในตัวแปร d ออกทางจอภาพ ต้องเติมอะไรลงแทน ??? และ *** ของโปรแกรมข้างล่างนี้ ตามลำดับ (ให้เลขที่อินพุตเป็น 1,2,3 หรือ 4 เท่านั้น) s = "[1:one][2:two][3:three][4:four]" d = input() sidx = s.find(d)+ ??? # <---- eidx = s.find("]",sidx) print(s[sidx: eidx+ *** ]) # <---- A) 0 กับ 0 B) 2 กับ -1 C) 2 กับ 0 (****) D) 1 กับ -1 E) ไม่มีข้อใดถูก |
<10> |
ให้โปรแกรม Python ชื่อ p.py มีบรรทัดเดียวคือ print(open("p.py").readline().strip()) ถ้าสั่งโปรแกรมนี้ทำงานจะได้ผลอะไรทางจอภาพ A) print(open("p.py").readline().strip()) (****) B) open("py.py").readline().strip() C) readline().strip() D) โปรแกรมทำงานแล้วเกิด error E) ไม่สามารถสรุปได้ว่าจะแสดงอะไร |
<11> |
ผู้เขียนตั้งใจให้โปรแกรมข้างล่างนี้ รับสตริงทางคีย์บอร์ด แล้วนับว่า สตริงนั้นมีเลขคี่อย่างละกี่ตัว เมื่อนำโปรแกรมนี้ไปทำงานแล้วป้อน --1-9-1-- เป็นอินพุต จะเกิด error ที่คำสั่งในบรรทัดใด c = dict() # บรรทัดที่ 1 for e in input().split(): # บรรทัดที่ 2 if e != [0,2,4,6,8] : # บรรทัดที่ 3 c[e] += 1 # บรรทัดที่ 4 print(c) A) บรรทัดที่ 1 B) บรรทัดที่ 2 C) บรรทัดที่ 3 D) บรรทัดที่ 4 (****) E) ทำงานได้ปกติ ไม่เกิด error |
<11> |
ผู้เขียนตั้งใจให้โปรแกรมข้างล่างนี้ รับสตริงทางคีย์บอร์ด แล้วนับว่า สตริงนั้นมีเลขคู่อย่างละตัวกี่ตัว เมื่อนำโปรแกรมนี้ไปทำงานแล้วป้อน 12345 เป็นอินพุต จะเกิด error ที่คำสั่งในบรรทัดใด c = dict() # บรรทัดที่ 1 for e in input().split(): # บรรทัดที่ 2 if e not in [1,3,5,7,9] : # บรรทัดที่ 3 c[e] = c[e] + 1 # บรรทัดที่ 4 print(c) A) บรรทัดที่ 1 B) บรรทัดที่ 2 C) บรรทัดที่ 3 D) บรรทัดที่ 4 (****) E) ทำงานได้ปกติ ไม่เกิด error |
<12> |
ให้ r เป็น dict ที่มี - key เป็นชื่อบริษัท - value เก็บมูลค่าสินทรัพย์ของบริษัท ข้อใดได้ชื่อบริษัทที่มีมูลค่าสินทรัพย์มากสุดสักหนึ่งบริษัท A) max(r.items())[0] B) max([(k[1],k[0]) for k in r.items()])[1] (****) C) sorted([(v,k) for k,v in r])[-1][1] D) max([(v,r[v]) for v in t.values()])[1] E) ไม่มีข้อใดถูก |
<12> |
ให้ r เป็น dict ที่มี - key เป็นชื่อบริษัท - value เก็บมูลค่าสินทรัพย์ ข้อใดได้ชื่อบริษัทที่มีมูลค่าสินทรัพย์มากสุดสักหนึ่งบริษัท A) max(r.items())[0] B) min([(-k[1],k[0]) for k in r.items()])[1] (****) C) sorted([(-v,k) for k,v in r])[0][1] D) max([(v,r[v]) for v in t.values()])[1] E) ไม่มีข้อใดถูก |
<12> |
ให้ r เป็น dict ที่มี - key เป็นชื่อบริษัท - value เก็บมูลค่าสินทรัพย์ของบริษัท ข้อใดได้ชื่อบริษัทที่มีมูลค่าสินทรัพย์น้อยสุดสักหนึ่งบริษัท A) min(r.items())[0] B) min([(k[1],k[0]) for k in r])[1] C) sorted([(-v,k) for k,v in r.items()])[-1][1] (****) D) max([(-v,r[v]) for v in t.values()])[1] E) ไม่มีข้อใดถูก |
<12> |
ให้ d เป็น dict ที่มี - key เป็นรหัสลูกค้า - value เก็บลิสต์ของชื่อเกมที่ลูกค้าคนนี้ได้ซื้อไปแล้ว ข้อใดแสดงจำนวนชื่อเกมที่แตกต่างกันทั้งหมดที่ได้ขายไปแล้ว A) c = {} for k in d: c = c.union(d[k]) print(len(c)) B) c = 0 for k,v in d.items: c += len(v) print(c) C) c = 0 for k in d: for e in d[k]: c += 1 print(c) D) ในตัว A, B, C มีถูก 2 ข้อ E) ไม่มีข้อใดถูก (****) |
<12> |
ให้ d เป็น dict ที่มี - key เป็นรหัสสินค้า - value เก็บลิสต์ของรหัสสาขาร้านที่ยังมีสินค้านี้เหลืออยู่ ข้อใดแสดงจำนวนสาขาร้านทั้งหมดที่ยังมีสินค้าขายในร้าน A) c = set() for k in d.keys: c = c.union(d[k]) print(len(c)) B) c = 0 for v in d.values: c += len(v) print(c) C) c = 0 for k in d: for e in d[k]: c += 1 print(c) D) ในตัว A, B, C มีถูก 2 ข้อ E) ไม่มีข้อใดถูก (****) |
<12> |
ให้ d เป็น dict ที่มี - key เป็นรหัสลูกค้า - value เก็บลิสต์ของชื่อเกมที่ลูกค้าคนนี้ได้ซื้อไปแล้ว ข้อใดสร้าง s เป็น dict ที่มี - key เป็นชื่อเกม - value เก็บเซตของรหัสลูกค้าทั้งหมดที่ได้ซื้อเกมนี้ A) s = dict() for v in d.values: if v not in s: s[v] = set() s[v].add(d[v]) B) s = dict() x = [(k,e) for k in d for e in d[k]] for k,e in x: s[e] = set() for k,e in x: s[e].add(k) (****) C) s = dict([(d[k],k) for k in d]) D) s = dict() x = [(k,e) for k in d for e in d[k]] for k,e in x: s[e].update(k) E) ไม่มีข้อใดถูก |
<12> |
ให้ d เป็น dict ที่มี - key เป็นรหัสสินค้า - value เก็บลิสต์ของรหัสสาขาร้านที่ยังมีสินค้านี้เหลืออยู่ ข้อใดสร้าง s เป็น dict ที่มี - key เป็นรหีสสาขาร้าน - value เก็บเซตของรหัสสินค้าต่าง ๆ ที่ร้านนี้มีขาย A) s = dict() for v in d.values: if v not in s: s[v] = set() s[v].add(d[v]) B) s = dict() x = [(k,e) for k in d for e in d[k]] for k,e in x: s[e] = set() for k,e in x: s[e].add(k) (****) C) s = dict([(d[k],k) for k in d]) D) s = dict() x = [(k,e) for k in d for e in d[k]] for k,e in x: s[e].update(k) E) ไม่มีข้อใดถูก |
<13> |
ให้ d เป็น numpy array ขนาด 100x100 ให้ N = d.shape[0] และ M = d.shape[1] (สมมติว่าได้ import numpy as np แล้ว) ข้อใดทำให้ข้อมูลในแถวแนวนอนอินเด็กซ์เลขคี่ทั้งหมด มีค่าเป็น 0 ทั้งแถว A) d[1:-1:2] = [0] B) d[range(0,N,2), range(M)] = 0 C) d[::-2, ::] = 0 (****) D) d[np.arange(N)%2==0, np.arange(M)] = 0 E) ไม่มีข้อใดถูก |
<13> |
ให้ d เป็น numpy array ขนาด 111x111 ให้ N = d.shape[0] และ M = d.shape[1] (สมมติว่าได้ import numpy as np แล้ว) ข้อใดทำให้ข้อมูลในแถวแนวนอนอินเด็กซ์เลขคู่ทั้งหมด มีค่าเป็น 0 ทั้งแถว A) d[0:-1:2] = [0] B) d[range(1,N,2), range(M)] = 0 C) d[-2::-2, ::] = 0 (****) D) d[np.arange(N)%2==1, np.arange(M)] = 0 E) ไม่มีข้อใดถูก |
<14> |
ให้ x เป็น numpy array หนึ่งมิติเก็บจำนวนเต็ม ฟังก์ชันใดคืน mode ของข้อมูลใน x mode คือข้อมูลที่ปรากฏเป็นจำนวนครั้งมากสุดใน x ถ้ามีตัวที่เป็น mode หลายตัว ให้คืนตัวซ้ายสุด (สมมติว่าได้ import numpy as np แล้ว) A) def mode(x): y = np.array([x]).T c = np.sum(x==y, axis=0) return x[np.argmax(c)] (****) B) def mode(x): return np.max(np.sum(x.dot(x.T),axis=1)) C) def mode(x): t = x.reshape((x.shape[0],1)) return np.max(np.sum(x==t, axis=1)) D) def mode(x): t = x.reshape((x.shape[::-1])) return x[np.argmax(np.sum(x==t, axis=1))] E) ไม่มีข้อใดถูก |
<14> |
ให้ x เป็น numpy array หนึ่งมิติเก็บจำนวนเต็ม f(x) ในข้อใดคืนจริง เมื่อ x มีข้อมูลในที่ซ้ำกัน เกิน 50% ของจำนวนข้อมูลทั้งหมด ถ้าไม่มีคืนเท็จ (สมมติว่าได้ import numpy as np แล้ว) A) def f(x): N = x.shape[0] y = np.array([x]).T m = np.max(np.sum(x==y, axis=0)) return m > N/2 B) def f(x): N = x.shape[0] s = np.sum(x.dot(x.T),axis=0) m = np.max(s) return m > N/2 C) def f(x): N = x.shape[0] c = np.sum(x == sorted(x)[N//2]) return c > N/2 D) มีข้อที่ทำได้ตามต้องการ 2 ข้อ (****) E) ไม่มีข้อใดถูก |
<15> |
ให้ d เป็น dict มี - คีย์ ชื่อจังหวัด, value เป็น dict ที่มี - คีย์ 'region', value เก็บชื่อย่อภาค - คีย์ 'population', value เก็บจำนวนประชากร - ชื่อย่อภาคประกอบด้วย N, E, W, S, C, NE นักเรียนคนหนึ่งเขียนฟังก์ชัน f(d) ข้างล่างนี้ มีหน้าที่ คืน dict ที่มีคีย์เป็นภาค, value เก็บจำนวนจังหวัดในภาค def f(d): c = {'NE':0, 'C':0, 'N':0, \ 'E':0, 'W':0, 'S':0} for p in d: r = d[p]['region'] # บรรทัด I for k in c: # บรรทัด II if r in k: # บรรทัด III c[r] += 1 # บรรทัด IV break # บรรทัด V return c หลังจากทดสอบการทำงานแล้ว พบว่า ได้คำตอบเกือบถูก ถ้าจะปรับฟังก์ชันนี้ ด้วยจำนวนการแก้ไขคำสั่งให้น้อยสุด ๆ เพื่อให้ทำงานได้ถูกต้อง ต้องแก้ไขที่บรรทัดใด A) บรรทัด I B) บรรทัด II C) บรรทัด III (****) D) บรรทัด IV E) บรรทัด V |