1. 다음은 배열을 선언하거나 초기화한 것이다. 잘못된 것을 고르고 그 이유를 설명하세요.
int[] arr[]; //자료형 뒤나 변수명 뒤중 한곳만 []를 붙여준다. 틀린문법.
int[] arr = {1,2,3,};//옳은 문법
int[] arr = new int[5];//옳은 문법
int[] arr = new int[5]{1,2,3,4,5};//값을 선언해줄 때 크기를 지정해주는 5를 지워줘야한다.
int arr[5]; //선언만 하면서 크기를 지정할 수 없다. int arr[] = new int[5]가 맞는 문법
int[] arr[] = new int[3][]; //1번과 같은 이유 + 1차원배열을 선언하고 2차원배열의 공간을 만드는 것 x
2.다음과 같은 배열이 있을 때, arr[3].length의 값은?
int[][]arr ={
{5,5,5,5,5},
{10,10,10},
{20,20,20,20},
{30,30}
};
//정답은 2 0,1,2,3순이기 때문에 3번 배열은 30이 두개 들어있는 4번째 배열이 된다. 4번째 배열길이는 2
3. 배열 arr에 담긴 모든 값을 더하는 프로그램을 완성하세요.
int[] arr = {10, 20, 30, 40, 50};
int sum = 0;
for(int i =0;i<arr.length;i++){
sum+=arr[i];
}
System.out.println("sum="+sum);
4. 2차원 배열 arr에 담긴 모든 총합과 평균을 구하는 프로그램을 완성하세요.
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;
int cnt = 0;
for(int i =0;i<arr.length;i++){
for(int j =0;j<arr[i].length;j++){
total+=arr[i][j];
cnt++;
}
}
average = (float)(total / cnt);
System.out.println("total=" + total);
System.out.println("average=" + average);
5.다음은 1과 9 사이의 중복되지 않은 숫자로 이루어진 3자리 숫자를 만들어내는 프로그램이다.
코드를 완성하세요. 다만 Math.random()을 사용했기 때문에 실행 결과 예시와 다를 수 있습니다.
int[] ballArr = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int[] ball3 = new int[3];
// 배열 ballArr의 임의의 요소를 골라서 위치를 바꾼다
for (int i = 0; i < ballArr.length; i++) {
int j = (int) (Math.random() * ballArr.length);
int tmp = 0;
tmp = ballArr[j];
ballArr[j] = ballArr[0];
ballArr[0] = tmp;
/*빈 칸*/
}
// 배열 ballArr의 앞에서 3개의 수를 배열 ball3로 복사한다
/*빈 칸*/
for (int i = 0; i < ball3.length; i++) {
ball3[i] = ballArr[i];
System.out.print(ball3[i]);
}
10.단어의 글자위치를 섞어서 보여주고 원래의 단어를 맞추는 예제이다.
실행결과와 같이 동작하도록 빈 칸을 채우세요.
String[] words = { "television", "computer", "mouse", "phone" };
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < words.length; i++) {
char[] question = words[i].toCharArray(); // String을 char[]로 변환
for(int j = 0 ;j < question.length;j++){
int randomNum = (int)(Math.random() *question.length);
char tmp;
tmp = question[0];
question[0] = question[randomNum];
question[randomNum] = tmp;
}
System.out.printf("Q%d. %s의 정답을 입력하세요 .>", i + 1, new String(question));
String answer = scanner.nextLine();
// trim()으로 answer의 좌우 공백을 제거한 후, equals로 word[i]와 비교
if (words[i].equals(answer.trim()))
System.out.printf("맞았습니다.%n%n");
else
System.out.printf("틀렸습니다.%n%n");
}