IT CookBook JAVA 마스터/연습문제

IT CookBook JAVA 마스터 Ch.03 연습문제

은행털이 2023. 10. 23. 07:36

01. 다음 빈칸을 채우시오.

연산자는 컴파일러에 어떤 작업을 수행하도록 지시하는 기호이다. + 기호를 사용하여 두 수를 더하는 경우니 2 + 3 = 5에서 2와 3은 피연산자이고 +는 연산자에 해당한다.

 

02. 다음 프로그램의 오류는 무엇인가?

public class MyClass {
	public static void main(String[] args) {
		int a = 4;
		float b = 3;
		int c = ++a + -b;
		System.out.println(c);
	}
}

① int와 float을 처리할 수 없다.

② 하나의 변수에 두 연산자가 할당된다.

③ float을 int로 변환할 수 없다.

④ 오류가 없다.

 

03. 다음 프로그램의 실행 결과는 무엇인가?

public class MyClass {
	public static void main(String[] args) {
		int a = 5, b = 4;
		float c;
		System.out.println(c = a%b);
	}
}

① 1.0

② 1.25

③ 컴파일 오류

④ 54

 

04. 다음 프로그램의 실행 결과는 무엇인가?

public class MyClass {
	public static void main(String[] args) {
		int x = 5;
		System.out.println(++x + x);
	}
}

① 8

② 9

③ 10

④ 12

 

05. 다음 프로그램의 실행 결과는 무엇인가?

public class MyClass {
	public static void main(String[] args) {
		String a = "JavaBook";
		String c = "Java";
		String d = "Book";
		String b = c + d;

		if (a == b) {
			System.out.println("a와 b는 같다.");
		}
		else {
			System.out.println("a와 b는 같지 않다.");
		}
	}
}

① a와 b는 같다.

② a와 b는 같지 않다.

③ 컴파일 오류가 발생한다.

④ 컴파일 되었지만 아무것도 출력되지 않는다.

※ a와 b 모두 JavaBook이라는 문자열이지만, b는 c+d로 새롭게만든 객체이기 때문에 a와는 주소 값이다름.

==는 객체의 값(주소)를 비교하는 연산자이므로 순수 문자열이 같은지 알기 위해서는 equals()를 사용해야 한다.

 

06. 다음 프로그램에서 가장 먼저 실행되는 연산자는 무엇인가?

public class MyClass {
	public static void main(String[] args) {
		int a, b, c, d, e, f, g, h;
		
		h = (a + b) * c - d % e + f / g;
		
		System.out.println(h);
	}
}

① c - d

② e + f

③ (a + b)

④ e + f / g

※ 프로그램 자체는 값이 할당되지 않았으므로 오류가난다(...) 심지어 책의 내용에서는 system.out.println(h);로 시스템 클래스를  소문자로(...) 호출하는 오타까지 범하였다. 계속 느끼지만 이 책은 엉터리다. 애초에 5번문제도 JAVA 초반수준에서는 알 수 없는 문제다...

 

07. 다음 프로그램에서 자바의 연산자 우선순위에 따른 출력값은 무엇인가?

public class MyClass {
	public static void main(String[] args) {
		int a = 3, b = 4, c = 5;
		
		int d = (a + b) * c;
		
		System.out.println(d);
	}
}

① 35

② 60

③ 70

④ 12

 

08. 다음 실행 결과를 참고하여 키보드로 'JavaBook'이라는 문자열을 입력받아 출력하는 프로그램을 작성하시오.

문자열 입력 : JavaBook

출력 결과 : JavaBook

import java.utill.Scanner;

public class MyClass {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		
		System.out.print("문자열 입력 : ");
		String s = input.nextLine();
		
		System.out.println("출력 결과 : " + s);
	}
}

 

09. 다음 프로그램의 실행 결과를 작성하시오.

public class MyClass {
	public static void main(String[] args) {
		int x = 1;
		int y = 2;
		int z = ++x + -y;
		
		System.out.println("출력 결과 : " + z);
	}
}

출력결과

0

 

10. 다음 실행 결과를 참고하여 키보드로 두 정수를 입력받아 합과 평균을 구하는 프로그램을 작성하시오.

import java.util.Scanner;

public class MyClass {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		
		System.out.print("숫자1 : ");
		int n1 = input.nextInt();
		
		System.out.print("숫자2 : ");
		int n2 = input.nextInt();
		
		int sum = n1 + n2;
		double avg = (float)sum / 2;
		
		System.out.println("합계 : " + sum);
		System.out.println("평균 : " + avg);
	}
}