이세개발
Published 2023. 4. 16. 22:01
이것이java다 2. 확인문제 풀이 legacy

1. 자바에서 변수에 대한 설명 중 틀린 것은 무엇입니까?

 

① 변수는 하나의 값만 저장할 수 있다.

② 변수는 선언 시에 사용한 타입의 값만 저장할 수 있다.

③ 변수는 변수가 선언된 중괄호({}) 안에서만 사용 가능하다.

④ 변수는 초기값이 저장되지 않은 상태에서 읽을 수 있다.

 

④ 변수는 초기값이 저장되지 않은 상태에서 읽을 수 있다.  (X)

    변수는 초기값이 할당되지않으면 읽을수 없다.

 

 

 

2. 변수 이름으로 사용 가능한 것을 모두 선택하세요.

 

① modeName

② class

③ 6hour

④ $value

⑤ _age

⑥ int

 

① modeName

④ $value          //$이거나 _ 는 변수의 첫번째글자로 사용가능하다.

⑤ _age            //$이거나 _ 는 변수의 첫번째글자로 사용가능하다.

   (o)

 

② class                // 예약어는 사용할 수 없다. 

③ 6hour              // 첫번째글자로 숫자가 올 수 없다.

⑥ int                  // 예약어는 사용할 수 없다. 

   (X)

 

 

 

3. 다음 표의 빈칸에 자바의 기본 타입 (Primitive Type) 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';

-------------------------------------------------------------------------------

 

① int intValue = byteValue;

② int intValue = charValue;

③ short shortValue = charValue;

④ double doubleValue = byteValue; 

 

③ short shortValue = charValue;  ( short 와 char 는 같은 2byte 크기를 가지는 타입 변수지만 범위가 다르기 때문에 자동 타입 변환이 되지 않는다.)

 

 

6.강제 타입 변환 (Casting) 에 대한 내용입니다. 컴파일 에러가 발생하는 것은 무엇입니까?

 

-----------------------------------------------------------------------------

int intValue = 10;

char charValue = 'A';

double doubleValue = 5.7;

String strValue = "A";

-----------------------------------------------------------------------------

 

① double var = (double) intValue;

② byte var = (byte) intValue;

③ int var = (int) doubleValue;            //에러가 나지는 않지만 정밀도 손실  = 값 5

④ char var = (char) strValue;             // string 타입은 문자열이기 때문에 char 타입으로 변환할 수 없다.  (x)

 

 

 

 

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

 

① int var1 = 10;

② long var2 = 10000000000L;

③ char var3 = '';   //작은따옴표 2개

④ double var4 = 10;

⑤ float var5 = 10;

 

③ char var3 = '';   //char 타입의 변수에 어떤 문자를 대입하지 않고 단순히 초기화를 할 목적으로 다음과 같이 작은 따옴표(') 두개를 연달아 붙인 빈(empty) 문자를 대입하면 컴파일 에러가 발생한다. 그렇기 때문에 공백(유니코드 : 32) 하나를 포함해서 초기화 해야 한다.

 

 

8. 연산식에서의 타입 변환 내용입니다. 컴파일 에러가 생기는 것은 무엇입니까?

 

------------------------------------------------------------------------------------

byte byteValue = 10;

float floatValue = 2.5F;

double doubleValue = 2.5;

-----------------------------------------------------------------------------------

 

① byte result = byteValue + byteValue;

② int result = 5 + byteValue;

③ float result = 5 + floatValue;

④ double result = 5 + doubleValue;

 

① byte result = byteValue + byteValue; (X)

자바는 정수 연산일 경우 int 타입을 기본으로 한다. 그 이유는 피연산자를 4byte 단위로 저장하기 때문이다. 크기가 4byte 보다 작은 타입 (byte, char, short) 는 4byte 인 int 타입으로 변환된 후 연산이 수행된다. 따라서 연산의 결과도 int 타입이 된다.

예를들어 char 타입의 연산 결과는 int 타입으로 산출되므로 int 타입변수에 결과를 저장해야 한다. 연산의 결과를 다시 문자로 출력하거나 저장하기 위해서는 int 결과값을 char 타입으로 강제 변환 (casting) 해야 한다. 따라서 char 타입보다 크기가작은 byte타입도 마찬가지이다.

 

 

 

 

profile

이세개발

@print(name)

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!