하나고 파이썬 기말 예상문제 SET 05¶
이름: ____________ 점수: _____ / 100 난이도: 조금 어려움
1-16번은 객관식, 17-20번은 코드 빈칸 채우기 단답형입니다.
객관식¶
1. 다음 코드의 출력은?¶
def f(x):
return x * 2 + 1
def g(x):
return x ** 2 - x
print(g(f(2)))
① 5
② 10
③ 20
④ 24
⑤ 30
2. 다음 코드의 실행 결과는?¶
x = 5
def f():
x = x + 1
return x
print(f())
① 5
② 6
③ None
④ UnboundLocalError
⑤ NameError
3. 다음 코드의 출력은?¶
x = 3
def f(x):
return x + 1
print(f(10))
print(x)
① 4 다음 3
② 11 다음 11
③ 11 다음 3
④ 3 다음 11
⑤ UnboundLocalError
4. 다음 코드의 출력으로 옳은 것은?¶
print(print("hi"))
① hi만 출력된다
② None만 출력된다
③ hi 다음 None
④ None 다음 hi
⑤ TypeError
5. 다음 코드의 출력은?¶
from math import sqrt
print(sqrt(16))
① 4
② 4.0
③ 16
④ NameError
⑤ ModuleNotFoundError
6. 다음 코드의 실행 결과는?¶
import math as m
print(math.sqrt(16))
① 4.0
② m.sqrt(16)
③ NameError
④ AttributeError
⑤ TypeError
7. 다음 코드의 출력은?¶
class Person:
def __init__(self, name, age, pet=None):
self.name = name
self.age = age
self.pet = pet
p1 = Person("Hana", 17, "cat")
print(p1.name)
print(p1.pet)
① Hana 다음 cat
② Hana 다음 None
③ 17 다음 cat
④ name 다음 pet
⑤ TypeError
8. self.name = name에 대한 설명으로 가장 옳은 것은?¶
① 지역 변수 name을 삭제한다
② 객체의 인스턴스 속성 name에 매개변수 값을 저장한다
③ 클래스 이름을 name으로 바꾼다
④ 모든 객체가 반드시 같은 이름을 공유하게 한다
⑤ 문자열만 저장할 수 있다
9. 다음 코드의 출력은?¶
class Car:
def display_info(self):
print("2026 Tayo Bus")
car1 = Car()
print(car1.display_info())
① 2026 Tayo Bus만 출력된다
② None만 출력된다
③ 2026 Tayo Bus 다음 None
④ Car 다음 2026 Tayo Bus
⑤ TypeError
10. 다음 코드의 출력은?¶
dictA = {"Kor": 80, "Eng": 90, "Math": 70, "Science": 100}
print(dictA["Kor"] + dictA["Eng"])
① KorEng
② 170
③ 8090
④ 80
⑤ KeyError
11. 다음 딕셔너리에서 "B"형 인원수는?¶
b_type_dict = {"A": 3, "AB": 3, "B": 4, "O": 5}
① 3
② 4
③ 5
④ 15
⑤ KeyError
12. 다음 코드의 출력은?¶
scores = {"Kor": 80, "Eng": 65, "Math": 70}
result = ["Pass" if x >= 70 else "Fail" for x in scores.values()]
print(result)
① ['Pass', 'Fail', 'Pass']
② ['Fail', 'Pass', 'Pass']
③ ['Kor', 'Eng', 'Math']
④ [80, 65, 70]
⑤ TypeError
13. 다음 코드의 출력은?¶
scores = {"Kor": 80, "Eng": 90}
for k in scores.keys():
print(k[0])
① K 다음 E
② 80 다음 90
③ Kor 다음 Eng
④ 0 다음 0
⑤ TypeError
14. Robot()에 대한 설명으로 가장 옳은 것은?¶
① Robot 클래스의 객체를 생성하는 생성자 호출이다
② 반드시 문자열 하나를 인자로 받아야 한다
③ Robot()은 딕셔너리 key이다
④ Robot()은 비퍼를 줍는 메서드이다
⑤ Robot()은 turn_left()와 같은 센서 함수이다
15. 다음 함수에 대한 설명으로 옳은 것은?¶
def turn_right():
hana.turn_left()
hana.turn_left()
hana.turn_left()
① 인자로 받은 모든 로봇을 오른쪽으로 돌린다
② 전역 이름 hana가 가리키는 로봇만 회전시킨다
③ turn_left()를 한 번만 실행한다
④ 왼쪽으로 270도 회전하므로 오른쪽 회전과 다르다
⑤ 반환값은 항상 "right"이다
16. 실제 escape() 코드에서 로봇이 반복문의 처음에 이미 (6, 4)에 있다면 가장 먼저 일어나는 일은?¶
while True:
if hana.get_pos() == (6, 4):
break
if hana.on_beeper():
hana.pick_beeper()
① 비퍼를 먼저 줍는다
② 오른쪽이 비었는지 먼저 검사한다
③ break가 실행되어 반복문을 빠져나간다
④ turn_around()을 실행한다
⑤ drop_beeper()를 실행한다
단답형¶
17. 빈칸에 들어갈 숫자를 순서대로 쓰시오.¶
def fahrenheit_to_celsius(F):
return (F - ____) * 5 / ____
18. 빈칸을 채워 딕셔너리를 완성하시오.¶
favorite_animal = {"cat": ____, "python": ____, "dog": ____}
# cat 2명, python 2명, dog 3명
19. 랜덤 방향 선택 코드가 되도록 빈칸을 채우시오.¶
import random
directions = [turn_right, hana.turn_left, turn_around]
direction = random.____(directions)
direction()
20. 실제 maze1.wld 기준으로 빈칸에 들어갈 좌표를 쓰시오.¶
beepers = {
____: 1
}