혼자 공부하는 자바 05장 참조 타입 확인 문제

2023. 2. 13. 23:00공부/자바

반응형

 

 
혼자 공부하는 자바
혼자 해도 충분하다! 1:1 과외하듯 배우는 자바 프로그래밍 자습서 (JAVA 8 &11 지원) 이 책은 독학으로 자바를 배우는 입문자가 ‘꼭 필요한 내용을 제대로’ 학습할 수 있도록 구성했다. ‘무엇을’ ‘어떻게’ 학습해야 할지 조차 모르는 입문자의 막연한 마음을 살펴, 과외 선생님이 알려주듯 친절하게, 그러나 핵심적인 내용만 콕콕 집어준다. 책의 첫 페이지를 펼쳐서 마지막 페이지를 덮을 때까지, 혼자서도 충분히 자바를 배울 수 있다는 자신감과 확신이 계속될 것이다! 20명의 베타리더 검증으로, ‘함께 만든’ 입문자 맞춤형 도서 20명의 베타리더와 함께 구성하여 입문자에게 맞는 난이도, 분량, 학습 요소 등을 적극 반영했다. 어려운 용어와 개념은 한번 더 풀어 쓰고, 복잡한 설명은 눈에 잘 들어오는 그림으로 풀어 냈다. ‘혼자 공부해본’ 여러 입문자의 초심과 눈높이가 책 곳곳에 반영된 것이 이 책의 가장 큰 장점이다.
저자
신용권
출판
한빛미디어
출판일
2019.06.10

 

<혼자 공부하는 자바> 신용권 저, 한빛 미디어 출판(2019.06.10)

 

※ 직접 풀이한 문제

 

05-1 확인 문제 175p

05-1-1 맞는 것에 O표, 틀린 것에 X표 하세요.

  1. o
  2. o
  3. o
  4. x - 참조 변수는 null 값으로 초기화할 수 있으며 이는 참조하는 것이 없는 뜻이다.

05-1-2 맞는 것에 O표, 틀린 것에 X표 하세요.

  1. o
  2. o
  3. x - JVM이 자동으로 수거한다. (가비지 컬렉터)
  4. o

05-1-3 맞는 것에 O표, 틀린 것에 X표 하세요.

  1. o
  2. x - 참조 타입에서 ==, !=은 번지 비교이며, String은 equals() 메소드를 사용해야 한다.
  3. o
  4. o

05-1-4 맞는 것에 O표, 틀린 것에 X표 하세요.

  1. o
  2. o
  3. o
  4. x - 초기화뿐만 아니라 null로 초기화된 참조 변수에도 해당

05-1-5 실행결과를 빈 칸에 기술하세요.

  1. true
  2. false
  3. true
  4. true
  5. true

 

 

05-2 확인 문제 199p

05-2-1 틀린 것은 무엇입니까?

  • ② int[] array;array={1,2,3};
  • 배열 변수를 선언하고 나중에 초기화를 한다면 new를 통해 배열을 초기화 해야한다.

05-2-2 틀린 것은 무엇입니까?

  • ③ boolean 타입 배열 항목의 기본 초기값은 true이다.
  • boolean 타입 배열 항목의 기본 초기값은 false이다.

05-2-3 array.length의 값과 array[2].length의 값은 얼마입니까?

  • array.length : 3
  • array[2].length : 5

05-2-4 주어진 배열의 항목에서 최대값을 구해보세요.

// answer for문 순회
package sec02.verify.exam04;

public class Example {
	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);
	}
}
// answer 향상된 for문
package sec02.verify.exam04;

public class Example2{
	public static void main(String[] args){
		int max=0;
		int[] array={1,5,3,8,2};
		for(int item : array){
			if(max<item){
				max=item;
			}
		}
		System.out.println("max : "+max);
	}
}
// answer 3항 사용
package sec02.verify.exam04;

public class Example3{
	public static void main(String[] args){
		int max=0;
		int[] array={1,5,3,8,2};
		for(int item : array){
			max=(max<item)?item:max;
		}
		System.out.println("max : "+max);
	}
}

05-2-5 중첩 for문을 이용해서 주어진 배열의 전체 항목의 합과 평균값을 구해보세요.

//answer
package sec02.verify.exam04;

public class Example3{
	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 k=0;k<array[i].length;k++){
				sum+=array[i][k];
				count++;
			}
		}

		avg=(double)sum/count;

		System.out.println("sum: "+sum);
		System.out.println("avg: "+avg);
	}
}

05-2-6 실행결과를 보고 알맞게 작성해보세요.

// answer
package sec02.vertify.exam06;
import java.util.Scanner;

public class Exam06{
	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.prpackage sec02.verify.exam06;

import java.util.Scanner;

public class Example{
	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=Integer.parseInt(scanner.nextLine());
			if(selectNo==1){
				System.out.print("학생수> ");
				studentNum=Integer.parseInt(scanner.nextLine());
			}else if(selectNo==2){
				scores=new int[studentNum];
				for(int i=0;i<scores.length;i++){
					System.out.print("scores["+i+"]> ");
					scores[i]=Integer.parseInt(scanner.nextLine());
				}
			}else if(selectNo==3){
				for(int i=0;i<scores.length;i++){
					System.out.print("scores["+i+"]> "+scores[i]);
				}
			}else if(selectNo==4){
				int sum=0;
				int max=0;
				double avg=0.0;
				
				for(int i=0;i<scores.length;i++){
					sum+=scores[i];
					if(max<scores[i]){
						max=scores[i];
					}
				}
				avg=(double)sum/studentNum;
				System.out.println("최고 점수 : "+max);
				System.out.println("평균 점수 : "+avg);
			}else if(selectNo==5){
				run=false;
			}
		}
		System.out.println("프로그램 종료");
	}
}intln("1.학생수 | 2.점수입력 | 3.점수리스트 | 4.분석 | 5.종료");
			System.out.println("----------------------------------------------------")
			System.out.print("선택> ");

			int selectNo=Integer.parseInt(scanner.nextLine());
			if(selectNo==1){
				System.out.print("학생수> ");
				studentNum=Integer.parseInt(scanner.nextLine());
			}else if(selectNo==2){
				scores=new int[studentNum];
				for(int i=0;i<scores.length;i++){
					System.outprint("scores["+i+"]> ");
					scores[i]=Integer.parseInt(scanner.nextLine());
				}
			}else if(selectNo==3){
				for(int i=0;i<scores.length;i++){
					System.outprint("scores["+i+"]> "+scores[i]);
				}
			}else if(selectNo==4){
				int sum=0;
				int max=0;
				double avg=0.0;
				
				for(int i=0;i<scores.length;i++){
					sum+=scores[i];
					if(max<scores[i]){
						max=scores[i]
					}
				}
				avg=(double)sum/studentNum;
				System.out.println("최고 점수 : "+max);
				System.out.println("평균 점수 : "+avg);
			}else if(selectNo==5){
				run=false;
			}
		}
		System.out.println("프로그램 종료");
	}
}

 

05-3 확인 문제 210p

05-3-1 맞는 것에 O표, 틀린 것에 X표 하세요.

  1. o
  2. o
  3. x - 열거 타입 변수도 참조 타입이기 때문에 null을 대입할 수 있다.
  4. o

05-3-2 LoginResult 열거 타입을 선언해보세요.

//answer
public enum LoginResult{
	FAIL_PASSWORD,
	SUCCESS,
	FAIL_ID
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형