본문 바로가기
방통대

방통대 파이썬 프로그래밍 기말시험 대비 기초 연습문제 풀이 및 해설

by 4.5/4.5 2024. 5. 20.
반응형

컴퓨터의 이해 

 

 

1. 다음과 같이 어떤 문제(라면끓이기)를 해결하기 위한 절차를 무엇이라고 하는가?

 

 

1) 프로그래밍 언어

2) 레시피

3) 컴파일러 또는 인터프리터

4) 알고리즘 

 

정답: 4

 

 

 

2. ‘방송대 컴퓨터과학과의 파이썬 프로그래밍 기초는 전공 과목이다’ 라고 할 때, ‘전공’이라는 설명은 어떤 유형의 데이터에 속하는가?

 

1) 연속적 데이터

2) 범주적 데이터

3) 정보

4) 반정형 데이터 

 

정답: 2 

해설: 정답은 2번, 범주적 데이터이다.

'전공'이라는 설명은 특정 범주나 집합을 나타내는 범주적 데이터에 속한다. 범주적 데이터는 서로 다른 그룹이나 카테고리로 구분될 수 있는 데이터를 의미한다. 여기서 '전공'은 여러 전공 중 하나를 의미하므로 범주적 데이터에 해당한다. 

다른 선택지 설명:
1번 연속적 데이터는 숫자나 시간과 같이 연속적인 값을 가지는 데이터를 의미하며, '전공'과는 관련이 없다. 3번 정보는 데이터가 가공되어 의미를 가지는 것을 말하며, 구체적인 데이터 유형을 설명하지 않는다. 4번 반정형 데이터는 구조가 없는 데이터와 구조화된 데이터의 중간 형태로, '전공'이라는 설명과는 관계가 없다.

 

 

 

3. 표현의 모호성을 제거하고 자연어와 유사한 형태의 문법을 갖는 프로그래밍 언어는?

 

1) 1세대 프로그래밍 언어

2) 2세대 프로그래밍 언어

3) 3세대 프로그래밍 언어

4) 4세대 프로그래밍 언어

 

정답: 3 

해설: 표현의 모호성을 제거하고 자연어와 유사한 형태의 문법을 갖는 프로그래밍 언어는 3세대 프로그래밍 언어이다. 3세대 프로그래밍 언어는 고급 언어로, 사람이 이해하기 쉬운 문법과 구조를 갖추고 있어 코드 작성과 유지보수가 용이하다. 반면에 1세대 프로그래밍 언어는 기계어로, 0과 1로 이루어진 명령어를 사용하여 인간이 이해하기 매우 어렵다. 2세대 프로그래밍 언어는 어셈블리어로, 기계어에 비해 다소 나은 수준이지만 여전히 저급 언어에 속한다. 4세대 프로그래밍 언어는 3세대보다 더 높은 추상화를 제공하며, 데이터베이스 관리, 보고서 생성 등 특정 목적을 위해 설계된 언어이다.

 

 

 

컴퓨터의 구성 

 

1. 폰 노이만 구조에 기반한 컴퓨터의 구성요소에 포함되지 않는 것은?

 

1) 입력장치

2) 출력장치

3) 기억장치

4) 판단장치

 

정답: 4

해설: 폰 노이만 구조의 컴퓨터는 입력장치, 출력장치, 기억장치, 연산장치, 제어장치로 구성된다. 판단장치라는 구성요소는 존재하지 않는다. 입력장치와 출력장치는 사용자가 데이터를 입력하고 결과를 출력하는 장치이다. 기억장치는 데이터를 저장하는 역할을 한다.

 

 

 

2. 다음 그림과 같이 안경 또는 헬멧과 같은 장치를 머리에 착용하여 현실 세계와는 차단된 가상현실을 제공하는 장치는?

 

 

1) HMD

2) HUD

3) SSD

4) ROM 

 

정답: 1 

해설: HMD(Head Mounted Display)는 머리에 착용하는 디스플레이 장치로, 사용자가 몰입형 가상현실을 체험할 수 있게 한다. HUD(Head-Up Display)는 사용자가 고개를 숙이지 않고도 정보를 볼 수 있게 하는 장치이며, SSD(Solid State Drive)와 ROM(Read-Only Memory)는 저장 장치로 가상현실 장치와는 관련이 없다.

 

 

 

