2010 대수능 9월 모의평가

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

[정답]

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

[해설]

1. [정 답] ⑤

[해 설] 코딩과 디버깅을 담당하는 학생은 철수와 갑순이가 된다.

․ 코딩 : 프로그램을 작성하는 것을 말함.

․ 디버깅: 프로그램에 대한 오류수정 작업을 말함.

학생	프로그램과정
갑돌	문서화작업과정
영희	문제분석과정
철수	코딩과정
갑순	오류수정과정(디버깅)

2. [정 답] ③

[해 설] 그림에 표시된 지역의 이동경로를 조사해 보면

서울(0) : 대전

대전(1) : 서울, 광주

부산(2) : 대전

광주(3) : 부산

따라서 이것을 표로 나타내면 ③번과 같이 된다.

3. [정답] ③

[해설] 인터프리터는 고급언어를 문장단위로 번역하는 언어번역프로그램이다.

그런데 인터프리터에 대한 설명이 잘못 되었으므로 변수 A = 0이 저장된다.

컴파일러의 경우 원시프로그램을 수정할 경우 다시 번역하여 목적프로그램을 생성한다. 따라서

설명 내용이 맞으므로 변수 B=1이 저장된다. 또한 어셈블러의 경우 어셈블리어를 번역하는 언어번역기이므로 변수 C에는 1이 저장된다. 따라서 A = 0, B = 1, C=1을 논리회로에 대입하여 불이 들어오는 전구를 찾으면 된다.

4. [정답]④

[해설] 함수는 입력된 모든값을 음수로 만드는 함수이다. 따라서 입력값 x에 대한 결과값 y는 모두 음수가 된다. 이것을 나타낸 그래프는 ④가 된다.

5. [정답]③

[해설]입력값에 대한 약수를 구하는 프로그램이다. 즉, 약수를 구하기 위해 1부터 값을 증가시켜 나누어 떨어지는 숫자를 구한다. 문제에서 12를 입력했을 경우 출력과정은 다음과 같다.

n	a	b
12	1	12
	2	6
	3	4

따라서 a의 값을 1증가시키면 4가 되면 반복문에서 a < b 조건을 만족하지 않으므로 종료하게 된다.

[6~7]

6.[정답]⑤

[해설]m값에서 계속해서 b를 빼가면서 빼준 횟수를 c에 저장한다. 그러므로 최종적으로 남은 m의 값은 나머지가 되며 c의 값은 몫이 된다. 그러므로 이것을 관계식으로 나타내면 a = b * c + m이 된다.

7. [정답]②

[해설]

점선 부분을 반복문으로  나타내면 m = a를 할당한 후 m >= b는 반복을 수행할 조건이 된다. 조건을 만족하는 동안 m = m - b

c = c + 1을 수행하면 된다.

이것을 반복문을 이용하여 나타내면 된다.

8. [정답] ②

[해설] 알고리즘은 최대 공약수를 구하는 알고리즘이다. 수행과정을 나타내면 다음과 같다.

상태	왼쪽	오른쪽
초기 상태	9	15
왼쪽이 오른쪽보다 작으므로 교환	15	9
왼쪽공을 오른쪽 공의 개수 만큼 빼냄	6	9
왼쪽이 오른쪽보다 작으므로 교환	9	6
왼쪽공을 오른쪽 공의 개수 만큼 빼냄	3	6
왼쪽이 오른쪽보다 작으므로 교환	6	3
왼쪽공을 오른쪽 공의 개수 만큼 빼냄	3
두 바구니의 공의 개수가 같으므로 종료	최종출력값 : 3

9.[정답]⑤

[해설] 프로그램은 -1과 3의 값을 입력받아 작은 값을 num에 대입한 후 num값을 1씩 증가시키면서 합을 구한다. 따라서 num = -1 이 되며 num 값을 1씩 증가 시켜 num값이 3보다 작거나 같은 동안 더하게 된다. 결국 sum의 값은 -1 + 0 + 1 + 2 + 3 = 5가 된다.

10.[정답]①

