이것이 자바다 5장 확인문제
-
참조 타입에 대한 설명으로 틀린 것은 무엇입니까?
① 참조 타입에는 배열, 열거, 클래스, 인터페이스가 있다.
② 참조 타입 변수의 메모리 생성 위치는 스택이다.
③ 참조 타입에서 ==, != 연산자는 객체 번지를 비교한다.
④ 참조 타입은 null 값으로 초기화할 수 없다.1번 정답
답 : ④
참조 타입 변수는 힙 영역의 객체를 참조하지 않는다는 뜻으로 null 값을 가질 수 있다.
num 값도 초기값으로 사용할 수 있기 때문에 nu11 로 초기화된 참조 변수는 스택 영역에 생성된다.
(변수의 이름은 스택에 생성, 변수의 실제 값은 힙에 생성)
이것이 자바다 143p 참고
-
자바에서 메모리 사용에 대한 설명으로 틀린 것은 무엇입니까?
① 로컬 변수는 스택 영역에서 생성되며 실행 블록이 끝나면 소멸된다.
② 메소드 코드나, 상수, 열거 상수는 정적(메소드) 영역에서 생성된다.
③ 참조되지 않는 객체는 프로그램에서 직접 소멸 코드를 작성하는 것이 좋다.
④ 배열 및 객체는 힙 영역에 생성된다.2번 정답
답 : ③
힙(Heap) 영역
참조하는 변수나 필드가 없다면 의미 없는 객체가 되기 때문에 이것을 쓰레기로 취급하고 JVM 은 쓰레기 수집기(Garbage Collector) 를 실행시켜 쓰레기 객체를 힙 영역에서 자동으로 제거한다.
이것이 자바다 141p 참고
-
String 타입에 대한 설명으로 틀린 것은 무엇입니까?
① String 은 클래스이므로 참조 타입이다.
② String 타입의 문자열 비교는 == 를 사용해야 한다.
③ 동일한 문자열 리터럴을 저장하는 변수는 동일한 String 객체를 참조한다.
④ new String(“문자열”)은 문자열이 동일하더라도 다른 String 객체를 생성한다.3번 정답
답 : ②
동일한 String 객체이건 다른 String 객체이건 상관없이 문자열만을 비교할 때에는 String 객체의 equals() 메소드를 사용해야 한다.
이것이 자바다 147p 참고
-
배열을 생성하는 방법으로 틀린 것은 무엇입니까?
① int[] array = {1, 2, 3};
② int[] array; array = {1, 2, 3};
③ int[] array = new int[3];
④ int[][] array = new int[3][2];4번 정답
답 : ②
변수 = new 타입[] {값1, 값2, 값3, …};
이것이 자바다 153p 참고
-
배열의 기본 초기값에 대한 설명으로 틀린 것은 무엇인가?
① 정수 타입 배열 항목의 기본 초기값은 0이다.
② 실수 타입 배열 항목의 기본 초기값은 0.0f 또는 0.0 이다.
③ boolean 타입 배열 항목의 기본 초기값은 true 이다.
④ 참조 타입 배열 항목의 기본 초기값은 null 이다.5번 정답
답 : ③
boolean 타입 배열 항목의 기본 초기값은 false 이다.
이것이 자바다 156p 참고
-
배열의 길이에 대한 문제입니다. array.length 의 값과 array[2].length 의 값은 무엇입니까?
1 2 3 4 5
int[][] array = { {95, 86}, {83, 92, 96}, {78, 83, 93, 87, 88} };
6번 정답
답 :
- array.length 의 값 → ( 3 )
- array[2].length 의 값 → ( 5 )이것이 자바다 162p 참고
-
주어진 배열의 항목에서 최대값을 구해보세요. (for 문을 이용하세요.)
1 2 3 4 5 6 7 8 9 10
public class Exercise07 { public static void main(String[] args) { int max = 0; int[ ] array = { 1, 5, 3, 8, 2 }; //작성 위치 System.out.println( "max : " + max ); } }
7번 정답
답 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
public class Exercise07 { public static void main(String[] args){ int max = 0; int[ ] array = { 1, 5, 3, 8, 2 }; for(int i = 0; i < array.length; i++){ if (max < array[i]) { max = array[i]; } } System.out.println( "max : " + max ); } }
-
주어진 배열의 전체 항목의 합과 평균값을 구해보세요. (중첩 for 문을 이용하세요.)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
public class Exercise08{ public static void main(String[] args){ int[][] array = { {95, 86}, {83, 92, 96}, {78, 83, 93, 87, 88} }; int sum = 0; double avg = 0.0; //작성 위치 System.out.println("sum: " + sum); System.out.println("avg: " + avg); } }
8번 정답
답 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
public class Exercise08{ public static void main(String[] args){ int[][] array = { {95, 86}, {83, 92, 96}, {78, 83, 93, 87, 88} }; int sum = 0; double avg = 0.0; int count = 0; for(int i = 0; i < array.length; i++){ for(int j = 0; j < array[i].length; j++){ sum += array[i][j]; count++; } } avg = (double)sum/count; System.out.println("sum: " + sum); System.out.println("avg: " + avg); } }
이것이 자바다 170p 참고
-
다음은 키보드로부터 학생 수와 각 학생들의 점수를 입력받아서, 최고 점수 및 평균 점수를 구하는 프로그램입니다. 실행 결과를 보고, 알맞게 작성해보세요 (참고로 16라인에서 Scanner의 nextInt( ) 메소드는 콘솔에 입력된 숫자를 읽고 리턴합니다).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
import java.util.Scanner; public class Exercise09 { public static void main (String[] args){ boolean run = true; int studentNum = 0; int[ ] scores = null; Scanner scanner = new Scanner(System.in); while (run){ System.out.println("-------------------------------------------------------------"); System.out.println("1. 학생수 | 2. 점수입력 | 3. 점수리스트 | 4. 분석 | 5. 종료"); System.out.println("-------------------------------------------------------------"); System.out.print("선택 >"); int selectNo = scanner.nextInt(); if(selecNo == 1){ //작성위치 } else if (selectNo == 2){ //작성위치 } else if (selectNo == 3){ //작성위치 }else if (selectNo == 4){ //작성위치 }else if (selectNo == 5){ run = false; } } System.out.println("프로그램 종료"); } }
실행결과 -———————————————————————————–
1. 학생수 | 2. 점수 입력 | 3. 점수리스트 | 4. 분석 | 5. 종료
-———————————————————————————–
선택> 1
학생수> 3
-———————————————————————————–
1. 학생수 | 2. 점수 입력 | 3. 점수리스트 | 4. 분석 | 5. 종료
-———————————————————————————–
선택> 2
scores[0]> 85
scores[1]> 95
scores[2]> 93
-———————————————————————————–
1. 학생수 | 2. 점수 입력 | 3. 점수리스트 | 4. 분석 | 5. 종료
-———————————————————————————–
선택> 3
scores[0]> 85
scores[1]> 95
scores[2]> 93
-———————————————————————————–
1. 학생수 | 2. 점수 입력 | 3. 점수리스트 | 4. 분석 | 5. 종료
-———————————————————————————–
선택> 4
최고 점수: 95
평균 점수: 91.0
-———————————————————————————–
1. 학생수 | 2. 점수 입력 | 3. 점수리스트 | 4. 분석 | 5. 종료
-———————————————————————————–
선택> 5
프로그램 종료9번 정답
답 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
import java.util.Scanner; public class Exercise09{ public static void main(String[] args){ boolean run = true; int studentNum = 0; int[] scores = null; Scanner scan = new Scanner(System.in); while(run){ System.out.println("-------------------"); System.out.println("1. 학생수 | 2. 점수입력 | 3. 점수리스트 | 4. 분석 | 5. 종료"); System.out.println("-------------------"); System.out.print("선택> "); int selectNo = scan.nextInt(); if(selectNo == 1){ System.out.print("학생수> "); studentNum = scan.nextInt(); scores = new int[studentNum]; } else if(selectNo == 2){ for(int i = 0; i < studentNum; i++){ System.out.print("scores[" + i + "]> "); scores[i] = scan.nextInt(); } } else if(selectNo == 3){ for(int i = 0; i < studentNum; i++){ System.out.println("scores[" + i + "]: " + scores[i]); } } else if(selectNo == 4){ int max = 0; int sum = 0; for(int i = 0; i < studentNum; i++){ if(max < scores[i]) { max = scores[i]; } sum += scores[i]; } System.out.println("최고 점수: " + max); System.out.println("평균 점수: " + (double) sum/studentNum); } else if(selectNo == 5){ run = false; } } System.out.println("프로그램 종료"); } }
🌞 정보 : 공부 기록용 블로그입니다. 오타나 내용 오류가 있을 경우 알려주시면 감사하겠습니다.
댓글남기기