3. 부가적인 기능을 제공하여 사용자가 컴퓨터를 효율적이고 편리하게 관리할 수 있도록 지원해주는 소프트웨어는?

1) 운영체제

2) 유틸리티

3) 커널

4) 컴파일러 

 

정답: 2 

해설: 정답은 2) 유틸리티이다. 유틸리티 소프트웨어는 시스템의 유지보수와 최적화를 돕기 위해 다양한 부가 기능을 제공하여 사용자가 컴퓨터를 효율적으로 관리할 수 있도록 지원한다. 운영체제는 하드웨어와 소프트웨어 간의 인터페이스 역할을 하며 시스템 자원을 관리하는 기본 소프트웨어이다. 커널은 운영체제의 핵심 부분으로, 시스템의 모든 작업을 관리하고 하드웨어와의 직접적인 통신을 담당한다. 컴파일러는 프로그래밍 언어의 소스 코드를 기계어로 번역하여 실행 가능한 프로그램으로 만드는 도구이다.

 

 

 

 

파이썬의 이해 

 

1. 다음 중 파이썬의 장점이라고 할 수 없는 것은?

1) 뛰어난 생산성

2) 빠른 실행 속도

3) 대형 개발자 커뮤니티

4) 직관적 문법 

 

정답: 2

해설: 파이썬은 생산성이 뛰어나고, 대형 개발자 커뮤니티를 보유하며, 직관적인 문법을 가지고 있다. 그러나 빠른 실행 속도는 파이썬의 장점으로 꼽히지 않는다. 파이썬은 인터프리터 언어이기 때문에 실행 속도가 컴파일 언어에 비해 느리다.

 

 

 

2. 파이썬 프로그램이 플랫폼 독립적으로 실행될 수 있도록 (가)와 같이 파이썬 인터프리터가 동작하는 과정에서 중간 언어로 만드는 것은? 

 

 

 

1) 바이트 코드
2) 어셈블러 코드
3) 파이썬 소스 코드
4) 기계어 코드

 

정답: 1

해설: 파이썬 인터프리터는 파이썬 소스 코드를 바이트 코드로 변환한 후, 이를 실행한다. 바이트 코드는 플랫폼 독립적이기 때문에, 파이썬 프로그램이 다양한 운영체제에서 실행될 수 있게 한다. 어셈블러 코드와 기계어 코드는 각각 특정 하드웨어에 종속적이다.

 

 

3. 파이썬 프로그래밍 환경 중 오픈소스이며 문서화가 쉽고 전통적인 소스코드-컴파일-실행 방식에서 벗어나 웹 기반 대화형 개발 및 실행 환경을 제공하는 것은?

 

1) IDLE

2) VS Code

3) 주피터 노트북

4) 코랩 

 

정답: 3

해설: 주피터 노트북은 오픈소스로, 웹 기반 대화형 개발 및 실행 환경을 제공한다. 사용자는 코드와 함께 설명을 작성할 수 있어 문서화가 용이하다. IDLE은 기본 제공 편집기이며, VS Code는 코드 편집기이고, 코랩은 구글에서 제공하는 주피터 노트북의 클라우드 버전이다.

 

 

 

 

 

파이썬 시작하기 

1. 다음과 같은 실행 결과를 얻기 위한 파이썬 코드로 올바른 것은?

 

'Computer science is the best'
'Our goal is to predict the future'

 

1)
print("Computer science is the best")
    print("Our goal is to predict the future")

2)
print("Computer science is the best")
print("Our goal is to predict the future")

3)
print(Computer science is the best)
print(Our goal is to predict the future)

4)
"Computer science is the best"
"Our goal is to predict the future"

 

정답: 2

해설: 정답은 2번이다. 

1번은 print 함수의 두 번째 줄이 들여쓰기 되어 있어 문법 오류가 발생한다. 3번은 문자열을 큰따옴표로 감싸지 않아 SyntaxError가 발생한다. 4번은 문자열이 출력되지 않고 단순히 문자열 객체로 처리된다. 2번은 두 개의 print 함수가 제대로 작동하여 문제에서 요구하는 결과를 출력한다.

 

 

 

 

 

 

