럿고의 개발 노트
[자바의 정석 3rd Edition] Chapter02. 변수 연습문제 풀이 본문
Chapter02. 연습문제
2-1. 다음 표의 빈 칸에 8개의 기본형(primitive type)을 알맞은 자리에 넣으시오.
종류 / 크기 | 1byte | 2byte | 4byte | 8byte |
---|---|---|---|---|
논리형 | boolean | |||
문자형 | char | |||
정수형 | byte | short | int | long |
실수형 | float | double |
2-2. 주민등록번호를 숫자로 저장하고자 한다. 이 값을 저장하기 위해서는 어떤 자료형(data type)을 선택해야 할 까? regNo라는 이름의 변수를 선언하고 자신의 주민등록번호로 초기화 하는 한 줄의 코드를 적으시오.
long regNo = 9308231234567;
- int는 최대 10자리까지만 저장할 수 있는 데, 주민등록번호는 총 13자리이기 때문에 10자리보다 더 큰 long타입으로 저장하여야 한다.
(long타입은 최대 19자리 까지 저장 가능)
2-3. 다음의 문장에서 리터럴, 변수, 상수, 키워드를 적으시오
int i = 100;
long l = 100L;
final float PI = 3.14f;
- 리터럴 : 100, 100L, 3.14f
- 변수 : i, l
- 키워드 : int, long, final, float
- 상수 : PI
2-4. 다음 중 기본형(primitive type)이 아닌 것은?
- int
- Byte
- double
- boolean
답 : 2
- byte가 기본형이며, Byte는 객체(참조형)이다. 대소문자를 구분하자!
2-5. 다음 문장들의 출력결과를 적으세요. 오류가 있는 문장의 경우, 괄호 안에 '오류' 라고 적으시오.
System.out.println("1" + "2"); // 12(String)
System.out.println(true + ""); // true(String)
System.out.println('A' + 'B'); // 65 + 66 = 131
System.out.println('1' + 2); // 49 + 2 =51
System.out.println('1' + '2'); // 49 + 50 = 99
System.out.println('J' + "ava"); // Java(String)
System.out.println(true + null); // 오류(boolean은 문자열을 제외한 나머지와는 연산 불가능
2-6. 다음 중 키워드가 아닌 것은?(모두 고르시오)
- if // 조건문
- True // true가 키워드로, 대소문자를 구분한다.
- NULL // null이 키워드로, 대소문자를 구분한다.
- Class // class가 키워드며, 대문자는 키워드가 이님
- System // 키워드가 아님
- 대문자로 시작하면 웬만해서 키워드가 아니다.
2-7. 다음 중 변수의 이름으로 사용할 수 있는 것은?(모두 고르시오)
- $ystem
- channel#5 // 특수문자는 $, _만 사용가능
- 7eleven // 첫 글자 숫자 불가능
- If
- 자바
- new // 키워드 사용 불가
- $MAX_NUM
- hello@com // 특수문자는 $, _만 사용가능
- 식별자 규칙
- 대소문자 구분, 길이 제한 없음
- 예약어(키워드) 사용 불가
- 숫자로 시작 안됨
- 특수문자는 _, $만 허용
- 한글도 사용이 가능하지만, 사용하지 않는 것이 좋음
2-8. 참조형 변수(reference type)와 같은 크기의 기본형(primitive type)은?(모두 고르시오)
- int // 4byte
- long // 8byte
- short // 2byte
- float // 4byte
- double // 8byte
- 참조형은 4byte로 주소체계이다.
2-9. 다음 중 형변환을 생략할 수 있는 것은?(모두 고르시오)
byte b = 10;
char ch = 'A';
int i = 100;
long l = 1000L;
- b = (byte)i; // 큰타입을 저장하는 것이기 때문에 생략 불가능
- ch = (char)b; // 범위가 달라서 형변환 필요
- short s = (short)ch; // 범위가 달라서 형변환 필요
- float f = (float)l; // float범위가 long범위보다 더 크기 떄문에 생략 가능
- i = (int)ch; // 더 작은 타입을 저장하는 것이 때문에 생략 가능
2-10. char타입의 변수에 저장될 수 있는 정수 값의 범위는?(10진수로 적으시오)
216 = 65536(0 ~ 65535)
2-11. 다음 중 변수를 잘못 초기화 한 것은? (모두 고르시오)
- byte b = 256; // 값이 더 크기 때문에 초기화가 되지 않음.
- char c = ''; // 반드시 한 개의 문자를 지정해줘야 함.
- char answer = 'no'; // char타입은 한문자만 저장 가능하기 때문에 초기화 되지 않음
- float f = 3.14; // 접미사를 붙여줘야 하기 때문에 형변환 필요.
- double d = 1.4e3f; // 자동 형변환이 되어서 초기화 됨
2-12. 다음 중 main메서드의 선언부로 알맞은 것은?(모두 고르시오)
- public static void main(String[] args)
- public static void main(String args[])
- public static void main(String[] arv)
- public void static main(String[] args)
- static public void main(String[] args) // public과 static은 위치가 바뀌어도 됨.
- 1, 2, 3, 5
2-13. 다음 중 타입과 기본값이 잘못 연결된 것은? (모두 고르시오)
- boolean = false
- char = \u0000
- float = 0.0 // 기본값은 0.0f임.(0.0은 0.0d에서 d가 생략된 것으로 double의 기본값이다.)
- int = 0
- long = 0 // 기본값은 0L이다. 0은 int형의 기본값
- String = "" // 모든 참조형의 타입의 기본값은 null
출처
'Java Note > 자바의 정석 3rd Edition' 카테고리의 다른 글
[자바의 정석 3rd Edition] Chapter04. 조건문과 반복문 연습문제 풀이 (0) | 2020.03.04 |
---|---|
[자바의 정석 3rd Edition] Chapter03. 연산자 연습문제 풀이 (0) | 2020.02.02 |
Comments