본문 바로가기
답안지/명품 자바 에센셜

[이론문제] CHAPTER 03 반복문과 배열 그리고 예외 처리

by upself 2023. 5. 15.
728x90
명품 자바 에센셜

명품 자바 에센셜

황기태

자바 프로그래밍에 빠져들게 하는 재미있고 쉬운 해설서명품 자바 에센셜은 한 학기에 자바의 기초를 습득할 수 있도록 작성된 책이다. 자바 언어에 대한 쉬운 설명과 의미 있는 예제를 도입하여 이론이 프로그래밍으로 이어지게 하고, 이해도 높은 삽화와 그림으로 본문에 쉽게 몰입할 수 있도록 하였다. 그러므로 이 책은...

 
 
 
 
 
 
 

[이론문제]

1. while 문을 가진 다음 프로그램에 대해 물음에 답하라.
int i=0; sum=0;
while(i<10) {
	i = i + 2;
    sum += i;
}
System.out.println(sum);​

⑴ 무엇을 계산하는 프로그램이며, 실행 결과는?
⑵ 앞의 실행 결과와 동일한 실행 결과를 얻고자 할 때 다음 빈칸을 채워라.

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

⑴ 무엇을 계산하는 프로그램이며, 실행 결과는?
10보다 작은 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 + 1;
    if(i > 10) continue;
}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);​

⑴ 예상되는 실행 결과는 무엇인가?
⑵ for(int i=0; i<4; i++) 부분을 배열의 length 필드를 이용하여 수정하라.
⑶ while 문으로 바꾸어 작성하라.
⑷ do-while 문으로 바꾸어 작성하라.
⑸ for-each 문으로 바꾸어 작성하라.

⑴ 예상되는 실행 결과는 무엇인가?
sum = 12.2

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

⑶ while 문으로 바꾸어 작성하라.

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


⑷ do-while 문으로 바꾸어 작성하라.

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


⑸ 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. 배열을 선언하고 생성하는 다음 물음에 답하라.
⑴ 10개의 문자를 가지는 배열 c를 생성하는 코드를 한 줄로 쓰라.
⑵ 0에서 5까지 정수 값으로 초기화된 정수 배열 n을 선언하라.
⑶ '일', '월', '화', '수', '목', '금', '토'로 초기화된 배열 day를 선언하라.
⑷ 5행 4열 크기의 실수 배열 d를 선언하라.
⑸ 1에서 12까지 순서대로 정수로 초기화되는 3행 4열의 이차원 배열 val을 선언하라.

⑴ 10개의 문자를 가지는 배열 c를 생성하는 코드를 한 줄로 쓰라.
char c[] = new char[10];
 
⑵ 0에서 5까지 정수 값으로 초기화된 정수 배열 n을 선언하라.
int n[] = { 0, 1, 2, 3, 4, 5 };

⑶ '일', '월', '화', '수', '목', '금', '토'로 초기화된 배열 day를 선언하라.
char [] day = { '일', '월', '화', '수', '목', '금', '토' };

⑷ 5행 4열 크기의 실수 배열 d를 선언하라.
double[][] d = new double[5][4];

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

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

 
 

4. 다음 코드에 대해 실행 중 오류가 발생하는 보기는?
int myArray[] = {1, 2, 3, 4, 5};​
① myArray[0] = -1; ② myArray[myArray.length] = 100;
③ int [] yourArray = myArray; ④ System.out.println(myArray[1]);

② myArray[myArray.length] = 100;
 
 

5. 다음 2차원 배열 선언문에서 문법적으로 잘못된 것은?
① int n [][] = new int [3][4]; ② int [][] n = new int [3][4];
③ int n [][] = null; ④ int [3][2] n = {{1, 2}, {3, 4}, {5, 6}};

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

6. for-each 문을 이용하여 배열 b를 모두 출력하고자 한다. 빈칸에 적절한 코드를 삽입하라.
boolean [] b = {true, false, true, true};
for(____)
System.out.println(boo);​
boolean [] b = {true, false, true, true};
for(boolean boo : b)
System.out.println(boo);​

 
 

7. 다음은 사용자로부터 배열의 개수를 얻어서 배열을 생성하여 리턴하는 allocArray() 메소드를 작성하고자 한다.
____ allocArray() {
	Scanner scan = new Scanner(System.in);
    double [] n = new double [scanner.nextInt()]; //입력된 정수 크기의 배열 생성
    ____________ //배열 리턴
}

⑴ 빈칸을 적절한 코드로 채워라.
⑵ allocArray()를 호출하여 배열을 전달받는 한 줄의 코드를 작성하라.

⑴ 빈칸을 적절한 코드로 채워라.

static double[] allocArray() {
	Scanner scan = new Scanner(System.in);
    double [] n = new double [scanner.nextInt()]; //입력된 정수 크기의 배열 생성
    return n; //배열 리턴
}​


⑵ 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("계산을 끝냅니다.");
}​

Integer.parseInt(String s)는 문자열 s를 정수로 변환하여 리턴하는 메소드이다. 만일 s가 정수로 변활할 수 없는 문자열이면 NumberFormatException 예외가 발생한다.
⑴ 코드를 실행한 결과 출력되는 내용은?
⑵ s가 "23.5"일 때 앞의 코드를 실행한 결과 출력되는 내용은?

⑴ 코드를 실행한 결과 출력되는 내용은?


⑵ s가 "23.5"일 때 앞의 코드를 실행한 결과 출력되는 내용은?

 

반응형