2. 다음 중 식별자로 사용할 수 없는 것은?

1) _pythonic
2) graudate130
3) 270mm
4) 부피

 

정답: 3

해설: 식별자는 문자, 숫자, 밑줄(_)로 구성될 수 있지만 숫자로 시작할 수 없다. 3번 항목인 "270mm"는 숫자로 시작하기 때문에 유효한 식별자가 아니다. 나머지 선택지는 모두 식별자로 사용할 수 있는 형식을 가지고 있다.

 

 

 

3. 다음 프로그램의 실행 결과로 올바른 것은?

apple = 2
banana = 3
cranberry = 1
detox = (banana ** 2 - 4 * apple * cranberry) // apple
print(detox)

 

1) 0

2) 1

3) 9

4) 3

 

정답: 1

해설: 식을 계산하면 detox = (3 ** 2 - 4 * 2 * 1) // 2가 된다. 이는 detox = (9 - 8) // 2로 계산되며, 결과는 1 // 2가 된다. 정수 나눗셈의 결과로 0이 된다. 따라서 정답은 0이다. 

 

 

 

 

 

 

 

순차 구조 

 

1. 다음은 어떤 제어구조에 대한 설명인가?

특정 영역 내의 명령문에 대한 실행 여부를 프로그램 실행 과정 중 조건에 따라 결정하는 구조

 

1) 선택

2) 반복

3) 순차

4) 명령 

 

정답: 1

해설: 특정 조건에 따라 명령문을 실행할지 결정하는 구조는 선택 구조이다. 반복은 조건에 따라 명령문을 반복하여 실행하며, 순차는 명령문을 순서대로 실행한다. 명령은 특정 기능을 수행하는 단일 명령문을 의미한다.

 

 

2. number 변수에 저장되어 있는 정수를 사용하여 “상자에사과가n개들어있습니다.”라는 메시지를 출력하려고 한다. 올바른 명령문은? (단, n은 number 변수에 저장된 정수를 의미한다.)

 

1) print("상자에", "사과가", number, "개", "들어있습니다.")
2) print("상자에사과가number개들어있습니다.")
3) print("상자에", "사과가", number, "개", "들어있습니다.", end="")
4) print("상자에", "사과가", number, "개", "들어있습니다.", sep="")

 

 

정답: 4

해설: print 함수는 기본적으로 각 항목 사이에 공백을 추가한다. sep=""를 사용하면 항목 사이에 공백 없이 출력할 수 있다. 1번은 공백이 포함되어 잘못되었고, 2번은 number 변수를 문자열로 인식해 잘못된 문장이 된다. 3번은 출력 후 줄 바꿈을 방지하는 옵션이지만 출력 형식이 요구사항과 맞지 않다.

 

 

3. ‘논리적으로 실행 불가능한 명령문 작성 시 발생’ 오류를 무엇이라고 하는가?

1) 의미 오류

2) 실행 오류 

3) 구문 오류 

4) 구조 오류 

 

정답: 2

해설: 실행 오류는 프로그램이 실행되는 동안 발생하는 오류로, 논리적으로 실행 불가능한 명령문에서 주로 발생한다. 의미 오류는 프로그램이 의도한 대로 동작하지 않는 오류이며, 구문 오류는 문법적으로 잘못된 명령문에서 발생한다. 구조 오류는 프로그램의 구조적 문제로 인한 오류를 의미한다.

 

 

 

 

 

 

선택 구조 

 

1. 파이썬에서 명령어의 논리적 집합인 명령 블록을 표현하기 위한 방법은?

 

1) 불리언식

2) 들여쓰기

3) 콜론(:)

4) if 명령어 

 

정답: 2
해설: 파이썬에서는 들여쓰기를 통해 명령 블록을 표현한다. 콜론(:)은 조건문이나 함수 정의 등에서 블록의 시작을 알리지만, 실제 블록의 범위는 들여쓰기로 결정된다. 불리언식과 if 명령어는 블록 표현과는 관련이 없다.

 

 

2. 다음은 온도(temp)가 0 이하일 경우 “겨울입니다.”를 출력하는 프로그램의 일부이다. 밑줄 친 빈 칸에 들어갈 명령문은?

 

    temp = int(input("온도를 입력하세요: "))

    (                    )
    
        print("겨울입니다.")

