EBS i 직탐영역 : 프로그래밍 모의고사(9월6일) 해설

1. [출제의도] 프로그래밍 언어의 특징에 대하여 이해하고 있는가?

[정답] : ①

[정답 해설]

- 영희의 답변에서 고급 언어라는 것을 알 수 있다.

- 길동이 답한 목적 프로그램을 생성하는 것으로는 컴파일러형 고급 언어와 어셈블리어가 있다.

- 인수가 답한 운영 체제를 개발할 목적으로 고안된 것은 C 언어이다.

따라서 영희, 길동, 인수의 답을 종합해 볼 때 선생님께서 질문한 것은 C 언어에 관한 것이라고 볼 수 있다.

2. [출제의도] 순서도를 해석할 수 있는가?

[정답] : ④

[정답 해설]

주어진 순서도에서 N은 1씩 증가되며, V는 누적곱이 저장된다. 따라서 누적합을 구하는 S는  이다.

3. [출제의도] 주어진 내용을 프로그램 코드로 작성할 수 있는가?

[정답] : ③

[정답 해설]

백분율은 (산업체 수)/(산업체 전체 합) * 100로 구한다. C 언어에서는 백분율을 구한 후 반올림하여 정수로 표현하기 위해 0.5를 더했다.

4. [출제의도] 연산자의 우선순위를 알고 있는가?

[정답] : ③

[정답 해설]

일반적으로 수식을 처리할 때 우선 순위는 괄호가 가장 먼저이고, 나머지는 연산자 우선순위에 따른다.

연산자 우선순위는 다음과 같다.

산술 연산자 > 관계 연산자 > 논리 연산자

따라서 주어진 수식에서 연산자 우선순위는 ㉢ → ㉣ → ㉡ → ㉠ 순이다.

또한 수치인 경우 논리값은 0인 경우에는 거짓(False)이고 0이 아닌 다른 수는 모두 참(True)로 인식한다.

EBS i 직탐영역 : 프로그래밍 모의고사(9월6일) 해설

5. [출제의도] 반복문과 조건문으로 이루어진 프로그램 코드를 해석할 수 있는가?

[정답] : ④

[정답 해설] 2부터 10까지의 소수를 구하는 프로그램으로 그 과정은 다음과 같다.

a	b	반복 조건 ( b>=a*a )	비교판단조건 (b를 a로 나눈 나머지가 0인가)	출력
2	30	참	참	2
2	15	참	거짓
3	15	참	참	3
3	5	거짓		5

따라서 출력되는 수는 2  3  5 이다.

6. [출제의도] 전역 변수와 지역 변수의 차이점을 이해하고 있는가?

[정답] : ④

[정답 해설]

전역(global) 변수는 함수 밖에서 선언하여 전체 프로그램에서 사용할 수 있는 변수이고, 지역(local) 변수는 하나의 함수나 블록에서만 정의되어 사용되는 변수이다. 여기서 변수 a는 전역변수이고 나머지는 지역 변수이다. 지역 변수는 사용된 함수가 종료되면 그 변수에 저장된 값도 유효하지 않다.

7. [출제의도] 전역 변수와 지역 변수의 차이점을 이해하고 있는가?

[정답] : ⑤

[정답 해설]  a는 전역변수이므로 호출된 sum 함수에서도 변수에 저장된 값을 그대로 유지한다. 따라서 변수의 저장된 값의 변화를 보면 다음과 같다.

b=2일 때 함수 호출	a	b	c	d	r	출력
	1	2	2	0
	3			2	2	3 2 2
b=3일 때 함수 호출	3	3	3	0
	6			3	3	6 3 3

EBS i 직탐영역 : 프로그래밍 모의고사(9월6일) 해설

8. [출제의도] 실생활에서 주어진 조건을 논리식으로 표현할 수 있는가?

[정답] : ⑤

[정답 해설]

실외등이 커지는 조건을 보면 스위치 A, B가 모두 참이거나 모두 거짓일 때 켜진다. 따라서 이를 논리식으로 표현하면 다음과 같다.

	C 언어	비주얼 베이직 언어
모두 참인 경우	A && B	A And B
모두 거짓인 경우	!A && !B	(Not A) And (Not A)

9. [출제의도] 2진수를 10진수로 변환하는 과정을 이해하는가?

[정답] : ②

[정답 해설]

2진수로 표현된 수를 배열에 넣고 이 수를 반복문을 이용하여 10진수로 변환하는 과정을 나타낸 프로그램이다.

즉 2진수 1011을 10진수로 나타내면

1*+0*+1*+1* <- 이 부분을 반복문으로 처리했다.

=8+0+2+1

=11

10. [출제의도] 프로그래밍의 일반적인 개념에 대하여 이해하고 있는가?

[정답] : ③

