문제 1.
다음 프로그램은 10진수 50을 2진수로 변환하여 8비트로 출력하는 코드이다.
빈칸 ㉠, ㉡에 들어갈 코드를 쓰고, 프로그램 실행 결과를 쓰시오.
|
㉠: 2
㉡: bin[i]
실행 결과: 00110010
10진수를 2진수로 변환하는 과정입니다. 10진수를 2로 계속 나누며 나머지(비트)를 배열에 저장합니다.
50 ÷ 2 = 25 나머지 0
25 ÷ 2 = 12 나머지 1
12 ÷ 2 = 6 나머지 0
6 ÷ 2 = 3 나머지 0
3 ÷ 2 = 1 나머지 1
1 ÷ 2 = 0 나머지 1
따라서 50은 2진수로 110010이며, 8비트 형식이므로 앞에 0을 채워 00110010으로 출력합니다.
문제 2.
다음 프로그램을 실행했을 때 화면에 출력되는 두 개의 정수를 위에서부터 차례대로 쓰시오.
|
첫 번째 출력: 36
두 번째 출력: 33
배열: {8, 14, 22, 31, 47, 53} (인덱스 0~5)
첫 번째 출력:
- p = a + 2 → p는 a[2] (22)를 가리킴
- q = a + 4 → q는 a[4] (47)을 가리킴
- *(q - 3)은 q 위치(인덱스 4)에서 3칸 앞인 a[4-3] = a[1] (14)를 의미
- 따라서 *(q - 3) + *p = 14 + 22 = 36
두 번째 출력:
- p = a → p는 a[0] (8)을 가리킴
- q = p + 4 → q는 a[4] (47)을 가리킴
- *q = 47
- *(p + 1) = a[1] = 14
- 47 - 14 = 33
문제 3.
다음 프로그램은 배열을 선택 정렬로 오름차순 정렬한 후, 값 42를 이진 탐색으로 찾아 위치를 출력하는 코드이다.
(1) ㉠에 들어갈 while문의 조건식을 쓰고,
(2) ㉡에 들어갈 비교 연산자를 쓰고,
(3) 프로그램 실행 결과로 출력되는 정수를 쓰시오.
|
(1) ㉠: l <= r
(2) ㉡: ==
(3) 실행 결과: 3
선택 정렬 과정:
초기 배열: {42, 7, 19, 56, 33}
1회전: {7, 42, 19, 56, 33}
2회전: {7, 19, 42, 56, 33}
3회전: {7, 19, 33, 56, 42}
4회전: {7, 19, 33, 42, 56}
이진 탐색 과정:
정렬된 배열 {7, 19, 33, 42, 56}에서 42를 찾습니다.
- l=0, r=4, m=2 → x[2]=33 < 42 → l=3
- l=3, r=4, m=3 → x[3]=42 (찾음!)
따라서 42는 인덱스 3에 위치합니다.
문제 4.
다음 프로그램은 3×3 정수 배열의 각 행에서 가장 작은 값을 찾아 출력하는 코드이다.
(1) ㉠, ㉡에 들어갈 코드를 쓰고,
(2) 프로그램 실행 결과로 출력되는 세 정수를 순서대로 쓰시오.
|
(1) ㉠: d[i][0]
(1) ㉡: m
(2) 실행 결과: 4 2 1
각 행의 첫 번째 요소를 초기 최솟값으로 설정하고, 나머지 요소들과 비교합니다.
1행: {9, 4, 7} → 최솟값 4
2행: {2, 15, 3} → 최솟값 2
3행: {6, 8, 1} → 최솟값 1
문제 5.
다음 프로그램은 정수 5개를 입력받아 평균을 구하고, 값의 구간별 개수를 출력하는 코드이다.
사용자가 순서대로 70 55 90 40 50을 입력한다고 할 때,
(1) ㉠, ㉡, ㉢, ㉣에 들어갈 코드를 쓰고,
(2) 프로그램 실행 결과를 모두 쓰시오.
|
(1) ㉠: i + 1
(1) ㉡: &v[i]
(1) ㉢: v[i] >= 50
(1) ㉣: tot / 5
(2) 실행 결과:
평균: 61
50 이상: 4
30~49: 1
30 미만: 0
입력값: 70, 55, 90, 40, 50
합계: 70 + 55 + 90 + 40 + 50 = 305
평균: 305 / 5 = 61
구간별 분류:
- 50 이상: 70, 55, 90, 50 → 4개
- 30~49: 40 → 1개
- 30 미만: (없음) → 0개
문제 6.
다음 프로그램은 먼저 학생 수를 입력받고, 각 학생의 학번과 점수를 입력받은 뒤, 입력된 점수 중 최저 점수를 출력하는 코드이다.
입력이 다음과 같다고 할 때,
- 첫 줄: 학생 수 4
- 이후 입력(학번, 점수 순서로 4명):
- 101 76
- 102 88
- 103 69
- 104 90
(1) ㉠, ㉡, ㉢에 들어갈 코드를 쓰고,
(2) 프로그램 실행 결과로 출력되는 값을 쓰시오.
|
(1) ㉠: i < n
(1) ㉡: sc[i] < min
(1) ㉢: min
(2) 실행 결과: 69
1. 조건식(㉠): 0부터 시작하는 인덱스
i가 입력받은 학생 수 n보다 작을 때까지 반복해야 하므로 i < n입니다.2. 최솟값 갱신(㉡): 현재 입력받은 점수
sc[i]가 기존의 최솟값 min보다 작다면 min을 갱신해야 하므로 sc[i] < min입니다.3. 출력(㉢): 최종적으로 구해진 최저 점수 변수
min을 출력합니다.비교 과정 (초기 min = 101):
- 76 < 101 (참) → min = 76
- 88 < 76 (거짓)
- 69 < 76 (참) → min = 69
- 90 < 69 (거짓)
따라서 최저 점수는 69입니다.
문제 7.
다음 프로그램은 입력받은 정수 n의 팩토리얼(n! = 1 × 2 × ... × n)을 구하는 코드이다.
사용자가 정수 4를 입력했다고 할 때,
(1) ㉠, ㉡에 들어갈 코드를 쓰고,
(2) 프로그램 실행 결과를 쓰시오.
|
(1) ㉠: res = res * i; (또는 res *= i;)
(1) ㉡: res
(2) 실행 결과: 24
팩토리얼(n!)은 1부터 n까지의 정수를 모두 곱한 값입니다.
1. 변수
res는 곱셈의 항등원인 1로 초기화되어 있습니다.2. 반복문이 1부터 n까지 순회하며, 빈칸 ㉠에서 현재의
i 값을 res에 계속 곱해서 누적해야 합니다.3. 따라서
res = res * i; 또는 복합 대입 연산자를 사용한 res *= i;가 들어갑니다.계산 과정 (입력 4):
- i=1: res = 1 × 1 = 1
- i=2: res = 1 × 2 = 2
- i=3: res = 2 × 3 = 6
- i=4: res = 6 × 4 = 24
문제 8.
다음 프로그램을 실행했을 때 화면에 출력되는 두 개의 정수를 위에서부터 차례대로 쓰시오.
|
첫 번째 출력: 9
두 번째 출력: 18
첫 번째 출력:
- p = &arr[1] → p는 arr[1] (6)을 가리킴
- q = arr + 4 → q는 arr[4] (15)를 가리킴
- *q - *p = 15 - 6 = 9
두 번째 출력:
- p++ → p는 arr[2] (9)를 가리킴
- q = q - 2 → q는 arr[2] (9)를 가리킴
- *p + *q = 9 + 9 = 18
문제 9.
다음 프로그램은 배열에서 가장 큰 값(최댓값)의 인덱스(위치)를 찾아 출력하는 코드이다.
(1) ㉠에 들어갈 비교 연산자를 쓰고,
(2) ㉡에 들어갈 코드를 쓰고,
(3) 프로그램 실행 결과로 출력되는 정수를 쓰시오.
|
(1) ㉠: >
(2) ㉡: i
(3) 실행 결과: 4
배열: {12, 45, 7, 23, 56, 9}
비교 과정:
- i=1: data[1]=45 > data[0]=12 → max_idx = 1
- i=2: data[2]=7 > data[1]=45 (거짓)
- i=3: data[3]=23 > data[1]=45 (거짓)
- i=4: data[4]=56 > data[1]=45 → max_idx = 4
- i=5: data[5]=9 > data[4]=56 (거짓)
가장 큰 값 56은 인덱스 4에 있습니다.
문제 10.
다음 프로그램은 2행 3열 배열의 모든 요소를 순회하며 10보다 큰 수의 합계를 구하는 코드이다.
(1) ㉠, ㉡에 들어갈 코드를 쓰고,
(2) 프로그램 실행 결과를 쓰시오.
|
(1) ㉠: arr[i][j]
(1) ㉡: sum
(2) 실행 결과: 47
배열 요소 중 10보다 큰 값들을 찾습니다.
10보다 큰 값:
- arr[0][1] = 12
- arr[1][0] = 15
- arr[1][2] = 20
합계: 12 + 15 + 20 = 47
문제 11.
다음 프로그램은 정수 5개가 저장된 배열을 역순(거꾸로)으로 뒤집는 코드이다.
(1) ㉠, ㉡에 들어갈 코드를 쓰고,
(2) 프로그램 실행 결과를 모두 쓰시오.
|
(1) ㉠: temp
(1) ㉡: arr[i]
(2) 실행 결과: 5 4 3 2 1
배열의 양 끝 요소를 교환하여 역순으로 만듭니다.
교환 과정:
- i=0: arr[0]과 arr[4] 교환 → {5, 2, 3, 4, 1}
- i=1: arr[1]과 arr[3] 교환 → {5, 4, 3, 2, 1}
※ 중간 요소(arr[2])는 교환 불필요
문제 12.
다음 프로그램은 1부터 입력받은 정수 n까지의 합(누적 합)을 구하여 출력하는 코드이다.
사용자가 정수 5를 입력했다고 할 때,
(1) 빈칸 ㉠, ㉡에 들어갈 코드를 쓰고,
(2) 프로그램 실행 결과를 쓰시오.
|
(1) ㉠: i <= n
(1) ㉡: sum += i; (또는 sum = sum + i;)
(2) 실행 결과: 15
1부터 n까지의 정수를 순차적으로 더하는 과정입니다.
1. 조건식(㉠): 변수
i가 1부터 시작하여 입력받은 수 n까지 반복해야 하므로 i <= n이 됩니다.2. 실행문(㉡): 반복할 때마다 현재의
i 값을 sum에 더해서 저장해야 하므로 sum += i;가 됩니다.계산 과정 (입력 5):
- i=1: sum = 0 + 1 = 1
- i=2: sum = 1 + 2 = 3
- i=3: sum = 3 + 3 = 6
- i=4: sum = 6 + 4 = 10
- i=5: sum = 10 + 5 = 15
문제 13.
다음 프로그램을 실행했을 때 화면에 출력되는 두 개의 정수를 위에서부터 차례대로 쓰시오.
|
첫 번째 출력: 60
두 번째 출력: 10
첫 번째 출력:
- p = arr → p는 arr[0] (10)을 가리킴
- q = arr + 3 → q는 arr[3] (40)을 가리킴
- *(p + 1) = arr[1] = 20
- *q = 40
- 20 + 40 = 60
두 번째 출력:
- p++ → p는 arr[1] (20)을 가리킴
- q-- → q는 arr[2] (30)을 가리킴
- *q - *p = 30 - 20 = 10
문제 14.
다음 프로그램은 정수 배열을 버블 정렬(Bubble Sort)을 이용하여 오름차순으로 정렬하는 코드이다.
(1) ㉠에 들어갈 비교 연산자를 쓰고,
(2) ㉡에 들어갈 변수명을 쓰고,
(3) 프로그램 실행 결과로 출력되는 정수를 쓰시오.
|
(1) ㉠: >
(2) ㉡: temp
(3) 실행 결과: 5
버블 정렬을 통해 오름차순으로 정렬합니다.
정렬 과정:
초기: {8, 3, 5, 1, 9}
1회전: {3, 5, 1, 8, 9}
2회전: {3, 1, 5, 8, 9}
3회전: {1, 3, 5, 8, 9}
4회전: {1, 3, 5, 8, 9}
정렬 후 a[2] = 5
문제 15.
다음 프로그램은 3×3 정수 배열의 대각선 요소(왼쪽 위에서 오른쪽 아래로)의 합계를 구하는 코드이다.
(1) ㉠, ㉡에 들어갈 코드를 쓰고,
(2) 프로그램 실행 결과를 쓰시오.
|
(1) ㉠: m[i][i]
(1) ㉡: sum
(2) 실행 결과: 60
주 대각선 요소는 행과 열의 인덱스가 같은 요소입니다.
대각선 요소:
- m[0][0] = 10
- m[1][1] = 20
- m[2][2] = 30
합계: 10 + 20 + 30 = 60
문제 16.
다음 프로그램은 정수 5개를 입력받아 그중 짝수의 개수와 홀수의 합을 출력하는 코드이다.
사용자가 순서대로 2 5 8 11 14를 입력한다고 할 때,
(1) ㉠, ㉡, ㉢에 들어갈 코드를 쓰고,
(2) 프로그램 실행 결과를 모두 쓰시오.
|
(1) ㉠: ==
(1) ㉡: +=
(1) ㉢: even_cnt
(2) 실행 결과:
짝수 개수: 3
홀수 합: 16
입력값: 2, 5, 8, 11, 14
짝수: 2, 8, 14 → 3개
홀수: 5, 11 → 합: 5 + 11 = 16
문제 17.
다음 프로그램은 10진수 37을 2진수로 변환하여 8비트로 출력하는 코드이다.
빈칸 ㉠, ㉡에 들어갈 코드를 쓰고, 프로그램 실행 결과를 쓰시오.
|
㉠: int n = 37
㉡: n = n / 2 (또는 n /= 2)
실행 결과: 00100101
10진수 37을 2진수로 변환하는 과정입니다.
1. 변수 선언(㉠): 코드에서
n이라는 변수를 사용하고 있으나 선언되지 않았습니다. 문제에서 10진수 37을 변환한다고 했으므로, int n = 37로 변수 선언과 동시에 값을 대입해야 합니다.2. 값 갱신(㉡): 2진수 변환을 위해 현재의
n을 2로 나눈 몫을 다시 n에 저장해야 다음 자릿수를 계산할 수 있습니다. 따라서 n = n / 2;가 됩니다.변환 과정:
- 37 ÷ 2 = 18 ... 나머지 1 (bin[7])
- 18 ÷ 2 = 9 ... 나머지 0 (bin[6])
- 9 ÷ 2 = 4 ... 나머지 1 (bin[5])
- 4 ÷ 2 = 2 ... 나머지 0 (bin[4])
- 2 ÷ 2 = 1 ... 나머지 0 (bin[3])
- 1 ÷ 2 = 0 ... 나머지 1 (bin[2])
- 이후 0은 계속 0 ... (bin[1], bin[0])
출력(0부터 7까지): 앞쪽 빈칸은 0으로 채워져
00100101이 출력됩니다.
문제 18.
다음 프로그램을 실행했을 때 화면에 출력되는 두 개의 정수를 위에서부터 차례대로 쓰시오.
|
첫 번째 출력: 17
두 번째 출력: 24
첫 번째 출력:
- p = a + 1 → p는 a[1] (5)를 가리킴
- q = a + 4 → q는 a[4] (20)을 가리킴
- *(p - 1) = a[0] = 3
- *q = 20
- 20 - 3 = 17
두 번째 출력:
- p = a + 2 → p는 a[2] (9)를 가리킴
- q = a + 3 → q는 a[3] (12)를 가리킴
- *(p + 1) = a[3] = 12
- *q = 12
- 12 + 12 = 24
문제 19.
다음 프로그램은 정수 배열을 선택 정렬로 오름차순 정렬한 후, 값 25를 선형 탐색으로 찾아 위치를 출력하는 코드이다.
(1) ㉠에 들어갈 while문의 조건식을 쓰고,
(2) ㉡에 들어갈 if문의 조건식을 쓰고,
(3) 프로그램 실행 결과로 출력되는 정수를 쓰시오.
|
(1) ㉠: i < n
(2) ㉡: pos != -1
(3) 실행 결과: 3
선택 정렬 과정:
초기 배열: {30, 12, 7, 25, 18}
정렬 결과: {7, 12, 18, 25, 30}
선형 탐색:
25를 찾습니다. 정렬된 배열에서 25는 인덱스 3에 위치합니다.
문제 20.
다음 프로그램은 3×3 정수 배열의 각 열에서 가장 큰 값을 찾아 출력하는 코드이다.
(1) ㉠, ㉡에 들어갈 코드를 쓰고,
(2) 프로그램 실행 결과로 출력되는 세 정수를 순서대로 쓰시오.
|
(1) ㉠: d[0][j]
(1) ㉡: m
(2) 실행 결과: 11 9 10
각 열(세로)의 최댓값을 구합니다.
1열(j=0): {5, 11, 6} → 최댓값 11
2열(j=1): {9, 4, 8} → 최댓값 9
3열(j=2): {2, 7, 10} → 최댓값 10
문제 21.
다음 프로그램은 정수 5개를 입력받아 평균을 구하고, 값의 구간별 개수를 출력하는 코드이다.
사용자가 순서대로 80 35 70 55 20을 입력한다고 할 때,
(1) ㉠, ㉡, ㉢, ㉣에 들어갈 코드를 쓰고,
(2) 프로그램 실행 결과를 모두 쓰시오.
|
(1) ㉠: i + 1
(1) ㉡: &v[i]
(1) ㉢: v[i] >= 70
(1) ㉣: tot / 5
(2) 실행 결과:
평균: 52
70 이상: 2
40~69: 1
40 미만: 2
입력값: 80, 35, 70, 55, 20
합계: 80 + 35 + 70 + 55 + 20 = 260
평균: 260 / 5 = 52
구간별 분류:
- 70 이상: 80, 70 → 2개
- 40~69: 55 → 1개
- 40 미만: 35, 20 → 2개
문제 22.
다음 프로그램은 먼저 학생 수를 입력받고, 각 학생의 학번과 점수를 입력받은 뒤, 입력된 점수 중 최고 점수를 받은 학생의 학번을 출력하는 코드이다.
입력이 다음과 같다고 할 때,
- 첫 줄: 학생 수
4 - 이후 입력(학번, 점수 순서로 4명):
101 76102 88103 69104 90
(1) ㉠, ㉡, ㉢에 들어갈 코드를 쓰고,
(2) 프로그램 실행 결과로 출력되는 값을 쓰시오.
|
(1) ㉠: n
(1) ㉡: sc[i] > max
(1) ㉢: max_id
(2) 실행 결과: 104
입력: 101 76, 102 88, 103 69, 104 90
비교 과정:
- sc[0] = 76 > -1 → max = 76, max_id = 101
- sc[1] = 88 > 76 → max = 88, max_id = 102
- sc[2] = 69 > 88 (거짓)
- sc[3] = 90 > 88 → max = 90, max_id = 104
최고 점수 90점을 받은 학생의 학번은 104입니다.
문제 23.
다음 프로그램은 크기가 5인 정수 배열의 모든 요소를 왼쪽으로 한 칸씩 이동(회전)시키고, 맨 앞에 있던 값은 맨 뒤로 이동시키는 코드이다.
(1) ㉠, ㉡에 들어갈 코드를 쓰고,
(2) 프로그램 실행 결과를 모두 쓰시오.
|
(1) ㉠: a[i + 1]
(1) ㉡: temp
(2) 실행 결과: 20 30 40 50 10
배열의 요소를 왼쪽으로 한 칸씩 당기는(Shift) 알고리즘입니다.
1. 초기 저장:
temp = a[0]을 통해 맨 앞의 값(10)을 임시 변수에 보관합니다. (덮어쓰기 방지)2. 이동(㉠): 반복문을 통해 뒤에 있는 요소
a[i+1]을 앞의 요소 a[i]로 덮어씁니다.- a[0] = a[1] (20)
- a[1] = a[2] (30)
- a[2] = a[3] (40)
- a[3] = a[4] (50)
3. 마무리(㉡): 반복문이 끝나면 맨 마지막 자리(a[4])가 비게 되므로(엄밀히 말하면 복사된 값), 보관해두었던 첫 번째 값
temp(10)를 대입합니다.따라서 {10, 20, 30, 40, 50} → {20, 30, 40, 50, 10}이 됩니다.
문제 24.
다음 프로그램에서 포인터 연산을 이용하여 배열의 값을 계산하는 코드이다. 프로그램 실행 결과로 출력되는 두 개의 정수를 위에서부터 차례대로 쓰시오.
|
첫 번째 출력: 25
두 번째 출력: 27
첫 번째 출력:
- q = a + 4 → q는 a[4] (35)를 가리킴
- *(q - 2) = a[2] = 20
- 20 + 5 = 25
두 번째 출력:
- p = a → p는 a[0]을 가리킴
- *(p + 3) = a[3] = 27
문제 25.
다음 프로그램은 배열을 버블 정렬로 오름차순 정렬한 뒤, 값 25의 위치(인덱스)를 출력하는 코드이다.
(1) ㉠, ㉡에 들어갈 for문의 조건식을 쓰고,
(2) 프로그램 실행 결과로 출력되는 정수를 쓰시오.
|
(1) ㉠: i < n - 1
(1) ㉡: j < n - 1 - i
(2) 실행 결과: 2
버블 정렬(Bubble Sort)을 수행하여 오름차순으로 정렬하는 과정입니다.
1. 바깥쪽 반복문(㉠): 배열의 요소가 n개일 때, 정렬을 완료하기 위해 총 n-1회의 회전(pass)이 필요합니다. 따라서 조건식은
i < n - 1이 됩니다.2. 안쪽 반복문(㉡): 각 회전마다 가장 큰 수가 맨 뒤로 이동하여 고정되므로, 비교해야 할 요소의 개수는 하나씩 줄어듭니다. 따라서 전체 길이에서 현재 회전수(i)와 1을 뺀 범위까지 반복해야 하므로
j < n - 1 - i가 됩니다.정렬 과정:
- 초기 배열: {25, 9, 31, 17, 40}
- 정렬 완료: {9, 17, 25, 31, 40}
정렬된 배열에서 값 25는 인덱스 2에 위치합니다.
문제 26.
다음 프로그램은 3×3 정수 배열에서 각 행의 합을 구하여 출력하는 코드이다.
(1) ㉠, ㉡에 들어갈 코드를 쓰고,
(2) 프로그램 실행 결과로 출력되는 세 정수를 순서대로 쓰시오.
|
(1) ㉠: s += d[i][j];
(1) ㉡: s
(2) 실행 결과: 14 14 17
이중 반복문을 사용하여 2차원 배열의 각 행(row)의 합계를 구하는 과정입니다.
1. 바깥쪽 반복문(i)이 각 행을 순회할 때마다 합계 변수 s를 0으로 초기화합니다.
2. 안쪽 반복문(j)에서는 해당 행(i)의 모든 열(0~2)을 순회합니다.
3. 따라서 빈칸 ㉠에는 현재 행(i)과 열(j)의 값 d[i][j]를 s에 계속 더해주는 누적 연산 코드
s += d[i][j];가 들어가야 합니다.1행(i=0): 2 + 5 + 7 = 14
2행(i=1): 4 + 1 + 9 = 14
3행(i=2): 6 + 3 + 8 = 17
문제 27.
다음 프로그램은 정수 4개를 입력받아 평균을 구하고, 점수 구간별로 개수를 세어 출력하는 코드이다.
사용자가 순서대로 85 60 45 90을 입력한다고 할 때,
(1) ㉠, ㉡, ㉢에 들어갈 코드를 쓰고,
(2) 프로그램 실행 결과를 모두 쓰시오.
|
(1) ㉠: v[i]
(1) ㉡: v[i] >= 60
(1) ㉢: 4
(2) 실행 결과:
평균: 70
80 이상: 2
60~79: 1
60 미만: 1
입력값: 85, 60, 45, 90
합계: 85 + 60 + 45 + 90 = 280
평균: 280 / 4 = 70
구간별 분류:
- 80 이상: 85, 90 → 2개
- 60~79: 60 → 1개
- 60 미만: 45 → 1개
문제 28.
다음 프로그램은 먼저 학생 수를 입력받고, 각 학생의 학번과 점수를 입력받은 뒤, 최댓값을 가진 학생의 학번을 출력하는 코드이다.
입력이 다음과 같다고 할 때,
- 첫 줄: 학생 수
4 - 이후 입력(학번, 점수 순서로 4명):
201 70202 95203 88204 95
(1) ㉠, ㉡, ㉢에 들어갈 코드를 쓰고,
(2) 프로그램 실행 결과로 출력되는 값을 쓰시오.
|
(1) ㉠: sc[i] > max
(1) ㉡: max_id
(1) ㉢: max_id
(2) 실행 결과: 202
입력: 201 70, 202 95, 203 88, 204 95
비교 과정:
- sc[0] = 70 > -1 → max = 70, max_id = 201
- sc[1] = 95 > 70 → max = 95, max_id = 202
- sc[2] = 88 > 95 (거짓)
- sc[3] = 95 > 95 (거짓)
※ 비교 연산자가 >이므로 같은 점수일 때는 첫 번째로 나타난 학생의 학번이 유지됩니다.
따라서 95점을 받은 학생 중 먼저 입력된 202번이 출력됩니다.