본문 바로가기

프로그래밍/Java

이것이 자바다 5장 확인 문제 답 - 신용권의 Java 프로그래밍 정복

728x90
반응형

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


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

 


 

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


3. 참조되지 않는 객체는 프로그램에서 직접 소멸 코드를 작성하는 것이 좋다.

갈비지 컬렉션이라고 하는 곳에서 자동으로 없애준다

 


 

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


2. String 타입의 문자열 비교는 == 를 사용해야한다.

equals() 메소드를 사용한다
String 타입의 == 비교는 주소를 비교하는 것이다

 


 

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


2. int[] array; array = {1, 2, 3};

첫 문장에서 에러난다.

 


 

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


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

false다

 


 

배열의 길이에 대한 문제입니다. array.length의 값과 array[2].length의 값은 얼마입니까?


array.length -> 3

array[2].length - > 5

 


 

주어진 배열의 항목에서 최대값을구해보세요 (for문을 이용하세요).


import java.util.Arrays;
import java.util.Scanner;

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

        for(int i : array) {
            if(max < i) max = i;
        }

        System.out.println("max: " + max);
    }
}

 


 

주어진 배열의 전체 항목의 합과 평균값을 구해보세요(중첩 for문을 이용하세요).


import java.util.Arrays;
import java.util.Scanner;

public class Main {
    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 cnt = 0;

        for(int[] arr : array) {
            for(int i : arr) {
                sum += i;
                cnt++;
            }
        }

        avg = (double)sum / cnt;

        System.out.println("sum: " + sum);
        System.out.println("avg: " + avg);
    }
}

 


 

다음은 키보드로부터 학생 수와 각 학생들의 점수를 받아서, 최고 점수 및 평균 점수를 구하는 프로그램입니다. 실행 결과를 보고, 알맞게 작성해보세요 (참고로 16라인에서 Scanner의 nextInt() 메소드는 콘솔에 입력된 숫자를 읽고리턴합니다).


import java.util.Arrays;
import java.util.OptionalDouble;
import java.util.OptionalInt;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        boolean run = true;
        int studentNum = 0;
        int[] score = 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 = scanner.nextInt();

            if(selectNo == 1){
                System.out.println("학생수> ");
                studentNum = scanner.nextInt();
            } else if(selectNo == 2) {
                if(studentNum == 0) {
                    System.out.println("학생수를 먼저 입력하세요.");
                } else {
                    score = new int[studentNum];
                    for(int i=0; i<score.length; i++) {
                        System.out.println("scores[" + i + "]> ");
                        score[i] = scanner.nextInt();
                    }
                }
            } else if(selectNo == 3) {
                if(score == null) {
                    System.out.println("점수를 먼저 입력해주세요.");
                } else {
                    for(int i=0; i<score.length; i++) {
                        System.out.println("score[" + i + "]: " + score[i]);
                    }
                }
            } else if(selectNo == 4) {
                if(score == null) {
                    System.out.println("점수를 먼저 입력해주세요.");
                } else {
                    OptionalInt max = Arrays.stream(score).max();
                    System.out.println("최고 점수: " + max.getAsInt());
                    OptionalDouble avg = Arrays.stream(score).average();
                    System.out.println("평균 점수: " + avg.getAsDouble());
                }
            } else if(selectNo == 5) {
                run = false;
            } else {
                System.out.println("잘못된 번호가 입력되었습니다.");
            }

        }
        System.out.println("프로그램 종료");
    }
}

 


 

 

 

728x90
반응형