1. 참조 타입 대한 설명으로 틀린것은 무엇입니까?
① 참조 타입에는 배열,열거,클래스,인터페이스가 있다.
( O )
② 참조 타입 변수의 메모리 생성 위치는 스택이다.
( O )
③ 참조 타입에서 ==,!= 연산자는 객체 번지를 비교한다.
( O )
④ 참조 타입은 null 값으로 초기화 할 수 없다.
2.자바에서 메모리 사용에 대한 설명으로 틀린 것은 무엇입니까?
① 로컬 변수는 스택 영역에 생성되며 실행 블록이 끝나면 소멸된다.
( O )
② 메소드 코드나, 상수, 열거 상수는 정적(메소드)영역에 생성된다.
( O )
③ 참조되지 않는 객체는 프로그램에서 직접 소멸 코드를 작성하는 것이 좋다.
( X ) 자바에서는 더 이상 참조되지 않는 객체의 메모리를 자동으로 GarbageCollection(쓰레기수집) 해준다.
④ 배역 및 객체는 힙 영역에 생성된다.
3.String 타입에 대한 설명으로 틀린 것은 무엇입니까?
① String 은 클래스이므로 참조 타입이다.
( O )
② String 타입의 문자열 비교는 == 를 사용해야 한다.
( X ) = 을 사용한다
③ 동일한 문자열 리터럴을 저장하는 변수는 동일한 String 객체를 참조한다.
( O )
④ new String("문자열")은 문자열이 동일하더라도 다른 String 객체를 생성한다.
( O )
4.배열을 생성하는 방법으로 틀린 것은 무엇입니까? 정답 2
① int [] array = {1,2,3,4};
( O )
② int [] array : array {1,2,3};
( X )
③ int [] array = new int[3];
( O )
④ int [] [] array = new int [3][2]
( O )
5.배열의 기본 초기값에 대한 설명으로 틀린 것은 무엇입니까? 정답 3
① 정수 타입 배열 항목의 기본 초기값은 0이다.
( O )
② 실수 타입 배열 항목의 기본 초기값은 0.0f또는 0.0이다.
( O )
③ boolean 타입 배열 항목의 기본 초기값은 true이다.
( X ) boolean의 초기값은 false 입니다.
④ 참조 타입 배열 항목의 기본 초기값은 null이다.
( O )
6.배열의 길이에 대한 문제입니다. array.length의 값과 array[2].length의 값은 얼마입니까?
------------------------------------ [ Exercise06.java ]-------------------------------------------------------
public static void main(String[] args) {
int[][] array = { { 95, 86 }, { 83, 92, 96 }, { 78, 83, 93, 87, 88 } };
System.out.println(array.length);
System.out.println(array[2].length);
}
}
-------------------------------------------------------------------------------
Console
3
5
-------------------------------------------------------------------------------
7.주어진 배열의 항목에서 최대값을 구해보세요(for문을 이용하세요.)
------------------------------------ [ Exercise07.java ]-------------------------------------------------------
public static void main(String[] args) {
int max = 0;
int[] array = { 1, 5, 3, 8, 2 };
for(int i=0; i<array.length; i++) {
if(max<array[i]) {
max = array[i];
}
}
System.out.println("max: " + max);
}
}
----------------------------------------------------------------------------------
Console
max: 8
-------------------------------------------------------------------------------
8.주어진 배열의 전체 항목의 합과 평균값을 구해보세요.(중첩 for문을 이용하세요.)
------------------------------------ [ Exercise08.java ]-------------------------------------------------------
public class Exercise08 {
public static void main(String[] args) {
int[][] array = {
{95, 86},
{83, 92, 96},
{78, 83, 93, 87, 88}
};
int sum = 0;
double avg = 0.0;
int count = 0;
for(int i=0; i<array.length; i++) {
for(int j=0; j<array[i].length; j++) {
sum += array[i][j];
count++;
}
}
avg = (double) sum / count;
System.out.println("sum: " + sum);
System.out.println("avg: " + avg);
}
}
----------------------------------------------------------------------------------
Console
sum: 881
avg: 88.1
-------------------------------------------------------------------------------
9.다음은 키보드로부터 학생 수와 각 학생들의 점수를 입력받아서, 최고 점수 및 평균 점수를 구하는 프로그램입니다.실행 결과를 보고, 알맞게 작성해보세요.(참고로 16라인에서 Scanner의 nextInt()메소드는 콘솔에 입력된 숫자를 읽고 리턴합니다.)
------------------------------------ [ Exercise09.java ]-------------------------------------------------------
import java.util.Scanner;
public class Exercise09 {
public static void main(String[] args) {
boolean run = true;
int studentNum = 0;
int[] scores = null;
Scanner scanner = new Scanner(System.in);
while(run) {
System.out.println("--------------------------------------------------------------");
System.out.println("1.학생수 | 2.점수입력 | 3.점수리스트 | 4.분석 | 5.종료");
System.out.println("--------------------------------------------------------------");
System.out.print("선택> ");
int selectNo = scanner.nextInt();
if(selectNo == 1) {
System.out.print("학생수> ");
studentNum = scanner.nextInt();
scores = new int[studentNum];
} else if(selectNo == 2) {
for(int i=0; i<scores.length; i++) {
System.out.print("scores[" + i + "]> ");
scores[i] = scanner.nextInt();
}
} else if(selectNo == 3) {
for(int i=0; i<scores.length; i++) {
System.out.println("scores[" + i + "]: " + scores[i]);
}
} else if(selectNo == 4) {
int max = 0;
int sum = 0;
double avg = 0;
for(int i=0; i<scores.length; i++) {
max = (max<scores[i])? scores[i] : max;
sum += scores[i];
}
avg = (double) sum / studentNum;
System.out.println("최고 점수: " + max);
System.out.println("평균 점수: " + avg);
} else if(selectNo == 5) {
run = false;
}
}
System.out.println("프로그램 종료");
}
}
----------------------------------------------------------------------------------
Console
--------------------------------------------------------------
1.학생수 | 2.점수입력 | 3.점수리스트 | 4.분석 | 5.종료
--------------------------------------------------------------
선택> 1
학생수> 10
--------------------------------------------------------------
1.학생수 | 2.점수입력 | 3.점수리스트 | 4.분석 | 5.종료
--------------------------------------------------------------
선택> 2
scores[0]> 80
scores[1]> 70
scores[2]> 60
scores[3]> 50
scores[4]> 40
scores[5]> 30
scores[6]> 20
scores[7]> 10
scores[8]> 25
scores[9]> 96
--------------------------------------------------------------
1.학생수 | 2.점수입력 | 3.점수리스트 | 4.분석 | 5.종료
--------------------------------------------------------------
선택> 3
scores[0]: 80
scores[1]: 70
scores[2]: 60
scores[3]: 50
scores[4]: 40
scores[5]: 30
scores[6]: 20
scores[7]: 10
scores[8]: 25
scores[9]: 96
--------------------------------------------------------------
1.학생수 | 2.점수입력 | 3.점수리스트 | 4.분석 | 5.종료
--------------------------------------------------------------
선택> 4
최고 점수: 96
평균 점수: 48.1
--------------------------------------------------------------
1.학생수 | 2.점수입력 | 3.점수리스트 | 4.분석 | 5.종료
--------------------------------------------------------------
선택> 5
프로그램 종료
-------------------------------------------------------------------------------
'legacy' 카테고리의 다른 글
이것이java다 4.2 반복문 (0) | 2023.04.16 |
---|---|
이것이java다 4. 확인문제 풀이 (0) | 2023.04.16 |
이것이java다 5.1 참조타입 데이터타입 분류 (0) | 2023.04.16 |
이것이java다 5.2장 메모리 사용 영역 (0) | 2023.04.16 |
이것이java다 5.3장 참조 변수의 == , != 연산 (0) | 2023.04.16 |