Java 1월 15일 재시험 (서술형)

박현우·2024년 1월 15일

1.다음 중 기본형 이 아닌 것은 (primitive type) ?(2)(★★★☆☆)
(출제의도 : 객체지향 언어인 자바에 대한 이해)
①. int
②. Byte
③. double
④. boolean

-> 2번

  1. 다음 중 형변환을 생략할 수 있는 것은 모두 고르시오 ?
    (2)(★★★☆☆)(출제의도 : 객체지향 언어인 자바에 대한 이해)
    byte b = 10;
    char ch = 'A';
    int i = 100;
    long l = 1000L;
    ①. b = (byte)i;
    ②. ch = (char)b;
    ③. short s = (short)ch;
    ④. float f = (float)l;
    ⑤. i = (int)ch

-> 4번, 5번

  1. 아래의 코드는 사과를 담는데 필요한 바구니(버켓)의 수를 구하는
    코드이다. 만일 사과의 수가 123개이고 하나의 바구니에는 10개의 사과를
    담을 수 있다면 13개의 바구니가 필요할 것이다 (?)에 알맞은 코드를
    넣으시오 . (2)(★★★☆☆)(출제의도 : 객체지향 언어인 자바에 대한 이해)
    int numOfApples = 123; // 사과의 개수
    int sizeOfBucket = 10; // 바구니의 크기 (바구니에 담을 수 있는 사과의 개수)
    int numOfBucket =
    numOfApples/sizeOfBucket + (?) ;
    System.out.println(" 필요한 바구니의 수 :"+numOfBucket);

-> numOfApples/sizeOfBucket + (numOfApples%sizeOfBucket > 0 ? 1 : 0)

  1. 다음과 같은 배열이 있을 때 arr[3].length의 값은
    얼마인가?(2)(★★★☆☆)(출제의도 : 배열에 대한 이해)
    int[][] arr = {
    { 5, 5, 5, 5, 5},
    { 10, 10, 10},
    { 20, 20, 20, 20},
    { 30, 30}
    };

-> 2

  1. 다음 중 생성자에 대한 설명으로 옳지 않은 것은?
    (2)(★★★☆☆)(출제의도 : 객체지향 언어인 자바에 대한 이해)
    ①. 모든 생성자의 이름은 클래스의 이름과 동일해야한다
    ②. 생성자는 객체를 생성하기 위한 것이다
    ③. 클래스에는 생성자가 반드시 하나 이상 있어야 한다
    ④. 생성자가 없는 클래스는 컴파일러가 기본 생성자를 추가한다

-> 2번

  1. 다음 코드의 실행 결과를 예측하여 적으시오.(2)(★★★☆☆)
    (출제의도 : 객체지향 언어인 자바에 대한 이해)
    class Exercise6_16
    {
    public static void change(String str) {
    str += "456";
    }
    public static void main(String[] args)
    {
    String str = "ABC123";
    System.out.println(str);
    change(str);
    System.out.println("After change:"+str);
    }
    }

-> ABC123
After change:ABC123

  1. 다음 코드의 실행 결과를 예측하여 적으시오.(2)(★★★★☆)
    (출제의도 : 객체지향 언어인 자바에 대한 이해)
    public static void main(String args[])
    {
    int i = 3; int k = 1;
    switch(i)
    {
    case 1: k += 1;
    case 2: k++;
    case 3: k = 0;
    case 4: k += 3;
    case 5: k -= 10;
    default: k--;
    }
    System.out.print(k);
    }

-> -8

  1. 다음 코드의 실행 결과를 예측하여 적으시오.(2)(★★★★☆)
    (출제의도 : 객체지향 언어인 자바에 대한 이해)
    public class good{
    public static void main(String[] args){
    int[][]arr
    = new int[][]{{45,50,75},{89}};
    System.out.println(arr[0].length);
    System.out.println(arr[1].length);
    System.out.println(arr[0][0]);
    System.out.println(arr[0][1]);
    System.out.println(arr[1][0]);
    }
    }

-> 3
1
45
50
89

  1. 다음 코드의 실행 결과를 예측하여 적으시오.(2)(★★★★☆)
    (출제의도 : 객체지향 언어인 자바에 대한 이해)
    public class good {
    public static void main(String[] args)
    {
    int i, j;
    for(j=0, i=0; i<=5; i++)
    {
    j+=i;
    System.out.print(i);
    if(i==5)
    {
    System.out.print("=");
    System.out.print(j);
    }
    else
    {
    System.out.print("+");
    }
    }
    }
    }

-> 1+2+3+4+5=15

  1. 다음 코드의 실행 결과를 예측하여 적으시오.(2)(★★★★★)
    (출제의도 : 객체지향 언어인 자바에 대한 이해)
    public class good
    {
    public static void main(String[] args)
    {
    int i=0;
    int sum=0;
    while (i<10)
    {
    i++;
    if(i%2 ==1)
    continue;
    sum += i;
    }
    System.out.println(sum);
    }
    }

-> 30

11.두 개의 주사위를 던졌을 때 눈의 합이 6이 되는 모든 경우의 수를 출력하는
프로그램이다. (?)에 들어갈 내용을 작성하여라.(2)(★★★★★)
class Exercise4_6 {
public static void main(String[] args) {
for(int i=1;i<=6;i++){
for(int j=1;j<=6;j++){
if((?)){
System.out.println(i+"+"+j+"="+(i+j));
}
}
}
} // main
}
-> i+j==6

12.다음의 코드에 정의된 변수들을 종류별로 구분해서
적으시오.(2)(★★★★★)
class PlayingCard {
int kind;
int num;
static int width;
static int height;
PlayingCard(int k, int n) {
kind = k;
num = n;
}
}
static 변수 : width, height
인스턴스 변수 : kind, num
지역 변수 : k, n

13.아래는 변수의 값에 따라 ‘양수’, ‘음수’, ‘0’ 을 출력하는 코드이다. 삼항
연산자를 이용해서 (1)에 알맞은 코드를 넣으시오.(2)(★★★★★)
class Main01 {
public static void main(String[] args) {
int num = 10;
System.out.println(num > 0 ? "양수" : ( (1) ));
}
}

-> (num < 0 ? "음수" : "0")

14.차원 배열 에 담긴 모든 값의 총합과 평균을 구하는 프로그램의 (1), (2)에
입력해주세요.(2)(★★★★★)
class Exercise5_4
{
public static void main(String[] args)
{
int[][] arr = {
{ 5, 5, 5, 5, 5},
{10,10,10,10,10},
{20,20,20,20,20},
{30,30,30,30,30}
};
int total = 0;
float average = 0;
for(int i=0; i < arr.length;i++) {
for(int j=0; j < arr[i].length;j++) {
(1)
}
}
average = (2)
System.out.println("total="+total);
System.out.println("average="+average);
} // end of main
} // end of class

-> (1) : total += arr[i][j];
(2) : total /(float)(arr.length * arr[0].length)

  1. 다음 중 지역변수에 대한 설명으로 옳지 않은 것은 모두 고르시오?
    (2)(★★★★★)
    ①. 자동 초기화되므로 별도의 초기화가 필요없다
    ②. 지역변수가 선언된 메서드가 종료되면 지역변수도 함께 소멸된다
    ③. 매서드의 매개변수로 선언된 변수도 지역변수이다
    ④. 클래스변수나 인스턴스변수보다 메모리 부담이 적다

-> 1번

0개의 댓글