이것이 자바다 3장 연산자 Quiz
안녕하세요. pitang입니다.
3장 연산자 퀴즈 총 8문제입니다.
1번
연산자와 연산식에 대한 설명 중 틀린 것은 무엇입니까?
1. 연산자는 피연산자의 수에 따라 단항, 이항, 삼항 연산자로 구분된다.
2. 비교 연산자와 논리 연산자의 산출 타입은 boolean(true/false)이다.
3. 연산식은 하나 이상의 값을 산출할 수도 있다.
4. 하나의 값이 올 수 있는 자리라면 연산식도 올 수 있다.
⬇️⬇️⬇️ 정답은 더보기를 눌러주세요 ⬇️⬇️⬇️
3번
연산식은 반드시 하나의 값을 산출한다.
2번
다음 코드를 실행했을 때 출력 결과는 무엇입니까?
public class Exercise02 { public static void main(String[] args) { int x = 10; int y = 20; int z = (++x) + (y--); System.out.println(z); } }
⬇️⬇️⬇️ 정답은 더보기를 눌러주세요 ⬇️⬇️⬇️
<console>
31
11 + 20 = 31
3번
다음 코드를 실행했을 때 출력 결과는 무엇입니까?
public class Exercise03 { public static void main(String[] args) { int score = 85; String result = (!(score > 90)) ? "가" : "나"; System.out.println(result); } }
⬇️⬇️⬇️ 정답은 더보기를 눌러주세요 ⬇️⬇️⬇️
<console>
가
85는 90을 넘지 않는 수이기에 조건이 참이므로 "가"가 출력된다.
4번
534자루의 연필을 30명의 학생들에게 똑같은 개수로 나누어 줄 때 학생당 몇 개를 가질 수 있고,
최종적으로 몇 개가 남는지를 구하는 코드입니다. ( #1 )과 ( #2 )에 들어갈 알맞은 코드를 작성하세요.
public class Exercise04 { public static void main(String[] args) { int pencils = 534; int students = 30; //학생 한 명이 가지는 연필 수 int pencilsPerStudent = ( #1 ); System.out.println(pencilsPerStudent); //남은 연필 수 int pencilsLeft = ( #2 ); System.out.println(pencilsLeft); } }
⬇️⬇️⬇️ 정답은 더보기를 눌러주세요 ⬇️⬇️⬇️
#1 : pencils / students //나누기
#2 : pencils % students //나머지
5번
다음은 십의 자리 이하를 버리는 코드입니다.
변수 value의 값이 356이라면 300이 나올 수 있도록 ( #1 )에 알맞은 코드를 작성하세요. (산술 연산자만 사용하세요.)
public class Exercise05 { public static void main(String[] args) { int value = 356; System.out.println( #1 ); } }
⬇️⬇️⬇️ 정답은 더보기를 눌러주세요 ⬇️⬇️⬇️
#1 : (value /= 100) * 100
6번
다음 코드는 사다리꼴의 넓이를 구하는 코드입니다. 정확히 소수 자릿수가 나올 수 있도록 ( #1 )에 알맞은 코드를 작성하세요.
public class Exercise06 { public static void main(String[] args) { int lengthTop = 5; int lengthBottom = 10; int height = 7; double area = ( #1 ); System.out.println(area); } }
⬇️⬇️⬇️ 정답은 더보기를 눌러주세요 ⬇️⬇️⬇️
#1 : (double)(lengthTop + lengthBottom) * height / 2
변수들은 int형이기에 double형으로 타입 변환을 해주고
사다리꼴의 공식을 그대로 써주었다.
7번
다음 코드는 비교 연산자와 논리 연산자의 복합 연산식입니다.
연산식의 출력 결과는 주석 뒤에 넣으세요.
public class Exercise07 { public static void main(String[] args) { int x = 10; int y = 5; System.out.println( (x > 7) && (y <= 5) ); // System.out.println( (x&3 == 2) || (y%2 != 1) ); // } }
⬇️⬇️⬇️ 정답은 더보기를 눌러주세요 ⬇️⬇️⬇️
// true : 앞의 조건과 뒤의 조건이 모두 참이므로 참
// false : 앞의 조건이 거짓이므로 거짓
8번
다음은 % 연산을 수행한 결과값에 10을 더하는 코드입니다.
Nan값을 검사해서 올바른 결과가 출력될 수 있도록 ( #1 )에 들어갈 NaN을 검사하는 코드를 작성하세요.
public class Exercise08 { public static void main(String[] args) { double x = 5.0; double y = 0.0; double z = x % y; if( #1 ) { System.out.println("0.0으로 나눌 수 없습니다."); } else { double result = z + 10; System.out.println("결과 : " + result); } } }
⬇️⬇️⬇️ 정답은 더보기를 눌러주세요 ⬇️⬇️⬇️
#1 : Double.isNaN(z)
자바에서 숫자 / 0.0이나 숫자 % 0.0으로 연산을 한다면
각자 Infinity(무한대)와 NaN(Not a Number)라는 문자가 출력이 된다.
수학적으로 어떤 숫자든 간에 0으로 나눌 수도 없고 몫을 구할 수 없기 때문에 당연한 결과이다.
그러므로 Double.isNaN(z)를 사용하면 결과가 NaN이라면 true를 출력하고 아니라면 false를 출력한다.
감사합니다.
*m1 맥북을 사용 중입니다.*