1. 다음 코드의 출력은 무엇입니까?

    int[] arr = {1, 2, 3, 4, 5};
    System.out.println(arr[2]);
    
    

    (A) 2 (B) 3 (C) 4 (D) 5

  2. 다음 코드의 출력은 무엇입니까?

    String str = "hello";
    System.out.println(str.substring(1, 3));
    
    

    (A) el (B) ello (C) llo (D) ol

  3. 다음 코드의 출력은 무엇입니까?

    boolean isPrime = true;
    int n = 13
    for (int i = 2; i < Math.sqrt(n); i++) {
    if (n % i == 0) {
    isPrime = false;
    break;
    }
    }
    if (isPrime) {
    System.out.println("소수입니다.");
    } else {
    System.out.println("소수가 아닙니다.");
    }
    
    

    (A) 소수입니다. (B) 소수가 아닙니다.

  4. 다음 코드의 출력은 무엇입니까?

    Scanner scanner = new Scanner(System.in);
    System.out.println("나이를 입력하세요: ");
    int age = scanner.nextInt();
    if (age >= 18) {
    System.out.println("성인입니다.");
    } else {
    System.out.println("미성년자입니다.");
    }
    
    

    (A) 성인입니다. (B) 미성년자입니다.

  5. 다음 코드의 출력은 무엇입니까?

    int n = 10;
    for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= i; j++) {
    System.out.print("*");
    }
    System.out.println();
    }
    
    

    (A)

    *
    **
    ***
    ****
    *****
    ******
    *******
    ********
    *********
    **********
    
    

    (B)

    *****
    ****
    ***
    **
    *
    
    
  6. 다음 코드의 출력은 무엇입니까?

    int n = 10;
    int sum = 0;
    for (int i = 1; i <= n; i++) {
      sum += i;
    }
    System.out.println(sum);
    
    

    (A) 10 (B) 55 (C) 110 (D) 121

  7. 객체 배열에 대한 설명으로 옳은 것은? a. 객체 배열은 동일한 클래스의 객체들을 저장하기 위한 자료구조이다. b. 객체 배열은 크기를 동적으로 조정할 수 있다. c. 객체 배열의 각 요소는 동일한 인스턴스를 참조할 수 없다. d. 객체 배열은 기본형 데이터 타입만 저장할 수 있다.

  8. 변수의 종류에 대한 설명으로 옳은 것은? a. 클래스 변수는 클래스의 인스턴스마다 독립적인 값을 가지며, 인스턴스 변수는 클래스에 공통된 값을 가진다. b. 지역 변수는 메서드 내에서 선언되며, 메서드 실행이 끝나면 소멸된다. c. 인스턴스 변수는 메서드 내에서 선언되며, 메서드 실행이 끝나도 값이 유지된다. d. 클래스 변수는 메서드 내에서 선언되며, 메서드 실행이 끝나도 값이 유지된다.

  9. 오버로딩의 조건으로 옳은 것은? a. 메서드 이름은 같아야 하고, 매개변수의 개수와 순서는 달라야 한다. b. 메서드 이름은 같아야 하고, 매개변수의 개수와 순서는 같아야 한다. c. 메서드 이름은 달라야 하고, 매개변수의 개수와 순서는 달라야 한다. d. 메서드 이름은 달라야 하고, 매개변수의 개수와 순서는 같아야 한다.

  10. 생성자에서 다른 생성자를 호출하기 위한 키워드는? a. new b. super c. this d. instance

  11. 변수의 초기화에 대한 설명으로 옳은 것은? a. 필수적으로 수행되어야 하며, 초기화하지 않으면 컴파일 오류가 발생한다. b. 선택적으로 수행할 수 있으며, 초기화하지 않으면 자동으로 기본값으로 초기화된다. c. 생성자를 통해서만 가능하며, 직접 초기화할 수 없다. d. 프로그래머가 직접 지정해야 하며, 자동으로 초기화되지 않는다.

  12. 다음 중 상속의 장점으로 옳은 것은? a. 코드의 재사용성을 감소시킨다. b. 클래스 간의 관계를 강력하게 결합한다. c. 코드의 가독성을 향상시킨다. d. 클래스의 선언 순서를 제한한다.

  13. 오버라이딩의 조건으로 옳은 것은? a. 메서드의 이름이 같아야 한다. b. 메서드의 리턴 타입이 같아야 한다. c. 부모 클래스와 자식 클래스 사이에서 발생한다. d. 메서드의 매개변수 개수와 타입이 같아야 한다.

  14. 패키지에 대한 설명으로 옳은 것은? a. 패키지는 클래스의 집합이다. b. 패키지를 사용하지 않으면 클래스를 작성할 수 없다. c. 패키지는 동일한 이름의 클래스를 구별하기 위해 사용된다. d. 패키지는 파일 시스템의 디렉토리 구조와 연결된다.

  15. final 제어자에 대한 설명으로 옳은 것은? a. final로 선언된 클래스는 상속을 받을 수 없다. b. final로 선언된 메서드는 오버라이딩을 할 수 없다. c. final로 선언된 변수는 값이 변경될 수 없다. d. final로 선언된 멤버는 접근 제어자를 사용할 수 없다.

  16. 다형성에 대한 설명으로 옳은 것은? a. 다형성은 하나의 객체가 여러 개의 타입을 가질 수 있는 것을 말한다. b. 다형성은 오버로딩과 동일한 개념이다. c. 다형성은 상속과 관련이 없다. d. 다형성은 컴파일 타임에 결정되는 개념이다.

  17. 오버라이딩을 사용하여 아래 클래스들을 작성하고, 주어진 조건에 맞게 메서드를 오버라이딩하세요.

    class Student {
        void makeSound() {
            System.out.println("공부는 재밌을까?");
        }
    }
    
    class SmartStudent extends Student {
        // SmartStudent 클래스에 해당하는 메서드를 오버라이딩하여 작성하세요.
    
    }
    
    class LazyStudent extends Student {
        // LazyStudent 클래스에 해당하는 메서드를 오버라이딩하여 작성하세요.
    
    }
    
    
  18. 내부 클래스를 활용하여 아래 클래스를 작성하고, 주어진 조건에 맞게 작성하세요.

    class Outer {
        private int x = 10;
    
        // Inner 클래스를 작성하고, Outer 클래스의 x 값을 출력하는 printX() 메서드를 작성하세요.
    
    }
    
    
  19. 아래 인터페이스를 작성하고, 주어진 조건에 맞게 클래스를 구현하세요.

    // 여기에 인터페이스 Vehicle을 작성하세요.
    
    // 여기에 Car 클래스를 작성하고, Vehicle 인터페이스를 구현하세요.
    
    // 여기에 Bicycle 클래스를 작성하고, Vehicle 인터페이스를 구현하세요.