서노썬
sun noes sun
서노썬
전체 방문자
오늘
어제
  • 카테고리 (142)
    • Java (89)
      • Day1 (20)
      • Day2 (16)
      • Day3 (4)
      • Day4 (5)
      • Day5 (2)
      • Day6 (2)
      • Day7 (4)
      • Day8 (6)
      • Day9 (3)
      • Day10 (0)
      • Day11 (0)
      • Day12 (0)
      • Day13 (3)
      • Day14 (0)
      • Day15 (0)
      • Day16 (0)
      • Day19 (0)
      • Day20 (0)
      • Day21 (2)
      • Day22 (4)
      • Day23 (2)
      • Day24 (5)
      • Day25 (4)
      • Day27 (2)
      • Day28 (3)
      • Day29 (1)
      • Day30 (1)
      • Day31 (0)
      • Day32 (0)
      • Dat33 (0)
      • Day34 (0)
      • Day35 (0)
      • Day36 (0)
    • HTML (37)
      • Day36 (20)
      • Day37 (3)
      • Day38 (2)
      • Day39 (8)
      • Day40 (3)
    • SQL (4)
      • Day40 (4)
      • Day41 (0)
      • Day42 (0)
      • Day43 (0)
      • Day44 (0)
      • Day45 (0)
    • JSP (0)
      • Day46 (0)
      • Day75 (0)
    • PYTHON (0)
      • Day75 (0)
      • Day76 (0)
    • Photo (12)

블로그 메뉴

  • 홈
  • 방명록

인기 글

최근 글

태그

  • java데이터타입
  • 자바연산자
  • 자바break
  • java자료형
  • 논리연산자
  • java메뉴입력
  • Java
  • 자바자료형
  • 자바
  • 자바continue

티스토리

hELLO · Designed By 정상우.
서노썬

sun noes sun

[Java] 자바의 정석 Chapter2.변수 - 연습문제
Java/Day8

[Java] 자바의 정석 Chapter2.변수 - 연습문제

2021. 11. 9. 20:18

1. 자바의 정석 Chapter2.변수 - 연습문제

 

2-1. 8개의 기본형 primitive type

 

  1 byte 2 byte 4 byte 8 byte
논리형 boolean      
문자형   char    
정수형 byte short int long
실수형     float double

 

 

2-2. 주민등록번호를 숫자로 저장하고자 한다. 이 값을 저장하기 위해서는 어떤 자료형을 선택해야 할까? regNo 라는 이름의 변수를 선언하고 자신의 주민등록번호로 초기화 하는 한 줄의 코드를 적으시오.

 

long regNo = 2111080000000L;

 

☞ 정수형 타입으로는 보통 int형을 사용하지만, 주민등록번호는 13자리의 정수기이기 때문에 int형의 범위를 넘어서는 값이다. 그래서 long형을 사용해야 한다. 그리고 리터럴의 접미사 'L'을 잊어서는 안된다.

 

 

2-3. 다음의 문장에서 리터럴, 변수, 상수, 키워드를 적으시오.

int i = 100;
int l = 100L;
final float PI = 3.14f;

 

- 리터럴 : 100, 100L, 3.14f

- 변수 : i, l

- 상수 : PI

- 키워드 : int, final, float, long

 

 

2-4. 다음 중 기본형(primitive type)이 아닌 것은?

a. int
b. Byte
c. double
d. boolean

 

☞ 기본형은 boolean, byte, short, char, int, long, float, double 모두 8개이다. 그 외의 타입은 모두 참조형으로 byte는 기본형이지만 대문자 B를 쓴 Byte는 이후 wrapper class 에서 배우게 될 내용이다.

 

 

2-5. 다음 문장들의 출력결과를 적으세요. 오류가 있는 문장의 경우, '오류' 라고 적으시오.

 

① System.out.println( "1" + "2" )  → 12
② System.out.println( true + "" )  → true
③ System.out.println( 'A' + 'B' )  → 131
④ System.out.println( '1' + 2 )  →  51
⑤ System.out.println( '1' + '2' )  →  99
⑥ System.out.println( 'J' + "ava" )  →  Java
⑦ System.out.println( true + null )  →  오류

 

☞

① "1"+"2" 는 문자열 1과 문자열 2가 합해지는 것으로 1+2가 아닌 1이라는 문자와 2라는 문자의 덧셈연산이기 때문에 12가 된다.

 

② true와 문자열 ""가 만나게 되었기 때문에 자료형이 맞지않아 내부적으로 true를 문자열로 바꿔 true+" " 는 "true"+" "가 된다. 이는 "true+ "가 되고 true가 문자열의 형태로 출력된다.

 

③ 문자형 char 자료형의 입력값은  'A', 'B' 처럼 '  ' 안에 입력한다. 이 때 문자열 "  " 처럼 여러문자를 넣을 수 없으며 공백으로도 둬서는 안되고 반드시 한 개의 문자를 입력해줘야 한다.

 

[char]

'A'= 65, 'B'= 66, 'C'= 67, 'D'= 68, 'E'=69, 'F'=70, 'G'=71 . . .

'0'= 48, '1'=49, '2'= 50, '3'=51, '4'=52, '5'=53, '6'=54 . . . '16'=65

 

char 'A'는 65, 'B'는 66이기 때문에 'A'+'B'는 65+66이 되어 131의 값을 갖게 된다.

 

④ '1'+2 에서 '1'은 49의 값을 갖기 때문에 '1'+2는 49+2가 되고 51의 값을 갖게 된다.

 

