이것이 자바다 5장 확인문제

  1. 참조 타입에 대한 설명으로 틀린 것은 무엇입니까?
    ① 참조 타입에는 배열, 열거, 클래스, 인터페이스가 있다.
    ② 참조 타입 변수의 메모리 생성 위치는 스택이다.
    ③ 참조 타입에서 ==, != 연산자는 객체 번지를 비교한다.
    ④ 참조 타입은 null 값으로 초기화할 수 없다.

    1번 정답

    답 : ④

    참조 타입 변수는 힙 영역의 객체를 참조하지 않는다는 뜻으로 null 값을 가질 수 있다.
    num 값도 초기값으로 사용할 수 있기 때문에 nu11 로 초기화된 참조 변수는 스택 영역에 생성된다.
    (변수의 이름은 스택에 생성, 변수의 실제 값은 힙에 생성)
    이것이 자바다 143p 참고


  2. 자바에서 메모리 사용에 대한 설명으로 틀린 것은 무엇입니까?
    ① 로컬 변수는 스택 영역에서 생성되며 실행 블록이 끝나면 소멸된다.
    ② 메소드 코드나, 상수, 열거 상수는 정적(메소드) 영역에서 생성된다.
    ③ 참조되지 않는 객체는 프로그램에서 직접 소멸 코드를 작성하는 것이 좋다.
    ④ 배열 및 객체는 힙 영역에 생성된다.

    2번 정답

    답 : ③

    힙(Heap) 영역
    참조하는 변수나 필드가 없다면 의미 없는 객체가 되기 때문에 이것을 쓰레기로 취급하고 JVM 은 쓰레기 수집기(Garbage Collector) 를 실행시켜 쓰레기 객체를 힙 영역에서 자동으로 제거한다.
    이것이 자바다 141p 참고


  3. String 타입에 대한 설명으로 틀린 것은 무엇입니까?
    ① String 은 클래스이므로 참조 타입이다.
    ② String 타입의 문자열 비교는 == 를 사용해야 한다.
    ③ 동일한 문자열 리터럴을 저장하는 변수는 동일한 String 객체를 참조한다.
    ④ new String(“문자열”)은 문자열이 동일하더라도 다른 String 객체를 생성한다.

    3번 정답

    답 : ②

    동일한 String 객체이건 다른 String 객체이건 상관없이 문자열만을 비교할 때에는 String 객체의 equals() 메소드를 사용해야 한다.
    이것이 자바다 147p 참고


  4. 배열을 생성하는 방법으로 틀린 것은 무엇입니까?
    ① 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 참고


  5. 배열의 기본 초기값에 대한 설명으로 틀린 것은 무엇인가?
    ① 정수 타입 배열 항목의 기본 초기값은 0이다.
    ② 실수 타입 배열 항목의 기본 초기값은 0.0f 또는 0.0 이다.
    ③ boolean 타입 배열 항목의 기본 초기값은 true 이다.
    ④ 참조 타입 배열 항목의 기본 초기값은 null 이다.

    5번 정답

    답 : ③

    boolean 타입 배열 항목의 기본 초기값은 false 이다.
    이것이 자바다 156p 참고


  6. 배열의 길이에 대한 문제입니다. 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 참고


  7. 주어진 배열의 항목에서 최대값을 구해보세요. (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 ); 
     }
     }
    


  8. 주어진 배열의 전체 항목의 합과 평균값을 구해보세요. (중첩 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 참고


  9. 다음은 키보드로부터 학생 수와 각 학생들의 점수를 입력받아서, 최고 점수 및 평균 점수를 구하는 프로그램입니다. 실행 결과를 보고, 알맞게 작성해보세요 (참고로 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("프로그램 종료");
         }
     }
    


🌞 정보 : 공부 기록용 블로그입니다. 오타나 내용 오류가 있을 경우 알려주시면 감사하겠습니다.

댓글남기기