1) temp > 0
2) temp <= 0
3) if temp > 0
4) if temp <= 0 :

 

정답: 4
해설: 파이썬에서는 조건문을 작성할 때 if를 사용하며, 조건식 끝에 콜론(:)을 붙여야 한다. 따라서 정답은 "if temp <= 0 :"이다. 다른 선택지는 조건문을 완성하지 않거나, 조건이 맞지 않다.

 

 

3. 다음은 사용자가 입력한 수가 3과 5의 공배수일 경우 “3과 5의 공배수입니다”를, 아닐 경우 “3과 5의 공배수가 아닙니다.”를 출력하는 프로그램일 일부이다. 밑줄 친 빈칸에 들어갈 연산자는?

 

guess = int(input("숫자를 입력하세요: "))

if guess % 3 == 0 (____) guess % 5 == 0 :
    print("3과 5의 공배수입니다.")
else:
    print("3과 5의 공배수가 아닙니다.")

 

 

1) and

2) or

3) True

4) False

 

정답: 1

해설: 두 조건이 모두 참일 때만 참이 되려면 논리 연산자 and를 사용해야 한다. or는 둘 중 하나만 참이어도 참이 되므로 틀리다. True와 False는 조건식에 적절하지 않다.

 

 

 

반복 구조 

 

 

1. 계수 제어 반복 구조에서 특정 반복 횟수와 반복 시 계수의 값을 정하기 위해 사용하는 데이터 타입은?

1) 반복 구조 설계 전략

2) 조건 제어 반복 구조 

3) 시퀀스

4) 식별자 

 

정답: 3
해설: 계수 제어 반복 구조는 반복 횟수를 명확히 지정하고, 계수를 통해 반복을 제어하는 구조이다. 이때 반복할 값을 나열한 자료형을 사용하여야 하므로, 데이터 타입으로 시퀀스를 사용한다. 다른 선택지인 반복 구조 설계 전략, 조건 제어 반복 구조, 식별자는 계수 제어 반복 구조와 관련이 없다.

 

 

2. 다음과 같이 반복 구조 내부에 또 다른 반복 구조가 포함되어 실행 흐름을 만드는 구조를 무엇이라고 하는가? 

 

 

1) 이분 선택 구조
2) 조건 제어 반복 구조
3) 계수 제어 반복 구조
4) 중첩 반복 구조

 

정답: 4

해설: 반복 구조 내부에 또 다른 반복 구조가 포함된 형태를 중첩 반복 구조라 한다. 이분 선택 구조는 조건에 따라 두 갈래로 나뉘는 선택 구조이고, 조건 제어 반복 구조는 특정 조건이 참일 때 반복하는 구조이며, 계수 제어 반복 구조는 반복 횟수를 명확히 지정하는 구조이다.

 

 

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

for i in range(1, 11): 
	print(i, end = " ")

1) 2 3 4 5 6 7 8 9 10 11
2) 2 3 4 5 6 7 8 9 10
3) 1 2 3 4 5 6 7 8 9 10 11
4) 1 2 3 4 5 6 7 8 9 10

 

정답: 4

해설: range(1, 11)은 1부터 10까지의 숫자를 생성하는 함수이다. 따라서 반복문은 1부터 10까지의 값을 출력하게 되며, 각 값을 출력할 때 공백으로 구분된다. 

 

 

 

 

컴퓨터의 이해 ~ 반복 구조 

 

 

1. 파이썬에서 데이터의 데이터 타입은 다른 데이터 타입으로 변경이 불가능하다.  

 

1) O

2) X

 

정답: 2

해설: 파이썬에서는 데이터 타입을 자유롭게 변경할 수 있다. 예를 들어, 정수를 문자열로 변경하거나 문자열을 리스트로 변환하는 등의 형 변환이 가능하다. 따라서 데이터 타입의 변경이 불가능하다는 설명은 틀린 것이다.

 

2. 파이썬은 히도 판로쉼이 주도하여 발전하고 있다. 

 

1) O

2) X

 

정답: 2

해설: 커뮤니티에 의해 발전한다. 

 

3. print(hei_list[2])의 실행 결과값은 14이다. 

 

 

1) O

2) X

 

정답: 1

 

 

 

 

함수 

 

 

 

