콘텐츠로 이동

하나고 파이썬 기말 예상문제 SET 02

이름: ____________ 점수: _____ / 100 난이도: 조금 어려움

1-16번은 객관식, 17-20번은 단답형입니다. 객관식은 가장 알맞은 보기를 하나 고르세요.


객관식

1. 다음 코드의 출력으로 옳은 것은?

def f(x):
    print(x)
    return x + 1

print(f(1) + f(2))

1 다음 2 다음 5
2 다음 1 다음 5
1 다음 3
5만 출력된다
TypeError

2. 다음 코드의 실행 결과는?

x = 5

def power(y):
    x **= y
    return x

print(power(2))

25
5
10
UnboundLocalError
NameError

3. 다음 코드의 출력은?

x = 10

def f():
    global x
    x += 10
    return x

print(f())
print(x)

10 다음 10
20 다음 10
20 다음 20
None 다음 20
UnboundLocalError

4. 다음 코드의 출력은?

def make(a, b=2, c=3):
    return a + b * c

print(make(1))
print(make(1, 4))
print(make(1, 4, 5))

6 다음 12 다음 20
7 다음 13 다음 21
7 다음 7 다음 7
1 다음 4 다음 5
TypeError

5. 다음 코드의 출력 순서로 옳은 것은?

def say():
    print("A")

print("B")
say()

A 다음 B
B 다음 A
A만 출력된다
B만 출력된다
⑤ 함수 정의 시점에 A가 출력된다

6. 다음 코드의 출력은?

from random import randint
print(randint(1, 1))

0
1
2
NameError
ModuleNotFoundError

7. 다음 코드의 실행 결과는?

from random import randint
print(random.randint(1, 1))

1
0
NameError
AttributeError
TypeError

8. 다음 코드의 출력은?

A = "0"
B = 0
print(A == B)
print(A is B)

True 다음 True
True 다음 False
False 다음 True
False 다음 False
TypeError

9. 다음 코드의 출력은?

class Person:
    def __init__(self, name, age, pet=None):
        self.name = name
        self.age = age
        self.pet = pet

p = Person("Hana", 17)
print(p.pet)

cat
17
Hana
None
NameError

10. 다음 코드의 출력은?

class Person:
    def __init__(self, name, age, pet=None):
        self.name = name
        self.age = age
        self.pet = pet

    def get_info(self):
        return f"{self.name}:{self.age}:{self.pet}"

p = Person("Hana", 17)
p.age += 1
print(p.get_info())

Hana:17:None
Hana:18:None
Hana:18:pet
name:age:pet
TypeError

11. 다음 코드의 실행 결과는?

class A:
    def f():
        return 1

a = A()
print(a.f())

1
None
TypeError
NameError
AttributeError

12. 2_function_test.pyhappy_dance(robot)에 대한 설명으로 옳은 것은?

def happy_dance(robot):
    for i in range(120):
        robot.turn_left()
        hana.set_pause(0.3)

① 항상 hana만 회전한다
② 인자로 받은 robot이 회전하고, pause 설정은 hana에 적용된다
robothana가 둘 다 120번씩 회전한다
robot은 문자열이어야 한다
return값은 120이다

13. 다음 코드의 실행 결과는?

scores = {"Kor": 80, "Eng": 90}
print(scores["Math"])

0
None
KeyError
NameError
TypeError

14. 다음 코드의 출력으로 옳은 것은?

scores = {"Kor": 80, "Eng": 90, "Math": 70}
for x in scores.keys():
    print(x)

80, 90, 70이 출력된다
Kor, Eng, Math가 출력된다
③ key와 value가 한 줄에 같이 출력된다
④ 평균이 출력된다
TypeError

15. 다음 코드의 출력은?

sentiment = {
    "negative": ["sad", "blue", "small", "exam", "bad"],
    "positive": ["happy", "great", "glad", "better", "saturday"]
}
print(sentiment["positive"][1])

happy
great
positive
blue
KeyError

16. 5_random_walk.py의 반복문에서 로봇이 시작하자마자 비퍼 위에 있다면 가장 먼저 일어나는 일은?

while True:
    if hana.on_beeper():
        break
    direction =  # 랜덤 방향 선택

① 랜덤 방향을 먼저 고른다
② 앞이 비었는지 먼저 검사한다
③ 즉시 break로 반복문을 빠져나간다
④ 비퍼를 내려놓는다
turn_left()를 세 번 실행한다


단답형

17. 빈칸에 들어갈 코드를 쓰시오.

def turn_right():
    hana.turn_left()
    hana.turn_left()
    hana.____()

18. 빈칸에 들어갈 값을 순서대로 쓰시오.

# add1.wld
start = (____, ____, "E")
target_beeper = (____, ____)

19. 빈칸에 들어갈 말을 쓰시오.

def BMI(h, w):      # h, w는 함수 정의의 ____
    return w / h**2

BMI(170, 80)        # 170, 80은 함수 호출의 ____

20. 빈칸에 들어갈 숫자를 순서대로 쓰시오.

def fahrenheit_to_celsius(F):
    return (F - ____) * 5 / ____