Notice
Recent Posts
Recent Comments
«   2024/11   »
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
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

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

이것이 자바다/05 참조 타입

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

빌드이너프 2024. 2. 1. 13:06

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

➊ 참조 타입에는 배열, 열거, 클래스, 인터페이스가 있다.

➋ 참조 타입 변수의 메모리 생성 위치는 스택이다.
➌ 참조 타입에서 ==, != 연산자는 객체 번지를 비교한다.

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

답: 4

 

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

➊ 로컬 변수는 스택 영역에 생성되며 실행 블록이 끝나면 소멸된다.
➋ 메소드 코드나 상수, 열거 상수는 정적(메소드) 영역에 생성된다.
➌ 참조되지 않는 객체는 프로그램에서 직접 소멸 코드를 작성하는 것이 좋다.

➍ 배열 및 객체는 힙 영역에 생성된다.

답: 3

 

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

➊ String은 클래스이므로 참조 타입이다.
➋ String 타입의 문자열 비교는 ==를 사용해야 한다.
➌ 동일한 문자열 리터럴을 저장하는 변수는 동일한 String 객체를 참조한다.
➍ new String (“문자열”)은 문자열이 동일하더라도 다른 String 객체를 생성한다.

답: 2

 

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

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

➌ int[ ] array = new int[3];
➍ int[ ][ ] array = new int[3][2];

답: 2

 

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

정수 타입 배열 항목의 기본 초기값은 0이다.
➋ 
실수 타입 배열 항목의 기본 초기값은 0.0f 또는 0.0이다.

➌ boolean 타입 배열 항목의 기본 초기값은 true이다.
➍ 
참조 타입 배열 항목의 기본 초기값은 null이다.

답: 3

 

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

int[][] array = {
  {95, 86},
  {83, 92, 96},
  {78, 83, 93, 87, 88}
};

System.out.println(array.length);
System.out.println(array[2].length);

답:

3

5

 

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

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

답: 

int maxNum = 0;
int[] array = {1, 5, 3, 8, 2};

for(int i=0; i<array.length; i++) {
  if(maxNum < array[i]) {
    maxNum = array[i];
  }
}

System.out.println(maxNum);

 

8. 주어진 배열 항목의 전체 합과 평균을 구해 출력하는 코드를 작성해보세요(중첩 for 문 이용).

int[][] array = {
  {95, 86},
  {83, 92, 96},
  {78, 83, 93, 87, 88}
};

답:

int total = 0;
int sum = 0;

for(int i=0; i<array.length; i++) {
  for(int k=0; k<array[i].length; k++) {
    sum += array[i][k];
  }
  total += array[i].length;
}

double avg = (double)sum / total;

System.out.println("합: " + sum);
System.out.println("평균: " + avg);

 

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

------------------------------------------------------
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
프로그램 종료

답: 

import java.util.Scanner;

public class Example {
  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 = Integer.parseInt(scanner.nextLine());
      			
      if(selectNo == 1) {
        System.out.print("학생수> ");
        studentNum = Integer.parseInt(scanner.nextLine());
        scores = new int[studentNum];
        } else if(selectNo == 2) {
          for(int i=0; i<scores.length; i++) {
          System.out.print("scores[" + 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("프로그램 종료");
    }
}