<1> |
หากนำเลขประจำตัวนิสิต 10 หลักของนิสิตจำนวนหนึ่ง
มาเรียงต่อกัน มี : เริ่มต้น ปิดท้าย และคั่นระหว่างเลขประจำตัว
เช่น ":5937015921:5934847821:5938763221:"
แล้วเก็บสตริงนี้ในตัวแปร IDs
ตัวเลือกในข้อใดสามารถหาว่า เลขประจำตัวที่เก็บในตัวแปร sid
ที่มีอยู่ใน IDs แน่ ๆ อยู่เป็นลำดับที่เท่าใดใน IDs
(กำหนดให้ตัวซ้ายสุดคือ ลำดับที่ 1)
A) IDs.find(sid+":")//11 + 1
B) IDs.find(':'+sid+':')//12 + 1
C) IDs.find(':'+sid)//12 + 1
D) IDs.find(sid)//10 + 1
E) ไม่มีข้อใดถูก |
<2> |
ข้อใดทำงานแล้วจะวนในวงวนไม่สิ้นสุด
A) a = 169
while a != 0:
a -= 2
B) a = 169
while a != 0:
a %= 13
C) a = 169
while a != 0:
a //= 5
D) มีข้อที่ทำงานแล้วติดในวงวน 2 ข้อ
E) ทุกข้อทำงานได้ไม่ติดในวงวน |
<3> |
ฟังก์ชัน f มีรายละเอียดข้างล่างนี้
def f(x, y):
for e in x:
y += e
return y
คำสั่งในข้อใดทำงานแล้วไม่เกิด error
A) f(((1,),(2,), (3,)), (4,5,6))
B) f({123}, [456])
C) f(((1), (2), (3)), [4,5,6])
D) f([1,2,3], (4,5,6))
E) มีข้อที่ไม่เกิด error มากกว่า 1 ข้อ |
<4> |
คำสั่งข้อใดมีโอกาสเกิด error ตอนทำงาน
(ตัวแปร b กับ c มีค่ากำหนดให้แล้ว)
A) a = b * c
B) a = b / c
C) a = b + c
D) a = b - c
E) มีโอกาสเกิด error ได้ทุกข้อ |
<5> |
ให้ d เป็น numpy array ขนาด 111x111
ให้ N = d.shape[0] และ M = d.shape[1]
(สมมติว่าได้ import numpy as np แล้ว)
ข้อใดทำให้ข้อมูลในแถวแนวนอนอินเด็กซ์เลขคู่ทั้งหมด
มีค่าเป็น 0 ทั้งแถว
A) d[range(1,N,2), range(M)] = 0
B) d[-2::-2, ::] = 0
C) d[0:-1:2] = [0]
D) d[np.arange(N)%2==1, np.arange(M)] = 0
E) ไม่มีข้อใดถูก |
<6> |
ให้ d เป็น dict ที่มี
- key เป็นรหัสลูกค้า
- value เก็บลิสต์ของชื่อเกมที่ลูกค้าคนนี้ได้ซื้อไปแล้ว
ข้อใดแสดงจำนวนชื่อเกมที่แตกต่างกันทั้งหมดที่ได้ขายไปแล้ว
A) c = 0
for k,v in d.items():
c += len(v)
print(c)
B) c = 0
for k in d:
for e in d[k]:
c += 1
print(c)
C) c = {}
for k in d:
c = c.union(d[k])
print(len(c))
D) ในตัว A, B, C มีถูก 2 ข้อ
E) ไม่มีข้อใดถูก |
<7> |
ให้ x เป็น numpy array หนึ่งมิติเก็บจำนวนเต็ม
ฟังก์ชันใดคืน mode ของข้อมูลใน x
mode คือข้อมูลที่ปรากฏเป็นจำนวนครั้งมากสุดใน x
ถ้ามีตัวที่เป็น mode หลายตัว ให้คืนตัวซ้ายสุด
(สมมติว่าได้ import numpy as np แล้ว)
A) def mode(x):
t = x.reshape((x.shape[::-1]))
return x[np.argmax(np.sum(x==t, axis=1))]
B) def mode(x):
t = x.reshape((x.shape[0],1))
return np.max(np.sum(x==t, axis=1))
C) def mode(x):
return np.max(np.sum(x.dot(x.T),axis=1))
D) def mode(x):
y = np.array([x]).T
c = np.sum(x==y, axis=0)
return x[np.argmax(c)]
E) ไม่มีข้อใดถูก |
<8> |
เมื่อโปรแกรมข้างล่างนี้ทำงาน จะแสดงผลอะไร
x = [1,2]+[3,4,5]*1000
print(x.pop(len(x)-5))
A) 1
B) 3
C) 2
D) 4
E) 5 |
<9> |
ข้อใดมีค่าไม่ใกล้เคียงรากที่สองของ 100
A) 100 ** 1/2
B) math.sqrt(100)
C) 100 // 10
D) pow(100, 0.5)
E) ใกล้เคียงทุกข้อ |
<10> |
ข้อใดตั้งเป็นชื่อฟังก์ชันได้
A) True
B) 1a2b3
C) _o_o_
D) o-o-o
E) ไม่มีข้อใดถูก |
<11> |
ให้โปรแกรม 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) ไม่สามารถสรุปได้ว่าจะแสดงอะไร |
<12> |
ข้อใดตรวจตัวแปร c ที่เก็บตัวพิมพ์เล็กตัวเดียวว่า
เป็น a, e, i, o หรือ u หรือไม่
A) if c == "aeiou" :
B) if c.index("aeiou") != -1 :
C) if c is in "aeiou" :
D) if "aeiou".find(c) >= 0 :
E) ไม่มีข้อใดถูก |
<13> |
ผู้เขียนตั้งใจให้โปรแกรมข้างล่างนี้ รับสตริงทางคีย์บอร์ด
แล้วนับว่า สตริงนั้นมีเลขคู่อย่างละตัวกี่ตัว
เมื่อนำโปรแกรมนี้ไปทำงานแล้วป้อน 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) บรรทัดที่ 3
B) บรรทัดที่ 2
C) บรรทัดที่ 4
D) บรรทัดที่ 1
E) ทำงานได้ปกติ ไม่เกิด error |
<14> |
ให้ 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) บรรทัด IV
B) บรรทัด I
C) บรรทัด II
D) บรรทัด III
E) บรรทัด V |
<15> |
ให้ y เก็บเลขปี ค.ศ. เดือน ก.พ. มี 29 วัน เมื่อ
- y หารด้วย 4 ลงตัว แต่หารด้วย 100 ไม่ลงตัว
- ยกเว้นกรณีที่ y หารด้วย 400 ลงตัว ก็มี 29 วัน
คำสั่งใดที่หาจำนวนวันในเดือนกุมภาพันธ์
ของปี ค.ศ. y ไม่ถูกต้อง
A) if (y%4==0 and y%100!=0) or y%400==0:
d = 29
else:
d = 28
B) d = 28
if y%400==0 or y%4==0 and y%100!=0:
d = 29
C) d = 29
if (y%4!=0 or y%100==0) and y%400!=0:
d = 28
D) มีถูก 2 ข้อ ผิด 1 ข้อ
E) ข้อ A, B และ C ถูกหมด |