◦  먼저 수험생이 선택한 과목의 문제지인지 확인하시오.

직업탐구영역

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

직업탐구영역

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

2008학년도 10월 고3 전국연합학력평가 문제지

제 4 교시     직업탐구영역(프로그래밍)

성명			수험번호						3

◦  문제지에 성명과 수험 번호를 정확히 기입하시오.

◦  답안지에 수험 번호, 선택 과목, 답을 표기할 때는 반드시 ‘수험생이 지켜야 할 일’ 에 따라 표기하시오.

◦  문항에 따라 배점이 다르니, 각 물음의 끝에 표시된 배점을 참고하시오. 3점 문항에만 점수가 표시되어 있습니다. 점수 표시가 없는 문항은 모두 2점씩입니다.

65

72

5권 중 5권

1. 그래프는 3종류의 프로그래밍 언어의 특징을 비교한 것이다.  (가)～(다)에 해당하는 언어를 바르게 짝지은 것은?

(가)             (나)              (다)

① C	포트란	기계어

② 자바	기계어	비주얼 베이직

③ 기계어	자바	포트란

④ 어셈블리어	C	자바

⑤ 비주얼 베이직	어셈블리어	C

2. 다음은 ○○전력 회사의 전력 요금표이다.

기본 요금(원)			1kWh당 전력량 요금(원)
100kWh 이하 사용	370		처음 100kWh 까지	55
101~200kWh 사용	820		다음 100kWh 까지	113
201~300kWh 사용	1,430		다음 100kWh 까지	168
301~400kWh 사용	3,420		다음 100kWh 까지	248
401~500kWh 사용	6,410		다음 100kWh 까지	366
500kWh 초과 사용	11,750		500kWh 초과	643

위 표에 대한 분석으로 <보기> 중에서 옳은 것만을 있는 대로 고른 것은?

		< 보 기 >
	ㄱ. 100kWh와 120kWh를 사용한 가구의 전력 요금은 같다. ㄴ. 250kWh를 사용한 가구의 전력 요금식은 다음과 같다. 전력 요금=1,430원+100×55원+100×113원+50×168원 ㄷ. 200kWh를 사용한 가구의 전력 요금은 100kWh를 사용한 가구의 2배이다.

① ㄱ	② ㄴ	③ ㄷ

④ ㄱ, ㄷ	⑤ ㄴ, ㄷ

3. 그림과 같이 놓여진 정사각형 중 몇 개의 뒷면에는 지뢰가 그려져 있고, 각 행과 열의 숫자는 지뢰의 개수를 의미한다. 1행(점선 내부)의 지뢰 배치 형태를 옳게 표현한 것은? (단, ●은 지뢰를, ○은 백지를 의미한다.)

프로그래밍

		1열	2열	3열	4열
		2	2	1	0
1행	2
2행	0
3행	2
4행	1

① ●●○○	② ●○○●	③ ○●○●

④ ●○●○	⑤ ○●●○

4. 그림은 친족 관계를 나타낸 예시이다. 나와 형제 사이는 2촌, 나와 백부 또는 숙부 사이는 3촌이 된다. A ~ F로 표시한 6명의 친족 관계가 다음과 같이 주어졌을 때, A와 E의 촌수로 옳은 것은?

◦ A는 D의 아들이다.

◦ D는 B의 아버지이다.

◦ G는 F의 아버지이다.

◦ D는 G의 아들이다.

◦ E는 C의 아버지이며,

동시에 G의 아들이다.

① 2촌	② 3촌	③ 4촌	④ 5촌	⑤ 6촌

5. 표의 자료를 저장하기 위한 변수 선언으로 옳지 않은 것은?

이름 (name)	사원 번호 (s_no)	나이 (age)	성별 (sx)	키 (height)
이신구	89020-1311001	29	M	178.3
강정연	91011-3201906	27	M	180
박이현	93022-1004609	25	M	175.5
박 연	91020-2005604	27	F	182

	C 언어	비주얼 베이직 언어
①	int age;	Dim age As Integer
②	char sx;	Dim sx As String
③	long s_no;	Dim s_no As Long
④	float height;	Dim height As Single
⑤	char name[10];	Dim name As String*10

6. (가)~(다)는 프로그램 개발 단계에 따른 산출물을 표현한 그림이다. 순서대로 나열한 것으로 옳은 것은?

