5단원 숙제: 배열¶
배열의 인덱스와 참조값 변화를 추적하세요. 직접 코딩은
Main.java에서 작성합니다.
문제 1. 선언과 생성¶
서로 같은 의미인 배열 선언 두 가지를 쓰고, 길이 5의 int 배열을 생성하는 코드를 작성하세요. 생성 직후 모든 요소의 값도 쓰세요.
문제 2. 인덱스와 경계¶
다음 코드의 출력/오류를 순서대로 쓰고, 오류가 나는 정확한 이유를 설명하세요.
int[] a = {10, 20, 30};
System.out.println(a.length);
System.out.println(a[a.length - 1]);
System.out.println(a[a.length]);
문제 3. 참조의 별칭¶
다음 코드의 출력값을 쓰고, 배열 a와 b가 같은 배열인지 설명하세요.
int[] a = {1, 2, 3};
int[] b = a;
b[1] = 99;
System.out.println(a[1]);
System.out.println(a == b);
문제 4. 배열 복사¶
문제 3에서 원본과 독립적인 배열을 만들려면 어떻게 해야 하나요? for문을 이용한 복사 코드와 System.arraycopy()를 이용한 코드 각각을 쓰세요.
문제 5. 최대/최소와 위치¶
배열 {7, -2, 9, 9, 3}에서 최댓값과 처음 등장한 최댓값의 인덱스를 구하는 코드를 작성하세요. 동점일 때 인덱스가 바뀌지 않게 하세요.
문제 6. String과 char[]¶
다음 코드의 출력값을 쓰고, String을 직접 한 글자씩 수정할 수 없는 이유를 설명하세요.
String s = "Java";
char[] ch = s.toCharArray();
ch[0] = 'j';
System.out.println(s);
System.out.println(new String(ch));
System.out.println(s.charAt(2));
문제 7. 2차원 배열과 가변 배열¶
다음 코드의 출력값을 쓰세요.
int[][] table = {{1, 2}, {3, 4, 5}, {6}};
int sum = 0;
for (int i = 0; i < table.length; i++) {
sum += table[i].length;
}
System.out.println(sum);
System.out.println(table[1][2]);
문제 8. 직접 코딩 - 성적 통계¶
정수 5개를 입력받아 배열에 저장한 뒤, 최댓값·최솟값·평균을 출력하세요.
- 평균은 소수점 아래 두 자리
for문을 두 번 이상 사용하지 말 것- 합계/최대/최소는 한 번의 순회에서 갱신할 것
Score 1: 70
Score 2: 82
Score 3: 91
Score 4: 65
Score 5: 82
max=91, min=65, average=78.00