이것이 자바다 3장 확인문제
-
연산자와 연산식에 대한 설명 중 틀린 것은 무엇입니까?
① 연산자는 피연산자의 수에 따라 단항, 이항, 삼항 연산자로 구분된다.
② 비교 연산자와 논리 연산자의 산출 타입은 boolean(true/false) 이다.
③ 연산식은 하나 이상의 값을 산출할 수도 있다.
④ 하나의 값이 올 수 있는 자리라면 연산식도 올 수 있다.1번 정답
답 : ③
연산식은 반드시 하나의 값을 산출한다.
이것이 자바다 65p 참고
-
다음 코드를 실행했을 때 출력 결과는 무엇입니까?
1 2 3 4 5 6 7 8
public class Exercise02{ public static void main(String[] args) { int x = 10; int y = 20; int z = (++x) + (y--); System.out.println(z); } }
2번 정답
답 : 31
11 + 20
- (x++) : 다른 연산을 수행하지 전에 피연산자의 값 +1 적용
- (y--) : 다른 연산을 수행한 후에 피연산자의 값 -1 적용
11 + 20 연산 후에 y의 값은 19 가 된다.
이것이 자바다 71p 참고
-
다음 코드를 실행했을 때 출력 결과는 무엇입니까?
1 2 3 4 5 6 7
public class Exercise03 { public static void main(String[] args) { int score = 85; String result = (!(score>90))? "가":"나"; System.out.println(result); } }
3번 정답
답 : 가
-
(score>90) == false
score 의 값 85가 90보다 작기 때문에 false 가 산출된다. -
!(score>90) == true
논리부정 연산자 !(피연산자) 는 피연산자의 값을 반대로 산출한다.
ex) true 값이면 false 출력 -
(!(score>90))? “가”:”나” == 가
삼항연산자 는 (조건식) ? (값 또는 연산식1) : (값 또는 연산식2) 이다.
조건식이 true 면 (값 또는 연산식1) 가 결과로 나오고
조건식이 false 면 (값 또는 연산식2) 가 결과로 나온다.
이것이 자바다 87p, 92p, 100p 참고
-
-
534자루의 연필을 30명의 학생들에게 똑같은 개수로 나누어 줄 때 학생당 몇 개를 가질 수 있고, 최종적으로 몇 개가 남는지를 구하는 코드입니다. ( #1 ) ( #2 )에 들어갈 알맞은 코드를 작성하세요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
public class Exercise04{ puvlic static void main(String[] args) { int pencils = 534; int students = 30; //학생 한 명이 가지는 연필 수 int pencilsPerStudent = ( #1 ); System.out.println(perncilsPerStudent); //남은 연필 수 int pencilsLeft = ( #2 ); System.out.println(pencilsLeft); } }
4번 정답
답 :
- ( #1 ) : pencils / students
- ( #2 ) : pencils % students이것이 자바다 76p 참고
-
다음은 십의 자리 이하를 버리는 코드입니다. 변수 value의 값이 356이라면 300이 나올 수 있도록 ( #1 ) 에 알맞은 코드를 작성하세요 (산술 연산자만 사용하세요.)
1 2 3 4 5 6
public class Exercise05{ public static void main(String[] args) { int value = 356; System.out.println( #1 ); } }
5번 정답
답 :
- ( #1 ) : value - (value % 300)이것이 자바다 76p 참고
-
다음 코드는 사다리꼴의 넓이를 구하는 코드입니다. 정확히 소수자릿수가 나올 수 있도록 ( #1 ) 에 알맞은 코드를 작성하세요.
1 2 3 4 5 6 7 8 9
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); } }
6번 정답
답 :
- ( #1 ) : (double)(lengthTop + lengthBottom) * height / 2이것이 자바다 78p 참고
-
다음 코드는 비교 연산자와 논리 연산자의 복합 연산식입니다. 연산식의 출력 결과를 괄호 ( ) 속에 넣으세요.
1 2 3 4 5 6 7 8 9
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) ); --------------( ) } }
7번 정답
답 :
- ( ) : true
- ( ) : false논리연산자
- && : (AND) 피연산자 모두가 true 일 경우에만 연산 결과는 true
- || : (OR) 피연산자 중 하나만 true 이면 연산 결과는 true
이것이 자바다 92p 참고
-
다음은 % 연산을 수행한 결과값에 10을 더하는 코드입니다. NaN 값을 검사해서 올바른 결과가 출력될 수 있도록 ( #1 ) 에 들어갈 NaN을 검사하는 코드를 작성하세요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
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); } } }
8번 정답
답 :
( #1 ) : Double.isNaN(z)/ 또는 % 연산자를 사용 할 때 주의할 점
좌측 피연산자가 정수 타입인 경우 나누는 수인 우측 피연산자는 0을 사용할 수 없다.
만일 0으로 나누면 컴파일은 정상으로 되지만, 실행시 ArithmeticException(예외)이 발생한다.
ex) 5 / 0.0 → Infinity
ex) 5 % 0.0 → NaN연산의 결과가 Infinity 또는 NaN 인지 확인하려면
Double.isInfinite() 와 Double.isNaN() 메소드를 이용해야 한다.연산의 결과가 Infinity 또는 NaN 이면 절대로 다음 연산을 수행하지 못하도록
if 문을 사용해서 실행 흐름을 변경해야 한다.이것이 자바다 83p 참고
🌞 정보 : 공부 기록용 블로그입니다. 오타나 내용 오류가 있을 경우 알려주시면 감사하겠습니다.
댓글남기기