문제와 해답은 직접 작성한 것으로 오타가 있을 수도 있으며 해답역시 틀린 부분이 있을 수 있습니다. 틀린 부분에 대한 지적은 적극 수용하도록 하겠습니다. 문제를 먼저 풀어보시고 참고용으로만
봐주시길 바랍니다.
연습문제 3장
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)예상되는 실행 결과는 무엇인가?
d 배열의 모든 값이 더해져 출력된다. [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 < d.length) sum += d[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++];
} while(i < d.length);
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[4][5];
(5)1에서 12까지 순서대로 정수로 초기화되는 3행 4열의 이차원 배열 var을 선언하라.
int[][] var = { {1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12} };
4. 다음 코드에 대해 실행 중 오류가 발생하는 보기는?
②myArray[myArray.length] = 100;
5. 다음 2차원 배열 선언문에서 문법적으로 잘못된 것은?
④int [3][2] 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> allocArray() {
Scanner scanner = new Scanner(System.in);
double [] n = new double[scanner.nextInt()];
<2> // 배열 리턴
(1)빈칸을 적절한 코드로 채워라.
①static double[] ②return
n;
(2)allocArray()를 호출하여 배열을 전달받는 한 줄의 코드를 작성하라.
double [] d =
allocArray();
8.다음 코드에 대해 물음에 답하라.
(1)코드를 실행하면 출력되는 내용은?
123
계산을 끝냅니다.
(2)s가 “23.5”일 때 앞의 코드를 실행한 결과 출력되는 내용은?
23.5를 정수로 변환할 수 없습니다.
계산을 끝냅니다.
Ghost