⑤ '1'+'2' 에서 '1'은 49의 값을, '2'는 50의 값을 갖기 때문에 '1'+'2'는 49+50이 되어 99의 값을 갖게 된다.

 

⑥ 'J'+"ava"에서 'J'와 "ava"의 자료형이 맞지 않기 때문에 'J'는 내부적으로 문자열로 바꿔 "J"+"ava"가 되고 "Java"가 되어 Java가 출력된다.

 

 

2-6. 다음 중 키워드가 아닌 것은? (모두 고르시오)

a. if
b. True
c. NULL
d. Class
e. System

 

☞ Java에서는 대소문자를 구별하기 때문에 소문자 t가 사용된 true는 키워드지만 대문자 T가 사용된 True는 키워드가 아니다. 다음은 Java에서 사용하는 키워드이다.

 

 

 

2-7. 다음 중 변수의 이름으로 사용할 수 있는 것은? (모두 고르시오)

a. $ystem
b. channel#5
c. 7eleven
d. If
e. 자바
f. new
g. $MAX_NUM
h. hello@com

 

☞

b. channel#5 에서 특수문자 #은 사용할 수 없다. 변수의 이름으로 사용 가능한 특수문자는 오직 $와 _ 2개이다.

 

c.7eleven 에서처럼 변수의 이름은 숫자로 시작할 수 없다.

 

d. If 에서 i가 아닌 대문자 I가 사용되었기 때문에 키워드로 사용되는 if와 다른 것으로 구별되기 때문에 가능하다.

 

f.new 는 Java에서 키워드로 사용되기 때문에 사용할 수 없다.

 

h.hello@com 에서 특수문자 @은 사용할 수 없다.

 

 

2-8. 참조형 변수(reference type)와 같은 크기의 기본형 (primitive type)은? (모두 고르시오)

a. int
b. long
c. short
d. float
e. double

 

☞ 참조형 변수의 크기는 4byte이다. int(4byte), long(8byte), short(2byte), float(4byte), double(8byte)

 

 

2-9. 다음 중 형변환을 생략할 수 있는 것은? (모두 고르시오)

byte b= 10;
char ch = 'A';
int i = 100;
long l = 1000L;

a. b = (byte)i;
b. ch = (char)b;
c. short s = (short)ch;
d. float f = (float)l;
e. i = (int)ch;

 

☞ 작은 자료형에서 더 큰 자료형으로는 자동 형변환이 가능하지만, 큰 자료형 더 작은 자료형으로는 자동 형변환이 불가능하다.

 

 

2-10. char 타입의 변수에 저장될 수 있는 정수 값의 범위는? (10진수로 적으시오)

 

0~65535

☞ char은 2byte의 자료형으로 8bit가 둘, 즉 16bit 이므로 2의 16제곱개를 표현할 수 있다. 2의 16제곱은 65536이며 0을 포함해야 하므로 0~65535 범위의 수를 저장할 수 있다.

 

 

2-11. 다음 중 변수를 잘못 초기화 한 것은? (모두 고르시오)

a. byte b = 256;
b. char c = ' ' ;
c. char answer = 'no' ;
d. float f = 3.14
e. double d = 1.4e3f;

 

☞

a. byte의 범위는 -128~127으로 256을 담을 수가 없다.

b. char은 반드시 한 개의 문자를 ' ' 안에 포함해야 한다.

c. char은 반드시 한 개의 문자만 ' ' 안에 포함해야 한다.

d. 실수는 기본 자료형을 double로 가지기 때문에 float에 담기 위해서는 접미사 f를 붙이거나 형변환이 필요하다.

 

 

2-12. 다음 중 main 메소드의 선언부로 알맞은 것은? (모두 고르시오)

a. public static void main(String[] args)
b. public static void main(String args[])
c. public static void main(String[] arv)
d. public void static main(String[] args)
e. static public void main(String[] args)

 

☞

b. 배열을 의미하는 [] 는 String의 뒤에 붙어도 되고 변수명 args 뒤에 붙어도 된다.

(String[] args는 String args[]와 의미가 같다.)

 

c. args는 변수명이기 때문에 args가 아닌 arv로 사용해도 된다.

 

e. void는 항상 main 앞에 사용되어야 하지만 static과 public은 위치가 바껴도 상관이 없다.

 

 

2-13. 다음 중 타입과 기본값이 잘못 연결된 것은? (모두 고르시오)

a. boolean - false
b. char - '\u0000'
c. float - 0.0
d. int - 0
e. long - 0
f. String - " "

 

☞

d. float 0.0 : 실수의 기본 자료형은 double이기 때문에 float에 값을 담으려면 0.0f로

e. long 0 : 정수의 기본 자료형은 int이기 때문에 0L이 기본값이다.

f. String " " : String은 참조형 타입으로 모든 참조형 타입의 기본값은 null이다. 

'Java > Day8' 카테고리의 다른 글

[Java] 아스키 코드 ASCII & 유니 코드  (0) 2021.11.12
[Java] Package 패키지 & import java.lang  (0) 2021.11.12
[Java] Java API 도큐먼트 & next와 nextLine  (0) 2021.11.12
[Java] 싱글턴 패턴 Singleton Pattern  (0) 2021.11.11
[Java] 자바의 정석 Chapter3.연산자 - 연습문제  (0) 2021.11.10
    'Java/Day8' 카테고리의 다른 글
    • [Java] Package 패키지 & import java.lang
    • [Java] Java API 도큐먼트 & next와 nextLine
    • [Java] 싱글턴 패턴 Singleton Pattern
    • [Java] 자바의 정석 Chapter3.연산자 - 연습문제

    티스토리툴바