본문 바로가기
언어/JAVA

[chapter5] 확인 문제

by 코딩맛집 2023. 1. 30.

1. 참조 타입에 대한 설명으로 틀린 것은 무엇입니까?

4번 참조 타입은 null 값으로 초기화할 수 있다. 

 

2. 자바에서 메모리 사용에 대한 설명으로 틀린 것은 무엇입니까?

3번 참조되지 않은 객체는 프로그램에서 직접 소멸 코드를 작성하는 것이 좋다. -> 직접 작성 안함(garbage collector)

 

3. String 타입에 대한 설명으로 틀린 것은 무엇입니까?

2번 문자열 비교는 equals()이고 ==는 객체의 번지를 비교하는 것이다.

 

4. 배열을 생성하는 방법으로 틀린 것은 무엇입니까?

2번 변수를 생성하는 시점과 배열 값을 생성하는 시점이 다르면 안됨. 올바른 선언은 예를 들어

int[ ] array = new int[ ] {1,2,3}이다. 

 

5.배열의 기본 초기값에 대한 설명으로 틀린 것은 무엇입니까?

3번 boolean 타입 배열 항목의 기본 초기값은 false이다.

 

6. 다음은 배열 길이를 출력하는 코드입니다. 실행 결과를 작성해보세요.

3

5

 

7. 주어진 배열 항목에서 최대값을 출력하는 코드를 작성해보세요.

public class ex7 {
    public static void main(String[] args) {
        int[] array = {1,5,3,8,2};
        int temp = 0;

        for (int i = 0; i < array.length; i++){
            if(array[i] > temp){
                temp = array[i];
            }
        }
        System.out.println(temp);
    }
}

 

8. 주어진 배열 항목의 전체 합과 평균을 구해 출력하는 코드를 작성해보세요.

public class ex8 {
    public static void main(String[] args) {
        int[][] array = {
                {95, 86},
                {83, 92, 96},
                {78, 83, 93, 87, 88}
        };

        int sum = 0;
        int len = 0;
        double avg = 0.0;

        for(int i = 0; i < array.length; i++){
            len += array[i].length;
            for(int j = 0; j < array[i].length; j++)
                sum += array[i][j];
        }
        avg = (double) sum/len;
        System.out.println("전체 합: " + sum);
        System.out.println("평균 : " + avg);
    }
}

 

9. 학생들의 점수를 분석하는 프로그램을 만들려고 합니다. 키보드로부터 학생 수와 각 학생들의 점수를 입력받고 WHILE 문과 Scanner의 nextLine() 메소드를 이용해서 최고 점수 및 평균 점수를 출력하는 코드를 작성해보세요.

import java.util.Scanner;

public class ex9 {
    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.println("선택> ");

            int selectNo = Integer.parseInt(scanner.nextLine());

            if(selectNo == 1) {
                System.out.println("학생수> ");
                studentNum = Integer.parseInt(scanner.nextLine());
                scores = new int[studentNum]; //이건 왜 있는거지?
            } else if (selectNo == 2) {
                for(int i=0; i< scores.length; i++ ){
                    System.out.println("score [" + i + "]>");
                    scores[i] = Integer.parseInt(scanner.nextLine());
                }
            } else if (selectNo == 3){
                for(int i = 0; i<scores.length; i++){
                    System.out.println("scores[" + i + "]: " + scores[i]);
                }
            } else if (selectNo == 4) {
                int max = 0;
                int sum = 0;
                double avg = 0;
                for(int i = 0 ; i <scores.length; i++){
                    max = (max<scores[i])? scores[i] : max;
                    sum += scores[i];
                }
                avg = (double) sum / studentNum;
                System.out.println("최고 점수: " + max);
                System.out.println("평균 점수: " + avg);
            } else if(selectNo == 5){
                run = false;
            }
        }
        System.out.println("프로그램 종료");
    }
}