변수와 타입
1. 변수에 대해 잘못 설명한 것은?
① 변수는 하나의 값만 저장할 수 있다.
② 변수는 선언 시에 사용한 타입의 값만 저장할 수 있다.
③ 변수는 변수가 선언된 중괄호 {} 안에서만 사용 가능하다.
④ 변수는 초기값이 저장되지 않은 상태에서 읽을 수 있다.
답 : ④
초기화되지 않은 변수는 아직 메모리에 할당되지 않았기 때문에 변수를 통해 메모리 값을 읽을 수 없다.
int value;
int result = value + 10; // 에러 발생
2. 변수 이름으로 사용할 수 없는 것을 모두 선택하시오.
① modelName |
② Class |
③ 6hour |
④ $value |
⑤ _age |
⑥ #name |
⑦ int |
|
답 : ②, ③, ⑦
※ 변수 이름 규칙
1. 소문자로 시작하며(첫단어) 각 단어의 시작 글자는 대문자(두번째 단어부터)
2. 밑줄, 문자, 숫자 사용 가능하지만 첫글자로 숫자는 불가능
3. 예약어(int, void, main, boolean, ... ) 사용 불가
3. 다음 표의 빈 칸에 자바의 기본 타입 8개를 기입하시오.
|
1byte |
2byte |
4byte |
8byte |
정수타입 |
byte |
char |
int |
long |
short |
실수타입 |
|
|
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 의 값의 허용 범위 : -32,768 ~ 32,767
데이터 타입 char 의 값의 허용 범위 : 0 ~ 65535
short 의 범위가 char 허용 범위를 전부 포함하지 못하므로 에러가 발생한다.
6. 다음 강제 타입 변환에서 컴파일 에러가 발생하는 것은?
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;
④ char var = (char) strValue;
답 : ④
String 데이터타입을 char 데이터타입으로 변환하려면 charAt() 을 이용해야한다.(강제타입변환으로는 불가능)
char 데이터타입을 String 데이터타입으로 변환하는 것은 valueOf() 를 사용하면된다.
7. 변수를 잘못 초기화한 것은?
① int var1 = 10; |
② long var2 = 1000000000L; |
③ char var3 =''; |
④ float var4 = 10; |
⑤ String var5 = "abc\ndef"; |
⑥ String var6 = """ abc def """; |
답 : ③
char 형식의 변수에 아무 값도 없는(작은따옴표를 서로 붙여놓은) 값으로 초기화할 수는 없다.
8. 콘솔에 값을 입출력하는 방법에 대해 잘못 설명한 것을 고르시오.
① System.out.print (변수) 는 변수값을 출력시키고 행을 바꾸지 않는다.
② System.out.println (변수) 는 변수값을 출력시키고 행을 바꾼다.
③ System.out.printf ("형식", 변수) 는 주어진 형식대로 변수값을 바꾼다.
④ Scanner 의 nextLine() 메소드는 콘솔에 입력된 내용을 문자열로 읽는다.
답 : ③
System.out.printf("형식문자열" , 값1, 값2, ... ) 는 형식 문자열에 맞춰 뒤의 값을 출력하는 문법이다.
주어진 형식대로 변수값을 출력하지만, 변수값을 바꾸는 것은 불가능하다.
9. 연산식의 타입 변환 중에서 컴파일 에러가 발생하는 것을 고르시오.
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;
답 : ①
정수 타입 변수가 산술 연산식에서 피연산자로 사용되면 int 타입보다 작은 byte, short 타입의 변수는 int 타입으로 자동 타입 변환되어 연산을 수행한다.
10. 문자열을 기본 타입으로 변환하는 코드로 틀린 것은?
① byte var1 = Byte.parseByte(str);
② int var2 = Int.parseInt(str);
③ float var3 = Float.parseFloat(str);
④ double var4 = Double.parseDouble(str);
답 : ②
문자열 => Int 타입으로 변환 시 Int.parseInt 가 아닌 Integer.parseInt 로 써야한다.
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번 줄