2008 대수능 9월 모의평가

직업탐구영역 프로그래밍과목 해설지

[정답]

문 항	1	2	3	4	5	6	7	8	9	10
정 답	④	⑤	④	③	④	⑤	③	①	②	④
문 항	11	12	13	14	15	16	17	18	19	20
정 답	⑤	③	④	③	②	⑤	①	①	③	②

[해설]

1. [정 답] ④

[해 설]

구조화 프로그래밍 기법에서 GOTO 문은 되도록 사용하지 않는다. 또한 개체지향 프로그래밍에서 프로그램의 구성단위는 메시지가 아니라 객체이다.

2. [정 답] ⑤

[해 설]

<보기>의 ㄱ은 온라인 기억장치이고, ㄴ은 비교 판단, ㄷ은 단말기의 시작과 종료, ㄹ은 입출력, ㅁ은 서류 매체를 통한 입출력, ㅂ은 변수의 초기화를 나타내는 기호이다. 다음 그림은 자주 사용하는 순서도 기호이다.

명칭	기호	의미
처리		산술 연산, 데이터의 이동, 편집 등의 처리
입출력		데이터의 입출력 기능을 표시
준비		처리전의 준비 및 선언
비교․판단		주어진 조건을 비교, 판단하여 흐름을 결정
단말기		처리의 시작과 종료를 표시
자기테이프		자기테이프의 입출력
온라인 기억장치		대용량 기억장치를 이용한 온라인 처리
연결자		다음에 처리할 순서가 있는 곳으로 연결
흐름선		제어의 흐름과 실행순서를 표시
서류문서		서류를 매체로 하는 입출력 기능을 표시
수동입력		자판을 통한 수작업 입력
통신연결		통신회선에 의한 연결

3. [정 답] ④

[해 설]

기계어는 컴퓨터 기종에 따라 다르며, 인터프리터는 목적 프로그램을 파일로 생성하지 않는다. 또한 인터프리터 방식의 고급 언어에는 베이식, 리스프, 프롤로그 등이 있다. 컴파일러 방식은 원시 프로그램을 한 문장이라도 수정하였을 경우 프로그램을 다시 컴파일 해야 한다.

4. [정 답] ③

[해 설]

1회 주사위에서 철수는 ‘4’, 영희는 ‘5’로 돌이 이동한다. 2회 주사위에서 철수는 ‘6’, 영희가 ‘6’로 돌이 이동하면서 돌이 겹치므로 철수의 돌인 흰돌은 ‘4’로 되돌아간다. 3회 주사위에서 철수는 ‘8’, 영희는 ‘9’로 돌이 이동한다.

5. [정 답] ④

[해 설]

고객번호, 열차코드, 도착역은 문자 변수로, 좌석 번호는 정수형 변수로, 할인율은 실수형 변수로 선언해야 한다.

6. [정 답] ⑤

[해 설]

2번째 for 문을 보면 변수 s는 누적합을 구하는 것이다. 따라서 k가 4라면 s=1+2+3+4가 된다. 그리고 바깥쪽 반복 for 문에서 제어 변수 k는 2, 4, 6으로 변한다.

7. [정 답] ③

[해 설]

변수 a, num, hap에 저장된 값은 다음과 같이 변한다.

a	num	hap
1	2	8+1
2	3	8+1+2
3
4	4	8+1+2+4

따라서 출력 결과는 4 15이다.

8. [정 답] ①

[해 설]

(가)에는 일의 자리에 3, 6, 9가 들어가는 수를 찾는 수식이 들어가야 한다.

따라서 일의 자리 수를 꺼내는 식은 a를 10으로 나누었을 때 나머지가 되므로 a%10(비주얼 베이식은 a Mod 10)으로 구한다. 이 구한 수에서 다시 3으로 나누었을 때 나머지를 구하여 0이면 3의 배수인 3, 6, 9가 나온다.

9. [정 답] ②

[해 설]

점선 부분은 1부터 9까지 홀수의 합을 구하는 프로그램이다. 따라서 1부터 9까지 누적합 sum=sum+k를 구하는 for 문을 찾으면 된다.

10. [정 답] ④

[해 설]