1. 다음 중 반환값에 따른 함수의 종류를 구분할 때, 나머지와 다른 하나는? 

1) print
2) input
3) format
4) int

 

정답: 1

해설: print 함수는 반환값이 None이다. 반면, input, format, int 함수는 각각 문자열, 형식화된 문자열, 정수를 반환한다. 따라서 print 함수만 반환값이 없어 나머지와 다르다.

 

 

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

temp, season = 27, "summer"
season, temp = temp, season
print(season)

 

1) 'summer'

2) 27

3) season

4) print 

 

정답: 2

해설: 첫 번째 줄에서 temp는 27, season은 "summer"로 초기화된다. 두 번째 줄에서 temp와 season의 값을 서로 교환한다. 따라서 season은 27이 되고, temp는 "summer"가 된다. print(season)을 실행하면 27이 출력된다. 

 

 

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

x = 1

def updatex():
    x = 2
    x = x + 1

updatex()

print(x)

 

1) 1

2) 2

3) 3

4) 오류발생 

 

정답: 1

해설: 함수 updatex 내의 x는 지역 변수이다. 함수 외부의 x와는 다른 변수이므로 updatex 함수의 실행은 함수 외부의 x에 영향을 주지 않는다. 따라서 print(x)를 실행하면 초기화된 값인 1이 출력된다.

 

 

 

 

객체지향 

 

1. 다음 중 객체지향 패러다임의 특징이라고 할 수 없는 것은?

1) 추상화

2) 캡슐화

3) 상속

4) 개방화 

 

정답: 4

해설: 객체지향 패러다임의 주요 특징은 추상화, 캡슐화, 상속, 다형성이다. 개방화는 객체지향의 특징에 해당하지 않는다. 개방화는 특정한 개념이나 패러다임을 설명하는 용어가 아니다.

 

 

2. 다음 코드의 빈 칸에 공통으로 들어가야 하는 것은?

 

# 원뿔 클래스 정의
class Cone :
    def __init__(빈칸, radius = 20, height = 30):
        self.r = radius
        self.h = height

    def get_vol(빈칸):
        return 1/3 * 3.14 * self.r ** 2 * self.h

    def get_surf(빈칸):
        return 3.14 * self.r ** 2 + 3.14 * self.r * self.h

 

1) 'self'
2) self
3) access
4) mutate


정답: 2해설: 클래스 메서드의 첫 번째 매개변수는 항상 self이어야 한다. 이는 해당 메서드가 인스턴스 메서드임을 나타내며, 인스턴스의 속성과 메서드에 접근할 수 있게 한다. 따라서 빈 칸에 공통으로 들어가야 하는 것은 self이다.

 

 

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

 

"I love python".replace("o", "i").upper()

 

1) "I love python"
2) "I LOVE PYTHON"
3) "I LIVE PYTHIN"
4) "I live pythin"

 

정답: 3

해설: 문자열 "I love python"에서 replace 메서드를 사용하여 "o"를 "i"로 바꾸면 "I live pythin"이 된다. 이어서 upper 메서드를 사용하면 "I LIVE PYTHIN"이 된다. 정답은 "I LIVE PYTHIN"이다.

 

 

 

 

모듈 

 

 

 

1. 다음은 무엇에 대한 설명인가?

 

클래스, 함수, 상수(변수)의 집합

 

1) 라이브러리
2) 메소드
3) 네임스페이스
4) 모듈

 

정답: 4

해설: 클래스, 함수, 상수(변수)의 집합은 모듈이다. 모듈은 코드의 재사용성과 관리의 용이성을 위해 사용된다. 다른 선택지는 각기 다른 개념을 의미하며, 라이브러리는 여러 모듈을 포함할 수 있고, 메소드는 클래스 내의 함수이며, 네임스페이스는 이름의 충돌을 피하기 위한 범위를 의미한다.

 

 

2. 다음 중 모듈 사용과 관련된 명령어가 아닌 것은?

 

1) del
2) import
3) module
4) from


정답: 3해설: 모듈 사용과 관련된 명령어는 import와 from이다. import는 모듈을 불러올 때, from은 모듈에서 특정 요소를 가져올 때 사용된다. del은 객체를 삭제할 때 사용되는 명령어이며, module은 파이썬의 명령어가 아니다.

 

 

 