프로그래밍

(가)

(나)

(다)

① (가) - (나) - (다)	② (가) - (다) - (나)

③ (나) - (가) - (다)	④ (나) - (다) - (가)

⑤ (다) - (가) - (나)

7. 그림은 정수 X, Y에 대해 비트 연산을 수행한 후, 결과값을 2진수로 표현하였을 때, 1의 개수를 출력해 주는 장치이다.

<결과표>

X

연산

Y

Z

?

AND

3

1

OR

4

2

XOR

6

2

출력

입력

(선택 버튼)

어떤 X에 대하여 Y에 3, 4, 6을 넣어 처리한 값이 <결과표>와 같을 때, X의 값으로 옳은 것은? [3점]

① 1	② 2	③ 5	④ 8	⑤ 9

8. 다음 프로그램에서  안의 연산식에 대한 설명으로 <보기> 중에서 옳은 것만을 있는 대로 고른 것은?

C 언어	비주얼 베이직 언어
#include <stdio.h> void main(){ int a, b, y; a=10; b=10; y= a - (a / b) * b +10 < 3; }	Private Sub Form_Activate() Dim a, b, y As Integer a = 10 b = 10 y = a - (a \ b) * b + 10 < 3 End Sub

		< 보 기 >
	ㄱ. 논리 연산자로 ‘ < ’가 사용되었다. ㄴ. 밑줄친 부분은 a를 b로 나눈 나머지를 구하는 식이다. ㄷ. 점선 안에는 산술, 관계, 논리 연산자가 모두 사용되었다.

① ㄱ	② ㄴ	③ ㄷ

④ ㄴ, ㄷ	⑤ ㄱ, ㄴ, ㄷ

9. [성적 자료]의 지필 점수(A)와 과제 점수(B)를 순서도에 입력하여 처리하였을 때, ‘우수’가 출력되는 사람을 있는 대로 고른 것은?

[성적 자료]

점수 이름	지필 (A)	과제 (B)
갑돌	100	70
갑순	80	85
길동	100	90

① 갑돌	② 길동	③ 갑돌, 갑순

④ 갑순, 길동	⑤ 갑돌, 갑순, 길동

66

72

5권 중 5권

프로그래밍

10. 다음 함수에 대한 설명으로 옳은 것은? (단, n≧0) [3점]

C 언어	비주얼 베이직 언어
int func(int n){ if(n==0) return 0; else return func(n /10)+ n % 10; }	Function func(n) As Integer If n = 0 Then func = 0 Else func=func(n \10) + n Mod 10 End If End Function

① n을 10으로 나눈 몫을 반환한다.

② n이 1일 때는 결과값 0을 반환한다.

③ n을 10으로 나눈 나머지를 반환한다.

④ n을 10으로 나눈 몫과 나머지를 합한 값을 반환한다.

⑤ n의 각 자리에 해당하는 수를 모두 합한 값을 반환한다.

11. 다음 프로그램의 실행 결과로 옳은 것은? [3점]

C 언어	비주얼 베이직 언어
#include <stdio.h> void main(){ int a, b; char n[]="SEOUL"; char p[]="ELOSU"; for(a=0; a<=4; a++){ for(b=0; b<=4; b++){ if(n[a]==p[b]){ printf("%d", b); break; } } } }	Private Sub Form_Activate() Dim a, b As Integer Dim n(), p() As Variant n() = Array("S","E","O","U","L") p() = Array("E","L","O","S","U") For a = 0 To 4 For b = 0 To 4 If n(a) = p(b) Then Print b; : Exit For End If Next b Next a End Sub

① 01234	② 12345	③ 14203

④ 21430	⑤ 30241

12.  (가), (나)에 두 수를 대입하였을 때, 출력 결과가 다른 것은? [3점]

C 언어	비주얼 베이직 언어
#include <stdio.h> void main(){ int a= , b= ; (가) (나) while(a < b) { a = a+1; b = b-1; } printf("%d", a-b); }	Private Sub Form_Activate() Dim a, b As Integer a= : b= (가) (나) While a < b a = a+1 b = b-1 Wend Print a-b End Sub

	①	②	③	④	⑤
(가)	-1	1	1	6	7
(나)	1	4	7	10	11

71

72

5권 중 5권

프로그래밍

