728x90

1. 산술 연산자가 아닌 것을 모두 고르시오.

+, -, *, ^, ~, /, //, %, **, &, ***, ?

2. 다음 계산식의 결과를 예측하시오.

a, b = 10, 20

① a + b

30

② a - b

-10

③ a % b

10

④ a // b

0

3. 다음 계산식의 결과를 예측하시오.

a, b, c = 1, 2, 3

① a + b % c

3

② a * b - c

-1

③ a / b * c

1.5

4. 문자열을 숫자로 변환한 후 계산하는 식이다. 오류가 발생하는 것을 고르고, 오류가 발생하지 않도록 수정하시오.

s1, s2, s3 = "111", "111.11", "99999999999999"

① int(s1) + 111.11

② int(s2) + 111.11 int -> float으로 변환, float(s2) + 111.11

③ int(s3) + 111.11

5. 대입 연산자의 활용이다. 결과를 예측하시오.

① a, b = 10, 20; a += b; print(a)

30

② a, b = 10, 20; a %= b; print(a)

10

③ a, b = 10, 20; a //= b; print(a)

0​

6. 논리 연산자가 아닌 것을 모두 고르시오.

① and

② or

③ not

④ nor

⑤ xor

⑥ equal

7. 다음 비트 연산자의 활용 결과를 16진수로 예측하시오.

0xFF00 & 0x00FF

0xFF00 | 0x00FF

0xFF00 ^ 0x00FF

0x0000

0xffff

0xffff

8. 다음 비트 시프트 연산자의 활용 결과를 예측하시오.

a = 100; a = a << 100; a = a >>100; print(a)

100

9.다음과 같이 입력한 금액을 5만원, 1만원, 5000원, 1000원, 500원, 100원, 50원, 10원 동전으로 교환하는 프로그램을 작성하시오.

## 전역 변수 선언 부분 ##
money, c50000, c10000, c5000, c1000, c500, c100, c50, c10 = 0,0,0,0,0,0,0,0,0
money = int(input('교환할 돈은 얼마?'))

##메인코드부분##
c50000 = money//50000
money %= 50000

c10000 = money//10000
money %= 10000

c5000 = money//5000
money %= 5000

c1000 = money//1000
money %= 1000

c500 = money//500
money %= 500

c100 = money//100
money %= 100

c50 = money//50
money %= 50

c10 = money//10
money %= 10

print("50000원권 %d장, 10000원권 %d장, 5000원권 %d장, 1000원권 %d장" % (c50000, c10000, c5000, c1000))
print("그리고 동전은 500원 %d개, 100원 %d개, 50원 %d개, 10원 %d개 입니다." % (c500, c100, c50, c10))
print("바꾸지 못한 돈 ==> %d 원" % money)

출력 결과값

10. 115쪽의 [응용예제 02]를 활용해 비트 논리곱을 구현하려고, 숫자를 2개 입력 받아서 각 숫자에 대한 2진수와 비트 논리곱의 결과 2진수를 출력하는 프로그램을 작성하시오. 예로 123과 456을 입력하면 1111011&111001000의 결과 1001000이 다음과 같이 차례로 출력 된다.

import turtle

##전역 변수 부분##
num1, num2, result = 0, 0, 0
swidth, sheight = 1000, 300
curX, curY = 0, 0

##2진수를 거북이로 표현하는 함수부분##
def binary(Bin, num):
    curX = swidth / 2
    for i in range(len(Bin) - 2): ##원래의 메인부분에서 실제 거북이를 나타내는 부분만, 가져오는 부분##
        turtle.goto(curX, curY)
        if num & 1:
            turtle.color('red') #num값이 1일때 빨간색이 출력되도록 지정
            turtle.turtlesize(2) #거북이 사이즈가 2가 되도록 설정
        else:
            turtle.color('blue') #num값이 1이 아닐때, 즉 0일때 파란색 거북이가 출력
            turtle.turtlesize(1) #거북이 사이즈가 1이 되도록 설정
        turtle.stamp()
        curX -= 50
        num >>= 1

#메인 코드 부분##
if __name__ == "__main__":
    turtle.title('거북이로 두 숫자 비트 논리곱(&) 연산하기') #제목을 지정해주고
    turtle.shape('turtle') #거북이 모양을 지정해주고
    turtle.setup(width=swidth + 50, height=sheight + 50) #설정값을 지정 해준다.
    turtle.screensize(swidth, sheight)
    turtle.penup()
    turtle.left(90)

    num1 = int(input("숫자1을 입력하세요 : "))
    num2 = int(input("숫자2을 입력하세요 : "))
    binary1 = bin(num1)
    binary2 = bin(num2)
    result = num1 & num2

    curY = 50
    binary(bin(num1), num1)
    curY = 0
    binary(bin(num2), num2)
    curY = -50
    binary(bin(result), result)

turtle.done()
 

출력결과 값

 

 

728x90