반응형
1. 참조 타입에 대한 설명으로 틀린 것은 무엇입니까?
- 참조 타입에는 배열, 열거, 클래스, 인터페이스가 있다.
- 참조 타입 변수의 메모리 생성 위치는 스택이다.
- 참조 타입에서 ==, != 연산자는 객체 번지를 비교한다.
참조 타입은 null값으로 초기화할 수 없다.
2. 자바에서 메모리 사용에 대한 설명으로 틀린 것은 무엇입니까?
- 로컬 변수는 스택 영역에 생성되며 실행 블록이 끝나면 소멸된다.
- 메소드 코드나 상수, 열거 상수는 정적(메소드) 영역에 생성된다.
참조되지 않는 객체는 프로그램에서 직접 소멸 코드를 작성하는 것이 좋다.- 배열 및 객체는 힙 영역에 생성된다.
3. String 타입에 대한 설명으로 틀린 것은 무엇입니까?
- String은 클래스이므로 참조 타입이다.
String 타입의 문자열 비교는 ==을 사용해야 한다.- 동일한 문자열 리터럴을 저장하는 변수는 동일한 String 객체를 참조한다.
- new String("문자열")은 문자열이 동일하더라도 다른 String 객체를 생성한다.
4. 배열을 생성하는 방법으로 틀린 것은 무엇입니까?
- int[] array = {1, 2, 3};
int[] array; array = {1, 2, 3};- int[] array = new int[3];
- int[][] array = new int[3][2];
5. 배열의 기본 초기값에 대한 설명으로 틀린 것은 무엇입니까?
- 정수 타입 배열 항목의 기본 초기값은 0이다.
- 실수 타입 배열 항목의 기본 초기값은 0.0f 또는 0.0이다.
boolean 타입 배열 항목의 기본 초기값은 true이다.- 참조 타입 배열 항목의 기본 초기값은 null이다.
6. 배열의 길이에 대한 문제입니다. array.length의 값과 array[2].length의 값은 얼마입니까?
public class Exercise06 {
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);
}
}
정답:
array.length -> (3)
array[2].length -> (5)
7. 주어진 배열의 항목에서 최대값을 구해보세요(for문을 이용하세요.)
import java.util.Arrays;
public class Exercise07{
public static void main(String[] args) {
int max = 0;
int[] array = {1, 5, 3, 8, 2};
//풀이 1
for(int i=0;i<array.length;i++){
Arrays.sort(array);
max = array[4];
}
//풀이 2
for (int i = 0; i < array.length; i++) {
if (array[i] > max) {
max = array[i];
}
}
System.out.println("max: "+max);
}
}
8. 주어진 배열의 전체 항목의 합과 평균값을 구해보세요.(중첩 for문을 이용하세요.)
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 += array[i].length;
}
avg = (double)sum / count;
System.out.println("sum: "+sum);
System.out.println("avg: "+avg);
}
}
9. 다음은 키보드로부터 학생 수와 각 학생들의 점수를 입력받아서, 최고 점수 및 평균 점수를 구하는 프로그램입니다.
실행 결과를 보고, 알맞게 작성해보세요.
(참고로 16라인에서 Scanner의 nextInt() 메소드는 콘솔에 입력된 숫자를 읽고 리턴합니다.)
import java.util.Arrays;
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);
//입력받은 학생 수 만큼 score 배열 생성
//점수입력 시 배열 인덱스에 차례로 값 입력
//분석에서 배열 값 중 최고 점수와 평균 점수 산출
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("score["+i+"]> ");
scores[i] = scanner.nextInt();
}
} else if (selectNo == 3) {
for(int i=0;i<scores.length;i++){
System.out.println("score["+i+"]> "+scores[i]);
}
} else if (selectNo == 4) {
int MAX = 0;
int SUM = 0;
int AVG = 0;
for(int i=0;i<scores.length;i++) {
if (MAX < scores[i]) {
MAX = scores[i];
}
}
for(int i=0;i<scores.length;i++){
SUM += scores[i];
AVG = SUM / scores.length;
}
System.out.println("최고 점수> "+MAX);
System.out.println("평균 점수> "+AVG);
}else if(selectNo == 5){
run = false;
}
}
System.out.println("프로그램 종료");
}
}
반응형
'개념' 카테고리의 다른 글
[이것이 자바다] chapter.6 확인 문제 - 2 (0) | 2023.01.30 |
---|---|
[이것이 자바다] chapter.6 확인 문제 - 1 (0) | 2023.01.20 |
[이것이 자바다] chapter.4 확인 문제 (0) | 2023.01.19 |
[이것이 자바다] chapter.3 확인 문제 (0) | 2023.01.03 |
[이것이 자바다] chapter.2 확인 문제 (0) | 2023.01.03 |