콘텐츠로 이동

하나고 파이썬 기말 예상문제 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
}