IT CookBook JAVA 마스터/연습문제

IT CookBook JAVA 마스터 Ch.02 연습문제

은행털이 2023. 10. 23. 06:39

01. 다음 빈칸을 채우시오.

변수는 컴퓨터 프로그램이 처리할 데이터를 저장하는 저장 위치이고, 상수는 final 키워드를 사용하여 데이터를 저장할 수 있는 메모리 공간이지만, 프로그램이 실행되는 동안 메모리에 저장된 데이터를 변경할 수 없고 반드시 선언과 동시에 초기화 해야한다.

② 변수의 유형 중 지역변수는 메서드 내부에 선언된 변수이고, 정적변수는 static 키워드로 정의된 클래스 변수이며, 인스턴스 변수는 클래스 내부에 정의되지만 메서드 내부에는 선언되지 않는 변수이다.

 

02. 다음 프로그램에서 발생하는 오류는 무엇인가?

public class MyClass {
	public static void main(String[] args) {
		int a;
		System.out.println("변수의 값" + a);
	}
}

① 오류가 없다.

② 런타임 에러

③ 변수 a에 값이 할당되지 않았다.

④ 출력되지 않는다.

 

03. 다음 중 변수명으로 옳지 않은 것은 무엇인가?

① $MyVar

② _myVar

③ My Var

④ myVar

 

04. 변수를 상수로 변경하려면 어떻게 해야 하는가?

① 변숫값을 변경하지 않는다.

② final 키워드로 변수를 선언한다.

③ int로 변수를 선언한다.

④ float로 변수를 선언한다.

 

05. float 자료형 변수에 값을 할당하는 올바른 방법은 무엇인가?

① float a = 100.0

② float b = 129

③ float c = 134.78.1

④ float d = -99.90

※ float형에 정수를 입력하면 자동으로 129.0이 입력되며, 뒤에 f, F를 붙이는 것도 생략이 가능하다.

 

06. 다음 프로그램에서 결과를 출력하기 위해 변수 c에 어떤 자료형을 할당해야 하는가?

public class MyClass {
	public static void main(String[] args) {
		int a = 3;
		int b = 5;
		___ c = a/b;
		System.out.println("출력 결과 : " + c);
	}
}

① int

② float

③ char

④ boolean

※ 정수끼리의 나눗셈 연산은 정수값(몫)만 출력함. 사실 이 문제는 3/5는 나누어 떨어지지 않으므로 소수가 나올 것이며 이로 인해 float형을 사용하라는 취지의 문제같은데 피 연산자 둘이 정수형이면 JAVA에서의 나눗셈 연산은 소수가 나올 수 없다.

 

07. 다음 프로그램에서 변수 a는 어떻게 진행되는가?

public class MyClass {
	public static void main(String[] args) {
		int a;
		a = 10;
		System.out.println("변수의 값 : " + a);
		a = null;
	}
}

① 변숫값만 출력된다.

② 단독으로 선언 및 정의된다.

③ 선언 → 정의 → 출력 과정을 거치고 null 값이 저장된다.

④ null 값이 출력된다.

※ 사실 이 코드는 컴파일 오류가 발생한다. null 값은 기본 자료형에 지정할 수 없다. (문제가 엉터리다...)

 

08. 다음 프로그램의 실행 결과는 무엇인가?

public class MyClass {
	public static void main(String[] args) {
		float name = "JavaBook";
		System.out.println(name);
	}
}

① JavaBook

② 컴파일 오류가 발생한다.

③ name

④ 아무것도 출력되지 않는다.

 

09. 다음 프로그램의 실행 결과를 작성하시오.

public class MyClass {
	public static void main(String[] args) {
		byte a = 127;
		System.out.println(a);
		a++;
		System.out.println(a);
		a++;
		System.out.println(a);
		a++;
		System.out.println(a);
	}
}

결과

127

-128 // 오버플로우가 발생해서 값이 넘어감. (byte의 표현 범위는 -128 ~ 127)

-127

-126