[해설] 조건문에 의해 b의 값은 4가 된다. 입력된 m값과 n값을 1부터 차례로 나누어가면서 최대공약수 2를 찾게 된다. 따라서 k = 2가 대입된다. 반복문의 조건에서 ( 4 * 6 ) / 2 = 12가 되므로 12번 “#”모양을 출력하게 된다. 출력하면서 개수가 5가 되면 다음 라인으로 이동하여 출력하게 된다.

11. [정답]③

[해설]이동거리가 3.5km인 경우 3.5 - 3 -1 < 0의 조건을 만족하므로 s = 1200원이 된다.

이동거리가 6km인 경우 6 - 6 - 1 < 0 이므로 1800원이 된다. 또한 7Km인 경우 1900원이 되고 8Km인 경우 2000원이 되므로 1Km증가할 때마다 버스요금이 100원씩 증가 하게 된다.

그러므로 <보기>에서 맞는 경우를 고르면 ㄱ,ㄷ 이 된다.

12.[정답]①

[해설]

배열을 그림으로 나타내 보면 다음과 같다.

0	1	2
B	D	O

0	1	2
A	C	P

배열a     배열b

0	1	2	3	4	5

배열c :

배열a와 배열 b의 첨자는 각 각 m과 n이며 배열c의 첨자는 p가 된다. 배열 a의 첫 번째 요소와 배열 b의 첫 번 째 요소를 비교하여 작은 것을 배열 c에 넣는다. 예를 들어 배열 a의 첫 번째 요소 A와 배열 b의 첫 번째 요소 B를 비교하면 A < B이므로 A를 배열 c의 첫 번째 요소에 넣는다. 넣어준 후 배열 a의 첨자요소를 1 증가시킨 후 배열 c의 첨자요소 p도 1증가 시킨다. 이과정을 순차적으로 반복하면 배열 c에는 ABCDOP순으로 값이 저장된다.

13.[정답]②

[해설]전기회로는 OR회로가 되므로 OR를 나타내는 논리식을 사용하면 된다.

14. [정답]④

[해설] 10진수를 입력받아 5진수로 변환하는 과정을 나타낸 것이다. 프로그램에 9를 입력하면

반복문은 2회 실행된다.

15.[정답]④

[해설] 프로그램의 실행과정을 그림으로 표현하면 다음과 같다.

0	1	2	3	4	5	6	7	8	9	10
V	I	S	U	A	L	B	A	S	I	C

a                                                    b

배열에서 a의 요소와 b의 요소를 비교하여 같으면 cnt에 2를 더하고 같지않으면 -1을 더해준다. 첫 번째 V와 C는 같지 않으므로 cnt값은 -1이 된다. a값을 1증가 시키면 배열 요소는 I가 되고 , b의 요소는 I가 되므로 cnt에 2를 더해 주게 된다. 이 과정을 반복하면 -1 + 2 + 2 + -1 -1 + 2 = 3이된다. 그러므로 결과값은 3이 된다.

16.[정답]②

[해설] 올바른 변수 선언과 값을 대입한 경우를 찾으면 된다. 따라서 Moni의 경우 실수값을 저장하기 위한 변수로 선언되어 올바른 변수 선언 및 대입이 된 경우이다.

[17~18 ]

17.[정답]③

[해설]변수 Tp의 경우 전역변수로 선언되었으며 k는 지역변수이다. F_out()에서 배열 m에 저장된 자료의 개수는 첨자가 0부터 시작하므로 Tp+1개가 된다. 프로그램은 스택을 나타내고 있으므로 제일먼저 들어간 데이터가 가장 나중에 나오게 된다.

18. [정답]④

[해설] 배열에 100-> 200 -> 500이 저장되며, F_out에 의해 a = 500, b = 200이 저장된다.

100 -> 600이 저장되며 F_out에 의해 600이 출력되어 c = 600이 된다. 따라서 a + b + c = 1300이 된다.

19.[정답]①

[해설] a값은 1에서 3까지 증가하게 된다. a값을 2로 나누어 나머지 값에 따라 출력형태가

다르다. 출력형태는 표와 같다.

a	1	2	3
출력값	123	654	789

20. [정답] ②

[해설] C언어의 경우 Y = ( !B && Y ) || A 가 되고, 비주얼베이직의 경우 Y = ( Not B And Y) Or A가 된다.

즉, A를 누르면 1이 되어 Or조건에서 Y는 1이 되어 문이 열리게 된다.