파이썬 객관식 심화 — SET 08¶
이름: ____________ 점수: _____ / 100 난이도: ★★★★★
각 코드의 실행 결과 또는 옳은 설명을 보기에서 하나 고르세요. (문항당 10점, 범위: 1~8장 종합)
1. (자료형) 다음 코드의 출력은?¶
print(int(str(5) + str(2)) + 1)
① 53 ② 8 ③ 521 ④ 52 ⑤ Error
2. (연산자) 다음 코드의 출력은?¶
print(10 // 3 == 3 and 10 % 3 == 1)
① False ② True ③ Error ④ 1 ⑤ None
3. (while) 다음 코드의 출력은?¶
found = False
n = 2
while n <= 20 and not found:
if n * n > 50:
found = True
else:
n += 1
print(n)
① 7 ② 8 ③ 21 ④ 50 ⑤ 무한 루프
4. (for) 다음 코드의 출력은?¶
total = 0
for i in range(1, 6):
for j in range(1, 6):
if (i + j) % 2 == 0:
continue
total += 1
print(total)
① 12 ② 13 ③ 25 ④ 10 ⑤ 6
5. (함수) 다음 코드의 출력은?¶
def f(n):
if n <= 0:
return 0
return n + f(n - 2)
print(f(7))
① 12 ② 16 ③ 28 ④ 9 ⑤ Error
6. (클래스) 다음 코드의 출력은?¶
class Stack:
def __init__(self):
self.data = []
def push(self, x):
self.data.append(x)
return self
s = Stack()
s.push(1).push(2).push(3)
print(s.data)
① [1, 2, 3] ② [3] ③ [1] ④ Error ⑤ None
7. (예외 처리) 다음 코드의 출력은?¶
def f(n):
out = []
try:
out.append(10 // n)
except ZeroDivisionError:
out.append(-1)
else:
out.append(99)
finally:
out.append(0)
return out
print(f(2))
① [5, 0] ② [5, 99, 0] ③ [5, 99] ④ [99, 0] ⑤ [5, -1, 0]
8. (모듈) 다음 코드의 출력은?¶
import math
print(math.floor(math.sqrt(50)))
① 7 ② 8 ③ 7.07 ④ 25 ⑤ Error
9. (리스트) 다음 코드의 출력은?¶
a = [1, 2, 3, 4]
b = a[:]
b.append(5)
print(len(a), len(b))
① 5 5 ② 4 5 ③ 4 4 ④ 5 4 ⑤ Error
10. (딕셔너리) 다음 코드의 출력은?¶
pairs = [("a", 1), ("b", 2), ("a", 3), ("b", 4)]
groups = {}
for k, v in pairs:
if k not in groups:
groups[k] = []
groups[k].append(v)
print(groups)
① {'a': [1], 'b': [2]} ② {'a': [1, 3], 'b': [2, 4]} ③ {'a': [1, 3, 2, 4]} ④ {'a': 4, 'b': 6} ⑤ Error