13. 다음 논리식의 결과가 ‘참’일 경우, 변수 a, b, c, d의 값으로 옳은 것은?

C 언어	(c>b) && (b<d) && (a<c) && !(a<=b)
비주얼 베이직 언어	(c>b) And (b<d) And (a<c) And Not(a<=b)

a          b          c           d

①  30	40	50	60

②  30	50	60	40

③  40	30	60	50

④  40	50	60	30

⑤  60	40	30	50

14. 다음 프로그램의 실행 결과로 옳은 것은? [3점]

C 언어	비주얼 베이직 언어
#include <stdio.h> void main(){ int s[4]={1, 4, 16, 64}; int n[4]={3, 3, 3, 3}; int a, b[4], su, c; su=120; for(a=3; a>=0; a--){ c=0; while(su>=s[a] && c<n[a]){ su=su-s[a]; c++; } b[a]=c; } for(a=3; a>=0; a--) printf("%d", b[a]); }	Private Sub Form_Activate() Dim s(), n() As Variant Dim a, b(3), su, c As Integer s() = Array(1, 4, 16, 64) n() = Array(3, 3, 3, 3) su = 120 For a = 3 To 0 Step -1 c=0 While su>=s(a) And c<n(a) su = su - s(a) c = c + 1 Wend b(a) = c Next a For a = 3 To 0 Step -1 Print b(a); Next a End Sub

① 0 1 2 3	② 1 2 3 0	③ 1 3 2 0

④ 2 3 1 1	⑤ 3 2 3 1

15. 양궁 선수인 우진이는 12개의 화살을 쏘아 다음과 같은 점수를 얻었다. 이에 대한 평균 점수를 계산하는 프로그램을 작성할 때,  에 들어갈 문장으로 옳은 것은? [3점]

점수	10점	9점	8점	7점	6점
개수	3개	2개	4개	1개	2개

C 언어	비주얼 베이직 언어
#include <stdio.h> void main(){ float sum=0; int a, num=0; int w[5]={10, 9, 8, 7, 6}; int n[5]={3, 2, 4, 1, 2}; for(a=0; a<=4; a++){ sum= ; num=num+n[a]; } printf("%f", sum / num); }	Private Sub Form_Activate() Dim sum As Single Dim a, num, w(), n() w() = Array(10, 9, 8, 7, 6) n() = Array(3, 2, 4, 1, 2) num = 0: sum = 0 For a = 0 To 4 sum = num = num + n(a) Next : Print sum / num End Sub

	C 언어	비주얼 베이직 언어
①	w[a]*n[a]	w(a) * n(a)
②	w[a]+n[a]	w(a) + n(a)
③	sum+w[a]	sum + w(a)
④	sum+w[a]+n[a]	sum + w(a) + n(a)
⑤	sum+w[a] * n[a]	sum + w(a) * n(a)

프로그래밍

16. 다음 프로그램의 실행 결과로 옳은 것은? [3점]

C 언어	비주얼 베이직 언어
#include <stdio.h> void main(){ int a, b, k; int n[3][3]; a=0; b=0; k=0; do{ k++; n[a][b]=k; a++; if(a>2) {a=b+1; b=3;} b--; if(b<0) {b=a; a=0;} }while(k<9); for(a=0; a<=2; a++){ for(b=0; b<=2; b++) printf("%d ", n[a][b]); printf("\n"); } }	Private Sub Form_Activate() Dim a, b, k As Integer Dim n(2, 2) As Integer a = 0: b = 0: k = 0 Do k = k + 1 n(a, b) = k a = a + 1 If a > 2 Then a=b+1: b=3 End If b=b-1 If b<0 Then b=a: a=0 Loop While k < 9 For a=0 To 2 For b=0 To 2 Print n(a, b); Next b: Print Next a End Sub

①				②				③				④				⑤
1	2	3		1	2	3		1	2	3		1	2	4		1	2	6
4	5	6		6	5	4		8	9	4		3	5	7		3	5	7
7	8	9		7	8	9		7	6	5		6	8	9		4	8	9

17. 다음 함수와 같은 기능을 하는 연산자로 옳은 것은? (단, n과 m은 양의 정수이다.)

C 언어	비주얼 베이직 언어
int func(int n, int m){ while(n >= m){ n = n - m; } return n; }	Function func(n, m) As Integer While n >= m n = n - m Wend func = n End Function

	①	②	③	④	⑤
