본문 바로가기

BackEnd/Java

[java] 이것이 자바다 ch2 변수 확인 문제 풀이

728x90
반응형

1. 변수에 대해 잘못 설명한 것은 무엇입니까?


 (1) 변수는 하나의 값만 저장할 수 있다.
 (2) 변수는 선언 시에 사용한 타입의 값만 저장할 수 있다.
 (3) 변수는 변수가 선언된 중괄호 {} 안에서만 사용 가능하다.
 (4) 변수는 초기값이 저장되지 않는 상태에서 읽을 수 있다.

 

정답 : (4) 변수는 초기값이 저장되지 않으면 읽을 수 없습니다.

 

 

 

2. 변수 이름으로 사용할 수 없는 것을 모두 선택하세요.

 

(1) modelName (2) class (3) 6hour (4) $value
(5) _age (6) #name (7) int  

 

정답 : (2), (3), (6), (7)

특수문자는 '$', '_' 만 사용 가능합니다.
예약어는 변수 이름으로 사용할 수 없습니다.

 

 

 

3. 다음 표의 빈 칸에 자바의 기본 타입 8개를 적어보세요.

 

                   크기
타입
1byte 2byte 4byte 8byte
정수타입 (byte) (short / char) (int) (long)
실수타입     (float) (double)
논리타입 (boolean)      

 

 

 

4. 다음 코드에서 타입, 변수 이름, 리터럴에 해당하는 것을 적어보세요.

 

int age;
age = 10;
double price = 3.14;
정답)
▷ 타입 : (int), (double)
▷ 변수 이름 : (age), (price)
▷ 리터럴 : (10), (3.14)

 

 

 

5. 다음 자동 타입 변환에서 컴파일 에러가 발생하는 것을 선택하세요.

 

byte byteValue = 10;
char charValue = 'A';

 

(1) int intValue = byteValue;

(2) int intValue = charValue;

(3) short shortValue = charValue;

(4) double doubleValue = byteValue;

 

정답 : (3)
   ▷ short는 음수(-)가 포함되고 char는 양수만 포함하기 때문에 범위가 다릅니다.

 

 

 

6. 다음 강제 타입 변환에서 컴파일 에러가 발생하는 것을 선택하세요.

 

int intValue = 10;
char charValue = 'A';
double doubleValue = 5.7;
String strValue = "A";

 

(1) double var = (double) intValue;

(2) byte var = (byte) intValue;

(3) int var = (int) doubleValue;

(4) char var = (char) strValue;

 

정답 : (4)
   ▷ String은 char에서 변환할 수 없습니다.

 

 

 

7. 변수를 잘못 초기화한 것은 무엇입니까?

 

(1) int var1 = 10;

(2) long var2 = 10000000000L;

(3) char var3 = ''; //작은따옴표 두 개가 붙어 있음

(4) float var4 = 10;

(5) String var5 = "abc\ndef";

(6) String var6 = """abc def""";

 

정답 : (3)
   ▷ 캐릭터 형태에 값이 하나는 존재해야합니다.

해설 : (6)은 자바13부터 사용가능합니다.

 

 

 

8. 콘솔에 값을 입출력하는 방법에 대해 잘못 설명한 것을 선택하세요.

 

(1) System.out.print(변수)는 변수 값을 출력시키고 행을 바꾸지 않는다.

(2) System.out.println(변수)는 변수 값을 출력시키고 행을 바꾼다.

(3) System.out.printf("형식", 변수)는 주어진 형식대로 변수 값을 바꾼다.

(4) Scanner의 nextLine() 메소드는 콘솔에 입력된 내용을 문자열로 읽는다.

 

정답 : (3)
   ▷ System.out.printf("형식", 변수)는 변수를 주어진 형식에 맞게 출력합니다.

 

 

 

9. 연산식의 타입 변환 중에서 컴파일 에러가 발생하는 것을 선택하세요.

 

byte byteValue = 10;
float floatValue = 2.5F;
double doubleValue = 2.5;

 

(1) byte result = byteValue + byteValue;

(2) int result = 5 + byteValue;

(3) float result = 5 + floatValue; 

(4) double result = 5 + doubleValue;

 

정답 : (1)
   ▷ byte 변수를 더하면 int형으로 계산되기 때문에 byte로 변경할 수 없어서 연산이 적용 안됩니다.
   ▷ (byte)(byteValue + byteValue)로 코드를 변경하면 연산이 적용됩니다.

 

 

 

10. 문자열을 기본 타입으로 변환하는 코드로 틀린 것을 고르세요.

 

String str = 5;

 

(1) byte var1 = Byte.parseByte(str);

(2) int var2 = Int.parseInt(str);

(3) float var3 = Float.parseFloat(str);

(4) double var4 = Double.parseDouble(str);

 

정답 : (2)
   ▷ Int가 아닌 Integer을 사용해야합니다.

 

 

 

11. 다음 코드에서 컴파일 에러가 발생하는 라인을 모두 적어보세요.

 

int v1 = 1;
System.out.println("v1: " + v1);
if(true)
	int v2 = 2;
    if(true){
    	int v3 = 2;
        System.out.println("v1: " + v1);
        System.out.println("v2: " + v2);
        System.out.println("v3: " + v3);
     }
     System.out.println("v1: " + v1);
     System.out.println("v2: " + v2);
     System.out.println("v3: " + v3);
}
System.out.println("v1: " + v1);
System.out.println("v2: " + v2);

 

정답 : (13), (16) 라인

v1은 전역변수, v2는 첫 번째 if문의 지역변수, v3는 두 번째 if문의 지역변수입니다.

 

이렇게 확인 문제를 풀어보니 아직 헷갈리는 개념들도 많았고 모르는 부분도 많네요!

 

개념을 확실하게 더 잡고 넘어가야겠어요!!

 

많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~

 

 

 

728x90
반응형