1. 다음의 프로그램은 잘못된 프로그램입니다. 어떤 부분이 잘못되었는지 찾고, 잘못된 이유를 설명하십시오.





byte 는 1 바이트 짜리 타입이라 [ -128, 127 ] 의 범위를 표현한다. 그런데 for 문 안에서 cnt 가 127 이 넘어 가게 된다. byte 가 아니라 int 를 사용해야만 한다.





2. 다음의 리터럴들이 각각 어떤 타입인지 괄호 안에 쓰십시오.


a) "도" (    )

b) 100 (    )

c) 0x01ABf (    )

d) 12e2 (    )

e) false (    )

f) '\123' (    )



a) "도" ( string )

b) 100 ( int )

c) 0x01ABf ( float )

d) 12e2 ( int )

e) false ( boolean )

f) '\123' ( char )




3. 다음 중 잘못된 리터럴을 고르고 어디가 잘못되었는지 설명하십시오.


""   0.0    '\r\n'    .5e100f    0xABCDEFABCDEF    0x12.5e2    "단가:\10000"    TRUE    1e-100f




'\r\n' : 2 개의 문자가 들어 있는 문자열이므로 "\r\n" 이라고 해야 한다.

.5e100f : float 범위를 넘어 선다. f 를 빼야 한다.

0xABCDEFABCDEF : 4 바이트가 넘어가므로 int 에 넣을 수 없다. 만약 long 에 넣고자 한다면 0xABCDEFABCDEFL 이라고 해야 한다.

0x12.5e2 : 16 진수이므로 e 를 쓰면 안 된다. 0x12.5p2 라고 해야 한다.

"단가:\10000" : \ 를 문자열 안에 쓰면 escape sequence 가 된다. 그러므로 "단가:\\10000" 이라고 해야 한다.

TRUE : true 라고 해야 한다.

1e-100f : float 범위를 넘어 선다. f 를 빼야 한다.


+ Recent posts