C 언어	%	/	-	*	+
비주얼 베이직 언어	Mod	\	-	*	+

프로그래밍

18. 다음은 배열 (가)를 (나)와 같이 변경하기 위한 프로그램이다.  에 들어갈 문장으로 옳은 것은? [3점]

19	20	16
11	12	22
21	17	13

11	12	13
16	17	19
20	21	22

(가)                   (나)

C 언어

비주얼 베이직 언어

#include <stdio.h>

void main(){

int n[3][3]={{19,20,16},

{11,12,22}, {21,17,13}};

int a, b, x, y, z;

for(x=0;x<=2;x++){

for(y=0;y<=2;y++){

for(a=0;a<=2;a++){

for(b=0;b<=2;b++){

if(n[x][y]<n[a][b]){

z = n[x][y];

;

n[a][b] = z;

}

}}}}

for(a=0;a<=2;a++){

for(b=0;b<=2;b++)

printf("%d ",n[a][b]);

printf("\n");

}

}

Private Sub Form_Activate( )

Dim n(2,2) As Integer

Dim a, b, x, y, z As Integer

n(0,0)=19:n(0,1)=20:n(0,2)=16

n(1,0)=11:n(1,1)=12:n(1,2)=22

n(2,0)=21:n(2,1)=17:n(2,2)=13

For x = 0 To 2

For y = 0 To 2

For a = 0 To 2

For b = 0 To 2

If n(x, y)<n(a , b) Then

z = n(x, y)

n(a, b) = z

End If

Next: Next: Next: Next

For a = 0 To 2

For b = 0 To 2

Print n(a, b);

Next: Print : Next

End Sub

	C 언어	비주얼 베이직 언어
①	n[x][y]=n[a][b]	n(x, y)=n(a, b)
②	n[y][x]=n[b][a]	n(y, x)=n(b, a)
③	z=n[x][y]+n[a][b]	z=n(x, y)+n(a, b)
④	n[a][b]=z+n[x][y]	n(a, b)=z+n(x, y)
⑤	n[x][y]=n[2-a][2-b]	n(x, y)=n(2-a, 2-b)

19. 다음 프로그램을 실행한 후 출력되는 값과 동일한 값을 얻을 수 있는 수식으로 옳은 것은? [3점]

C 언어	비주얼 베이직 언어
#include <stdio.h> void main(){ int a, b, sum, r; sum=0; for(a=1; a<=4; a++){ r=0; for(b=1; b<=a; b++) r=r+a; sum=sum+r; } printf("%d", sum); }	Private Sub Form_Activate() Dim a, b, sum, r as Integer sum = 0 For a = 1 To 4 r = 0 For b = 1 To a r = r + a Next b sum =sum + r Next a Print sum End Sub

① 1+2+3+4	② 1×2×3×4

③ 1+3+6+10	④ 1+4+9+16

⑤ 1×2+2×3+3×4+4×5

72

72

5권 중 5권

프로그래밍

20. 다음 프로그램은 그림과 같은 스프레드시트 A열의 세로합을 구하기 위한 것이다.  에 들어갈 문장으로 옳은 것은? [3점]

C 언어

비주얼 베이직 언어

#include <stdio.h>

int n[3][3]={{10,20,30},

{40,50,60},{70,80,90}};

int serohap(){

int a, r;

r=0;

for(a=0; a<=2; a++){

;

}

return r;

}

void main(){

printf("%d", serohap());

}

Dim n(2, 2) As Integer

Function serohap() As Integer

Dim a, r As Integer

r = 0

For a = 0 To 2

Next a

serohap = r

End Function

Private Sub Form_Activate()

n(0,0)=10:n(0,1)=20:n(0,2)=30

n(1,0)=40:n(1,1)=50:n(1,2)=60

n(2,0)=70:n(2,1)=80:n(2,2)=90

Print serohap

End Sub

	C 언어	비주얼 베이직 언어
①	r=n[0][a]	r = n(0, a)
②	r=n[a][a]	r = n(a, a)
③	r=n[a][1]	r = n(a, 1)
④	r=r+n[a][0]	r = r + n(a, 0)
⑤	r=n[a][0]+n[0][a]	r = n(a, 0) + n(0, a)

※ 확인 사항

문제지와 답안지의 해당란을 정확히 기입(표기)했는지 확인하시오.