3. (a)에서 option 리스트의 값 중 하나가 무작위로 선택되어 com에 할당하도록 빈 칸 □에 들어갈 알맞은 코드는?

 

import random
options = ["가위", "바위", "보"]
user = input("가위, 바위, 보를 입력: ")
com = random.choice(options)

if user == com:
    print("비겼다!")
elif user == "바위" and com == "가위":
    print("이겼다!")
elif user == "보" and com == "바위":
    print("이겼다!")
elif user == "가위" and com == "보":
    print("이겼다!")
else:
    print("졌다!")

 

 

 

정답: 2

해설: random.choice(options)는 options 리스트에서 무작위로 하나의 요소를 선택하여 com에 할당하는 코드이다. 다른 선택지는 이 맥락에 맞지 않는다.

 

 

 

 

파일 

 

1. 데이터를 구성하는 개별 문자를 인코딩 체계를 통해 바이트로 변경하여 연속적으로 저장한 파일의 종류는?

 

1) 바이트 파일

2) 바이너리 파일

3) 텍스트 파일

4) base64 파일 

 

정답: 3

해설: 텍스트 파일은 데이터를 구성하는 개별 문자를 인코딩 체계를 통해 바이트로 변환하여 저장한 파일이다. 바이너리 파일은 비텍스트 데이터를 저장하는 파일이다. 바이트 파일과 base64 파일은 정답이 아니다.

 

 

2. 시퀀스에서 각각의 항목을 순서대로 한 번씩만 방문하는 과정은?

1) 순회

2) 검사

3) 회진

4) 샘플링

 

정답: 1

해설: 순회는 시퀀스의 각 항목을 순서대로 한 번씩 방문하는 과정이다. 검사는 특정 조건을 확인하는 과정이고, 회진은 의료 용어로 환자를 돌보는 과정이다. 샘플링은 일부 항목만 선택하는 것이다.

 

 

3. 파일 python.txt에 텍스트 데이터를 추가하려고 할 때 빈 칸에 들어가야 할 것은?

a_fp = open("python.txt", ____)
a_fp.write("\nby CS\n")
a_fp.close()

 

1) "w"
2) "r"
3) "x"
4) "a"

 

 

정답: 4

해설: "a"는 파일에 데이터를 추가하는 모드이다. "w"는 기존 내용을 지우고 새로 쓰는 모드이고, "r"은 읽기 전용 모드이다. "x"는 파일이 없을 때만 새로 생성하는 모드이다.

 

 

 

 

실전 프로그래밍 1

 

1. 소프트웨어 개발 라이프라이클의 순서가 올바르게 나열된 것은?

 

1) 계획, 분석, 설계, 구현, 테스트, 유지보수
2) 유지보수, 구현, 설계, 테스트, 계획, 분석
3) 계획, 분석, 설계, 테스트, 유지보수, 구현
4) 설계, 계획, 분석, 구현, 유지보수, 테스트

 

정답: 1

해설: 소프트웨어 개발 라이프사이클(SDLC)은 체계적인 개발을 위해 단계별로 나눠진 과정이다. 올바른 순서는 계획, 분석, 설계, 구현, 테스트, 유지보수이다. 2번은 단계가 역순으로 되어 있고, 3번과 4번은 각 단계가 올바른 순서가 아니다.

 

 

2. 다음의 EDP 구동 구조에서 이벤트 발생 장치에 발생된 이벤트가 처리되기 전까지 저장되는 저장 구조는?

 

 

1) 이벤트 버퍼
2) 이벤트 메모리
3) 이벤트 큐
4) 이벤트 스토리지

 

정답: 3
해설: EDP(이벤트 주도 프로그래밍)에서는 이벤트가 발생하면 처리되기 전까지 이벤트 큐에 저장된다. 이벤트 버퍼는 일반적으로 임시 저장 공간을 의미하고, 이벤트 메모리와 이벤트 스토리지는 명확히 정의된 개념이 아니다.

 

 

3. 일괄적으로 모아놓은 대량의 데이터를 특정시간에 지정한 처리 방법에 따라 처리하는 프로그램은?

1) 크론 프로그램
2) 배치 프로그램
3) GUI 프로그램
4) 이벤트 기반 프로그램

 

