제 009학년도 11월고 전국연합학력평가문제지 ( ) 교시 성명수험번호 1. 그림은언어에관한수업장면을나타낸것이다. 선생님 의질문에옳게대답한학생만을있는대로고른것은?. 다음체험관요금안내문을바탕으로입장객을구별했을때, 무료 입장이가능한사람만을 < > 에서있는대로고른것은? [ 점] 주석문의특징에대해얘기해볼까요? 재민: 프로그램의실행과는무관합니다. 인경: 사용하기전에프로그램앞부분에선언해야합니다. 슬기: 다른사람이작성한프로그램을이해하는데도움이됩니다. - 체험관요금안내문 - 일반입장객은,000 원의요금을내야한다. 무료입장객은다음의연령(age) 조건을갖추어야한다. age < 8 age >= 65 age < 8 Or age >= 65 ㄱ. ㄴ. ㄷ. ㄹ. 1 재민 재민, 슬기 인경 5 인경, 슬기 재민, 인경 수현 (7 세) 할머니 (6 세) 할아버지 (65 세) 소리 (8 세). [1 단계] ~[5 단계] 의처리과정을모두수행한후, 상자에담겨진 공들의번호를모두합하였다. 그값으로옳은것은? [1 단계 ] : 1번공을원통에넣기 [ 단계 ] : 원통에서공 개를꺼내상자에담기 [ 단계 ] : 5번공을원통에넣기 [ 단계 ] : 번공을원통에넣기 [5 단계 ] : 원통에서공 1개를꺼내 상자에담기 1 6 7 8 9 5 10. 그림은언어의종류를나타낸것이다. 에대한설 명으로옳은것은? [ 점] 언어의종류 1 기계어와 1:1 의대응관계로기호화한언어이다. ( 포트란, ㆍㆍㆍ, 코볼 ) ( 자바, ㆍㆍㆍ, 델파이 ) 컴퓨터가인식할수있는 0과 1로구성된 진코드이다. 최초로만들어진고급언어로복잡한계산이나수식을처리한다. 데이터의입출력, 검색등의사무처리업무에가장적합한언어이다. 5 실생활의다양한현상을객체단위로모델링하여문제를해결한다. 1 ㄱ, ㄴ ㄱ, ㄷ ㄴ, ㄹ ㄱ, ㄷ, ㄹ 5 ㄴ, ㄷ, ㄹ 5. 다음조건에의해한달간사용한휴대폰의통화요금을계산하는 순서도를작성하였다. 에들어갈조건식으로옳은것은? [ 점] 한달은 0 일로한다. 배열 D에는한달동안 사용한일별총통화시간 ( 초) 이저장되어있다. 무료통화시간은 1일 00 초이며, 미사용시간은 자동소멸된다. 통화요금은 10초당 18원 으로계산한다. No 시작 D(0) T = 0: M = 0: i = 0 Yes T = T + ( D(i) - 00 ) i = i + 1 No i < 0 M = T / 10 * 18 M 출력 1 D(i) = 00 D(i) 00 D(i) <= 00 D(i) < 00 5 D(i) > 00 끝 Yes 5 5 권중 권
[6 ~ 7] 다음은인공지능로봇의작동프로그램을만드는코딩작업 지시서의일부이다. 지시서를보고물음에답하시오. 9. 다음프로그램에대한분석으로옳은것만을 < > 에서있는대로 고른것은? [ 점] [ 대상] 인공지능로봇 코딩작업지시서 [ 내용] 방향전환및진행제어문코딩 [ 코딩방법] 특정표지가없으면로봇이직진한다. 특정표지가있으면로봇이방향전환후직진한다. 표지가있으면로봇이왼쪽으로 90 회전후다시직진 표지가있으면로봇이오른쪽으로 90 회전후다시직진 ( 가 ) 6. 위의방법대로한로봇을현재위치에서출발시켰을때, 종착지점으로옳은것은? ( 단, 방향전환의기준은로봇이다.) [ 현재위치 ] void fun(int x, int y) x=x+y; y=x-y; x=x-y; printf("%d %d", x, y); int n1, n; printf(" 두수입력 : "); scanf("%d %d", &n1, &n); fun(n1, n); printf("%d %d", n1, n); ㄱ. 프로그램에서사용한가인수는 x, y 이다. Sub fun(yval x As Integer, yval y As Integer) x = x + y y = x - y x = x - y Print x; y Dim n1 As Integer Dim n As Integer n1 = Inputox("n1 입력: ") n = Inputox("n 입력: ") Call fun(n1, n) Print n1; n ㄴ. fun() 함수는값에의한호출방식을사용한다. ㄷ. 주프로그램의출력값과 fun() 함수내에서의출력값은같다. 1 ㄱ ㄷ ㄱ, ㄴ ㄱ, ㄷ 5 ㄴ, ㄷ 1 A C D 5 E 7. 를코딩할때사용하는제어문으로가장적절한것은? 1 5 if 문 for 문 while 문 break 문 do~while 문 If 문 For~Next 문 Do While~Loop 문 Exit 문 Do~Loop While 문 8. S 값을구하기위해다음과같은알고리즘을작성하였다. 에들 어갈수식으로옳은것은? [ 점] S=+(+8)+(+8+8)+(+8+8+8) [ 단계 1] : A=, =8, S=A, n= 를대입한다. [ 단계 ] : C=A+ 연산을수행한다. [ 단계 ] : S=S+C, n=n+1 연산을수행한다. [ 단계 ] : n<= 이면, [ 단계 ] 로이동한다. [ 단계 5] : S의값을출력하고종료한다. 10. 다음숫자형태의암호문을입력받아문자형태로해독하는 프로그램을작성하였다. 실행후출력되는문자열로옳은것은? [ 암호문] 1 1 #include <stdio.h> int pwd[], i, row, col; char p[][] = 'a','e','i', 'b','v','l', 'c','d','o' ; for(i=0; i<=; i++) scanf("%d", &pwd[i] ); for(i=0; i<=; i++) row=(pwd[i]/10)-1; col=(pwd[i]%10)-1; printf("%c",p[row][col]); Dim pwd() As Variant Dim i, row, col As Integer Dim p(, ) As Variant p(0,0)="a":p(0,1)="e":p(0,)="i" p(1,0)="b":p(1,1)="v":p(1,)="l" p(,0)="c":p(,1)="d":p(,)="o" For i = 0 To pwd(i) = Inputox("") For i = 0 To row = (pwd(i) / 10) - 1 col = (pwd(i) Mod 10) - 1 Print p(row, col); [ 점] 1 n * A (n-1) * A (n+1) (n-1) * 5 (n+1) * * A 1 bead lobe deal 5 love live 권중 권 6 5
11. 다음조건을만족하는숫자를각변의빈칸에넣었을때, 에 들어갈숫자로옳은것은? 0부터 9까지의숫자가운데이미사용한 숫자를제외한나머지숫자를채워 넣는다. 다섯개의변에채워진숫자의합은 모두같아야한다. 9 0 8 1 1 5 6 5 7 num 5 num - 1 1. 다음변수 a의값을소수점이하둘째자리에서반올림하여변수 b 에저장하려고한다. 에들어갈값으로옳은것은? [ 점] [ 변수 a] [ 변수 b] 5.5 5. 5. 5. b=(int)(a*10+ )/10.0; b = Int(a * 10 + ) / 10 1 0.5 1.5.5 5 5 15 1. 다음프로그램에서입력값이 11 일때출력되는값으로옳은것 은? [15 ~ 16] 다음프로그램을보고물음에답하시오. #include <stdio.h> int s, b, m; s=100; printf(" 숫자입력 : "); scanf("%d", &m); switch (m%) case 0: b=s*0.1; break; case 1: b=s*0.5; break; case : b=s*0.5; break; case : b=s*0.75; break; default: b=s; printf("%d\n",b); Dim s, b, m As Integer s = 100 m = Inputox(" 숫자입력 : ") Select Case m Mod Case 0: b = s * 0.1 Case 1: b = s * 0.5 Case : b = s * 0.5 Case : b = s * 0.75 Case Else: b = s End Select Print b 1 10 5 50 75 5 100 1. 다음은입력값에따른실행결과를나타낸것이다. 이를프로그램 으로작성할때 에들어갈내용으로옳은것은? int r[5], i, j; int s[5]=98,89,89,95,98; for(i=0; i<=; i++) r[i]=0; for(i=0; i<=; i++) for(j=0; j<=; j++) if( s[i]<=s[j] r[i]=r[i]+1; for(i=0; i<=; i++) printf("%d ", r[i]); ) ( 나) Dim r(5), i, j As Integer Dim s() As Variant s() = Array(98, 89, 89, 95, 98) For i = 0 To r(i) = 0 For i = 0 To For j = 0 To If s(i) <= s(j) r(i) = r(i) + 1 For i = 0 To Print r(i); Then ( 나) 입력값 실행결과 A A AA A AA AAA 15. 위프로그램을실행한결과로옳은것은? [ 점] 1 1 1 5 5 1 1 1 1 5 5 5 int i, j, num; printf(" 정수입력 : "); scanf("%d", &num); for(i=0; i<=num-1; i++) for(j=0; j<= ; j++) printf("a"); printf(" \n"); Dim i As Integer Dim j As Integer Dim num As Integer num = Inputox(" 정수입력 : ") For i = 0 To num - 1 For j = 0 To Print "A"; Print "" 16. 다음과같은실행결과를얻기위해위프로그램의일부를수정 했을때, 와 ( 나) 의수정내용을바르게짝지은것은? [ 점] [ 실행결과] 1 1 1 i i - 1 i + 1 7 5 권중 권
( 나) ( 나) 1 r[i]=1; s[i]<s[j] r(i) = 1 s(i) < s(j) r[i]=1; s[i]<=s[j] r(i) = 1 s(i) <= s(j) r[i]=1; s[i]>s[j] r(i) = 1 s(i) > s(j) r[i]=0; s[i]>=s[j] r(i) = 0 s(i) >= s(j) 5 r[i]=0; s[i]==s[j] r(i) = 0 s(i) = s(j) 17. 다음은도서에부여되는 ISN의끝자리숫자를생성하는과정을 나타낸것이다. 최종결과값 로옳은것은? int i, j; int arr[][9]; for(i=; i<=; i++) for(j=1; j<=9; j++) arr[i-][j-1]= i * j; for(i=0; i<=8; i++) printf("%d", arr[0][i]+ ); Dim i As Integer Dim j As Integer Dim arr(, 9) As Variant For i = To For j = 1 To 9 arr(i -, j - 1) = i * j For i = 0 To 8 Print arr(0, i) + [ 과정 1] : ISN 의 - 을제외한 1개숫자의홀수번째에는 1 을, 짝수번째에는 을곱한후그값들을모두더한다. ( 예시된자료의 [ 과정 1] 을수행한값은 166 이다.) [ 과정 ] : [ 과정 1] 에서구한값을 10으로나누어나머지를 얻는다. ( 단, 나머지가 0 인경우 [ 과정 ] 은생략한다.) [ 과정 ] : [ 과정 ] 에서얻은나머지를 10 에서뺀다. 1 0 7 5 9 18. 다음조건을만족하는프로그램을작성할때 에들어갈내용 으로옳은것은? [ 점] 차원배열의 1행에는구구단의 단을, 행에는구구단의 단을, 행에는구구단의 단을저장한다. 배열에저장된값을열단위로더하면구구단의 9 단이된다. 1 arr[1][i] arr(1, i); arr[1][i]+arr[][i] arr(1, i) + arr(, i); arr[0][i]+arr[0][i+1] arr(0, i) + arr(0, i + 1); arr[0][i+1]+arr[0][i+] arr(0, i + 1) + arr(0, i + ); 5 arr[1][i+1]+arr[][i+] arr(1, i + 1) + arr(, i + ); 19. 다음프로그램의실행결과가 참 이되도록하고자한다. 에 들어갈수식으로옳은것만을 if( printf(" 참"); else printf(" 거짓"); ) < > 에서있는대로고른것은? If Then Print " 참" Else Print " 거짓" ㄱ!(9>1) Not (9 > 1) ㄴ (<5) (8>7) ( < 5) Or (8 > 7) ㄷ (>6) && (>) ( > 6) And ( > ) 1 ㄱ ㄷ ㄱ, ㄴ ㄱ, ㄷ 5 ㄴ, ㄷ 0. 배열에서 8 이저장되어있는위치를찾기위해다음프로그램 을작성하였다. 이프로그램의실행결과로옳은것은? 권중 권 8 5
int d, u, k, m; int e[]=17,0,6,8,50; d=0; u=; k=8; do m=(int)((d+u)/); if(e[m]>k) u=m-1; else if(e[m]<k) d=m+1; else printf("%d %d %d",d,u,m); break; while(d<=u); Dim d, u, k, m As Integer Dim e() As Variant e() = Array(17, 0, 6, 8, 50) d = 0: u = : k = 8 Do m = Int((d + u) / ) If e(m) > k Then u = m - 1 ElseIf e(m) < k Then d = m + 1 ElseIf e(m) = k Then Print d; u; m Exit Do Loop While (d <= u) 1 0 1 0 0 1 5 확인사항 문제지와답안지의해당란을정확히기입( 표기) 했는지확인하시오. 7 5 권중 권