함수 fun의 조건식 a%2(a Mod 2)는 a를 2로 나누었을 때 나머지를 구하는 식이므로 0과 1이 나온다. 0이면 짝수이고, 1이면 홀수이다. 따라서 a%2==0을 만족하는 경우 a를 1 증가하므로 이 조건문을 수행한 후 a의 값은 홀수가 된다. 따라서 반복문은 두 수 a, b사이의 홀수의 합을 구한다. 함수 fun의 인수인 a, b는 값을 전달받는 형식을 취하고 있다.

11. [정 답] ⑤

[해 설]

단계1: AEROK

단계2: BFSPL

단계3: LBFSP 가 된다.

12. [정 답] ③

[해 설]

프로그램에서 변수 a, b, n의 변화 과정을 보면 다음과 같다.

a	b	n
12	2	1
10	4	2
6	6	3	==> 출력
0	6	3

따라서 출력 결과는 ‘6 6 3’이다.

13. [정 답] ④

[해 설]

입력 데이터 4, 7, 3이 차례로 보관함에 저장되고 연산자 ‘-’를 만나면 op2에 3, op1에 7이 기억되어 result=7-3=4가 저장된다.

다시 연산자 ‘*’를 만나면 op2에 4, op1에 4가 기억되어 result=4*4=16이 저장된다. 그리고 2가 저장된다. 다시 연산자 ‘+’를 만나면 op2에 2, op1에 16이 기억되어 result=16+2=18이 저장된 후 마지막에 꺼내 출력된다.

14. [정 답] ③

[해 설]

버블 정렬 알고리즘을 적용하여 오름차순으로 정렬하는 프로그램이다. 자료의 교환이 이루어지면 c의 값이 1로 바뀐다.

정렬 과정을 보면 다음과 같다.

초기값 : 24 47 36 11 86

b=0 : 24 36 11 47 86

b=1 : 24 11 36 47 86

b=2 : 11 24 36 47 86

b=3 : 11 24 36 47 86

이 과정에서 보면 b가 0, 1, 2일 때 자료 교환이 일어나므로 c=1로 바뀌고 count 값이 1씩 증가된다. 따라서 프로그램 출력 결과는 3이 된다.

15. [정 답] ②

[해 설]

되부름 함수를 활용하는 프로그램이다. 처음 4의 값을 가지고 되부름 함수 Rec( ) 함수를 호출하면 인수가 1씩 감소하면서 n값이 1일 때까지 호출된다. 따라서 마지막에 되돌려지는 값은 ‘4+3+2+1+1’이므로 11이 출력된다.

16. [정 답] ⑤

[해 설]

숫자 2가 출력되기 위해서는 첨자 1과 4를 제외한 나머지 요소값이 1이 되어야 한다.

17. [정 답] ①

[해 설]

1001101이면 프로그램에 의해 오른쪽으로 1비트씩 이동하고 맨 오른쪽에 있는 요소값은 맨 왼쪽으로 이동하므로 1100110이 된다. 따라서 4가 출력된다.

18. [정 답] ①

[해 설]

순서도에서 변수 c, k의 변화 과정을 보면 다음과 같다.

c	k
35 → 18	1
18 → 9	2
9 → 5	3
5 → 3	4
3 → 2	5

따라서 마지막에 출력되는 c는 2가 된다.

19. [정 답] ③

[해 설]

알고리즘에서 변수 K, N의 변화 과정을 보면 다음과 같다.

K	N
0	0
1	3 → 1
2	4 → 2
3	5 → 3
4	6

따라서 출력되는 K의 값은 4가 된다.

20. [정 답] ②

[해 설]

비트 합과 비트 곱을 구하는 프로그램이다.

orFun 함수에서 x의 값은 2, a(0)은 1이므로

a(0) → 0 0 0 1

비트합    x → 0 0 1 0

0 0 1 1 → a(0)

그런데 주 함수에서 x의 값은 1이므로 출력되는 x, a(0)의 값은 1과 3이 된다.

andFun 함수에서 y의 값은 2, b(0)은 3이므로

b(0) → 0 0 1 1

비트곱    y → 0 0 1 0

0 0 1 0 → b(0)

이후 y의 값은 1증가하여 3이 된다.

그런데 주 함수에서 y의 값은 2이므로 출력되는 y, b(0)의 값은 2와 2가 된다.