본문 바로가기
JAVA

명품 자바 에센셜 3강 이론문제

by IT 정복가 2022. 3. 9.
728x90

1. while문을 가진 다음 프로그램에 대해 물음에 답하라.

int i = 0, sum = 0;
while(i<10) {
    i = i + 2;
    sum += i;
}
System.out.println(sum);

(1) 무엇을 계산하는 프로그램이며, 실행 결과는?

답: 10보다 작은 2의 배수, 실행결과: 30

 

(2) 앞의 실행 결과와 동일한 실행 결과를 얻고자 할 때 다음 빈칸을 채워라.

답:

int i = 0, sum = 0;
while(true) {
    i = i + 2;
    sum += i;
    if(i > 10) break;
}
System.out.println(sum);
int i = 0, sum = 0;
do {
    i = i + 2;
    if(i > 10) continue;
    sum += i;
} while(i<10)
System.out.println(sum);

2. 다음 for문에 대해 물음에 답하라.

double sum = 0.0;
double d[] = {1.0, 2.3, 3.4, 5.5};
for(int i=0; i<4; i++) sum += d[i];
System.out.println(sum);

(1) 예상되는 실행 결과는 무엇인가?

답: 12.2

 

(2) for(int i=0; i <4; i++) 부분을 배열의 length 필드를 이용하여 수정하라.

답: for(int i=0; i <d.length; i++)

 

(3) while문으로 바꾸어 작성하라.

답:

double sum = 0.0;
double d[] = {1.0, 2.3, 3.4, 5.5};
int i = 0;
while(i < 4) {
	sum += d[i];
	i++;
}
System.out.println(sum);

 

(4) do-whlie 문으로 바꾸어 작성하라.

답:

 double sum = 0.0;
double d[] = {1.0, 2.3, 3.4, 5.5};
int i = 0;
		
do {
	sum += d[i];
	i++;
}
while(i < 4);
System.out.println(sum);

(5) for-each 문으로 바꾸어 작성하라.

답:

double sum = 0.0;
double d[] = {1.0, 2.3, 3.4, 5.5};
for(double i : d) sum+= i;
System.out.println(sum);

3. 배열을 선언하고 생성하는 다음 물음에 답하라.

(1) 10개의 문자를 가지는 배열 c를 생성하는 코드를 쓰라.

답: char c[] = new char[10];

 

(2) 0에서 5까지 정수 값으로 초기화된 정수 배열 n을 선언하라.

답: int n = {0, 1, 2, 3, 4, 5};

 

(3)'일', '월', '화', '수', '목', '금', '토'로 초기화된 배열 day를 선언하라.

답: char day[] = {'일', '월', '화', '수', '목', '금', '토'};

 

(4) 5행 4열 크기의 실수 배열 d를 선언하라.

답: double d[][] = new double[5][4];

 

(5) 1에서 12까지 순서대로 정수로 초기화되는 3행 4열의 이차원 배열 var을 선언하라.

답: int var[][] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};

 

4. 다음 코드에 대해 실행 중 오류가 발생하는 보기는?

답: 4번, int [][]n = {{1, 2}, {3, 4}, {4, 5}}; 가 되야한다.

 

6. for-each 문을 이용하여 배열 b를 모두 출력하고자 한다. 빈칸에 적절한 코드를 삽입하라.

답:

boolean [] b = {true, false, true, true};
for(boolean boo : b)
    System.out.println(boo);

7. 다음은 사용자로부터 배열의 개수를 얻어서 배열을 생성하여 리턴하는 allocArray() 메서드를 작성하고자 한다.

(1) 빈칸을 적절한 코드로 채워라.

답:

static double[] allocArray() {
    Scanner scanner = new Scanner(System.in);
    double [] n = new double[scanner.nextInt()];
    return n;
}

(2) allocArray()를 호출하여 배열을 전달받는 한 줄의 코드를 작성하라.

답: double d [] = allocArray();

 

8. 다음 코드에 대해 물음에 답하라.

String s = "123";		
try {
	int n = Integer.parseInt(s);
	n++;
	System.out.println(n);
} 
catch (NumberFormatException e) {
	System.out.println(s+"를 정수로 변환할 수 없습니다.");
}
finally {
	System.out.println("계산을 끝냅니다.");
}

(1) 코드를 실행하면 출력되는 내용은?

답: 124

    계산을 끝냅니다.

 

(2) s가 “23.5”일 때 앞의 코드를 실행한 결과 출력되는 내용은?

답: 23.5를 정수로 변환할 수 없습니다.

    계산을 끝냅니다.

728x90