알고리즘/기타퀴즈

이것이 자바다 3장 연산자 Quiz

pitang 2021. 9. 9. 01:06
반응형

안녕하세요. 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 맥북을 사용 중입니다.*

728x90
반응형