정답: 2
해설: 배치 프로그램은 대량의 데이터를 일괄적으로 처리하는 프로그램이다. 크론 프로그램은 정해진 시간에 작업을 실행하지만, 일반적인 용어는 아니다. GUI 프로그램은 그래픽 사용자 인터페이스를 제공하는 프로그램이고, 이벤트 기반 프로그램은 이벤트가 발생할 때마다 처리하는 방식이다.

 

 

 

 

실전 프로그래밍 2

 

1. 다음 함수에서 0 또는 1의 난수 값이 생성되어 0, X가 반환될 수 있도록 random 모듈의 설명을 참조하여 빈칸에 들어갈 수 있는 표현을 작성하면?

 

import random

def select_first_player(self):
    if \_\_\_\_\_\_\_\_\_\_\_\_ == 0:
        return 'X'
    else:
        return '0'

 

1) random.random( )
2) random.randint(0, 1)
3) random.choice(0, 1)
4) random.sample(0, 1)

 

정답: 2
해설: random 모듈의 random.randint(0, 1) 함수는 0과 1 사이의 정수를 무작위로 생성하여 반환한다. 따라서 0 또는 1의 값이 생성될 수 있다. 이 함수가 0을 반환하면 'X'가, 1을 반환하면 '0'이 반환된다. 다른 선택지들을 살펴보면, random.random()은 0과 1 사이의 실수 값을 반환하고, random.choice(0, 1)과 random.sample(0, 1)은 잘못된 사용법으로, 0 또는 1을 무작위로 선택하는 기능을 제공하지 않는다.

 

 

 

2. 다음 2차원 리스트에서 파란색 원소에 접근하기 위한 표현은?

 

 

 

 

1) [2][3]
2) distance[2][3]
3) distance[3][4]
4) distance(3, 4)

 

정답: 2

 

 

3. 다음은 dist라는 이름의 0으로 초기화된 3 X 3 크기의 2차원 리스트 생성하는 코드이다. 빈칸에 공통으로 들어갈 표현은?

 

dist = ________________

for i in range(3):
    row = _____________
    for j in range(3):
        row.append(0)
    dist.append(row)

 

1) i
2) j
3) 3
4) [ ] 또는 list( )

 

정답: 4

해설: 2차원 리스트를 초기화하기 위해 빈 리스트가 필요하다. dist는 3개의 행을 포함하는 리스트이며, 각 행은 다시 3개의 열을 포함하는 리스트이다. 따라서 빈 리스트를 만들어야 한다. 첫 번째 빈칸에는 dist를 빈 리스트로 초기화하기 위해 "[ ]" 또는 "list()"가 들어가야 하고, 두 번째 빈칸에는 각 행을 빈 리스트로 초기화하기 위해 동일하게 "[ ]" 또는 "list()"가 들어간다. 다른 선택지들인 i, j, 3은 리스트 초기화에 적합하지 않다.

 

 

함수 ~ 실전 프로그래밍 2 

 

1. 다음과 같은 형식으로 실수를 출력할 때, 숫자 앞에 삽입된 공백(스페이스)의 개수는?  (숫자만 입력)

 

format(3.141592, ">20.3f")

 

주관식 정답 : 15 

해설: format(3.141592, ">20.3f") 함수는 소수점 세 자리까지 표시되는 3.142를 총 20자리 공간에 오른쪽 정렬로 출력한다. 전체 길이 20자리 중 3.142는 소수점을 포함한 5자리이므로, 앞에 삽입되는 공백의 개수는 15개이다.

 

 

 

2. private 데이터 필드에 값을 설정하는 메소드를 접근자(accessor)라고 한다.

 

1) O
2) X

정답: 2
해설: private 데이터 필드에 값을 설정하는 메소드는 설정자(mutator) 또는 세터(setter)라고 한다. 접근자(accessor) 또는 게터(getter)는 필드 값을 반환하는 메소드를 의미한다.

 

 

3. 다음은 객체의 생성 과정을 도식화한 것이다. 빈 칸에 들어갈 알맞은 말은?

 

1) 초기자 호출
2) private 데이터 필드 생성
3) self 매개변수 전달
4) 객체 참조 변수 생성

 

정답: 1

 

 

반응형