본문 바로가기
Solution_/명품 java

[명품 JAVA] 3장 연습문제 (반복문과 배열 그리고 예외 처리)

by 낭람_ 2019. 3. 24.
반응형

[3장 1번]


다음 프로그램의 출력 결과는 무엇인가? 그리고 무엇을 하는 코드인가?

for(int i=1; i<10; i+=2) {
System.out.print(i+" ");
}


- 1 3 5 7 9 (10 미만의 홀수를 출력하는 코드이다.)


[3장 2번]


다음 for 문의 실행 결과 sum 값이 다른 하나는?

1. for(int i=0; i<10; i++) sum += i;
2. for(int i=9; i>0; i--) sum += i;
3. for(int i=0; i>10; i++) sum++;
4. for(int i=0; i<10; sum+=i, i++);


- 3. for(int i=0; i>101; i++) sum++; _ 결과값이 0 (나머지는 결과값이 45이다.)


[3장 3번]


1에서 100까지 3의 배수를 더하는 while 문이다. 빈칸에 적절한 코드를 삽입하라.

int sum = 0, i = 1;
while (i < 100) {
if(i%3 != 0) {
i++;
_____;
}
else sum += i;
i++;
}


- continue


[3장 4번]


1에서 50까지의 합을 더하는 while 문이다. 빈칸에 적절한 코드를 삽입하라.

int sum = 0, i = 1;
while (true) {
if(______) break;
sum += i;
i++;
}


- i > 50


[3장 5번]


다음 배열 선언이 잘못된 것은?

1. int[] n = {1, 2, 3, 4, 5};    2. int n[] = {0};    3. int[] n = new int[3];    4. int n[3] = new int[3];


- 4. int n[3] = new int[3]; _ int n[] = new int[3]; 으로 바꿔야 한다.


[3장 6번]


다음 코드에 대해 실행 중 오류가 발생하는 것은?

int array[] = (1, 2, 3, 4, 5);


1. array[0] = -1;    2. int list[] = array;     3. System.out.println(array[4]);    4. array[array.length] = 100;


- 4. array[array.length] = 100; _ array[array.length]를 하면 array의 범위를 초과한다.


[3장 7번]


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


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

char c[] = new char[10];

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

int n[] = {0, 1, 2, 3, 4, 5};

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

char day[] = {‘일’, ‘월’, ‘화’, ‘수’, ‘목’, ‘금’, ‘토’};


[3장 8번]


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


(1) 4개의 논리 값을 가진 배열 bool을 선언하고 true, false, false, true로 선언하라.

boolean bool[] = {true, false, false, true};

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

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

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

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


[3장 9번]


다음 자바 코드에 대해 답하라.

int myArray[];
myArray[0] = 1;
myArray[1] = myArray[0] + 1;


(1) 어느 부분에 컴파일 오류가 있으며, 오류의 발생 원인은 무엇인가?

- int myArray[]; 부분에 오류가 있으며, 배열의 크기를 지정해줘야 한다.

(2) 오류를 수정하라.

int myArray[] = new int[2];
myArray[0] = 1;
myArray[1] = myArray[0] + 1;


[3장 10번]


배열 alpha를 모두 출력하고자 한다. 빈칸에 적절한 코드를 삽입하라.

(1)
char[] alpha = {'a', 'b', 'c', 'd'};
for(________)
System.out.print(alpha[i]);

(2)
char[] alpha = {'a', 'b', 'c', 'd'};
for(________)
System.out.print(c);


[풀이]

(1)
char[] alpha = {'a', 'b', 'c', 'd'};
for(int i=0; i<alpha.length; i++)
System.out.print(alpha[i]);

(2)
char[] alpha = {'a', 'b', 'c', 'd'};
for(char c : alpha)
System.out.print(c);


[3장 11번]


다음 소스의 출력 결과는?

int n[][] = {{1}, {1, 2, 3}, {1}, {1, 2, 3, 4}, {1, 2}};
for(int j=0; j<n.length; j++){
System.out.print(n[j].length + " ");
}


- 1 3 1 4 2


[3장 12번]


다음 그림과 같은 구조를 가지는 double 타입의 2차원 배열을 선언하고, 값을 직접 배열에 삽입하는 방법으로 그림에 있는 값으로 초기화하는 코드를 작성하라.



[풀이]

double arr[][] = {{1.1, 1.2, 1.2, 1.4}, {2.1, 2.2}, {3.1, 3.2, 1.2}, {4.1}};


[3장 13번]


다음 중 main() 메소드에 대한 설명 중 틀린 것은?

1. 원형은 public abstract void main(String[] args)이다.

2. 자바 프로그램은 main() 메소드에서부터 실행을 시작한다.

3. 명령행이 java Hello abc 5이면, "abc"와 "5"가 문자열 배열로 만들어져 Hello 클래스 안에 있는 main() 메소드에 전달된다.

4. 명령행이 java Hello abc 5일 때, Hello 클래스에 main() 메소드가 없으면 실행 시작 후 바로 오류를 내면서 종료한다.


- 1. 원형은 public abstract void main(String[] args)이다. _ 원형은 public static void main(String[] args)이다.


[3장 14번]


다음 문장에서 빈 칸에 적절한 단어를 찾아 삽입하라.

자바 프로그램이 문법에 맞지 않게 작성되었을 때, 컴파일러는 컴파일 오류를 발생
시킨다. 예외는 컴파일 오류가 없는 지비 프로그램이 실행 중에 발생한 오류를
말하며, 프로그램이 이 오류에 대한 대처가 없다면 바로 종료된다. 이런 오류가 발생
할 가능성이 있는 코드들을 try 블록에 넣고, 오류가 발생하면 처리할 코드는
catch 블록에 넣는다. finally 블록은 생략 가능하다.


반응형

댓글