[정답 해설]

컴파일러로 번역하여 만든 프로그램은 원시 프로그램이 아니라 목적 프로그램이라고 하며, 인터프리터는 프로그램 전체를 한꺼번에 번역하는 것이 아니라 명령문 단위로 번역한다. 따라서 철수와 갑돌이를 제외한 영희와 순이가 바르게 말한 학생이다.

11. [출제의도] 주어진 수식을 프로그램 코드로 바르게 작성할 수 있는가?

[정답] : ①

[정답 해설]

프로그램에서 주어진 부분은 a를 b번 반복해서 곱한 것이다. 즉 2*2*2이므로 이다. 따라서 을 나타낸 것이다.

EBS i 직탐영역 : 프로그래밍 모의고사(9월6일) 해설

12. [출제의도] 피보나치 수열을 프로그램 코드로 나타낼 수 있는가?

[정답] : ②

[정답 해설]

피보나치 수열은 임의의 항이 앞의 두 항의 합과 같은 수열을 말한다.

배열 b에 저장된 수는 피보나치 수로, 현 첨자 위치의 요소값은 앞의 두 요소값의 합과 같다.

13. [출제의도] 프로그래밍 작성 절차를 이해하고 있는가?

[정답] : ①

[정답 해설]

일반적으로 프로그래밍 작성 절차는 다음과 같이 나타낼 수 있다.

문제에서 주어진 내용을 보면

가)는 원시 프로그램 작성 단계이고, 나)는 문제 분석 단계이며, 다)는 모의 실행 단계이다. 라)는 입출력 설계 단계이며, 마)는 문서화 단계이다.

EBS i 직탐영역 : 프로그래밍 모의고사(9월6일) 해설

14. [출제의도] 알고리즘을 프로그램 코드로 표현할 수 있는가?

[정답] : ④

[정답 해설]

사과를 5개씩 포장하므로 5, 10, 15 등과 같이 5의 배수일 때 사과 포장기를 작동하여 포장하면 된다. 따라서 5로 나누었을 때 나머지를 확인하여, 나머지가 0인 경우에 포장한다.

15. [출제의도] 반복문과 조건문으로 이루어진 프로그램을 해석할 수 있는가?

[정답] : ②

[정답 해설]

변수 result는 9(변수 n)를 a(1부터 9까지 변함)로 나누었을 때 나머지를 저장하는 변수이다.

따라서 result가 0이 되는 경우를 보면 a가 1, 3, 9일 때이다.

16. [출제의도] 주어진 알고리즘을 해석할 수 있는가?

[정답] : ③

[정답 해설]

G0에서 출발하면 G1과 G2 톨게이트가 있는데 거리가 같으므로 통행료로 비교한다. 통행료가 적은 G1을 선택한다. 같은 방법으로 G3, G5, G6가 선택된다.

17. [출제의도] 주어진 알고리즘을 해석할 수 있는가?

[정답] : ④

[정답 해설]

G1이 폐쇄되면 경유지는 G0→G2→G3→G5→G6이므로 통행료는

1500+900+1000+3000

=6400(원)이 된다.

18. [출제의도] 자료형에 알맞게 변수를 선언할 수 있는가?

[정답] : ⑤

[정답 해설]

account와 c_name는 문자형으로, i_money와 r_money는 긴 정수형으로, interest는 실수형으로 선언해야 한다.

EBS i 직탐영역 : 프로그래밍 모의고사(9월6일) 해설

19. [출제의도] for문과 if문, 그리고 1차원 배열으로 이루어진 프로그램을 이해할 수 있는가?

[정답] : ②

[정답 해설]

주어진 프로그램은 배열 a와 b의 같은 위치에 있는 요소값이 서로 같으면 “O”을 출력하고 변수 s에 20을 누적하고, 같지 않은 경우에는 “X”을 출력한다.

따라서 같은 위치에 있는 값이 서로 같은 경우는 배열 첨자가 2와 3인 경우이므로 X X O O X가 출력되고 같은 경우가 2번 있으므로 s는 40이 된다.

20. [출제의도] 2차 배열과 다중 for문을 처리할 수 있는가?

[정답] : ②

[정답 해설]

2차원 배열의 각 요소값을 다중 for 문을 이용하여 저장한다.

a의 변화에 따른 m의 값을 보면 다음과 같다.

1) a=2일 때(b=2, 1, 0)

	b=0	b=1	b=2
a=0	0	0	0
a=1	0	0	0
a=2	3	2	1

2) a=1일 때(b=2, 1)

	b=0	b=1	b=2
a=0	0	0	0
a=1	0	5	4
a=2	3	2	1

3) a=0일 때(b=2)

	b=0	b=1	b=2
a=0	0	0	6
a=1	0	5	4
a=2	3	2	1