메모장

[과제] 멘토씨리즈 자바 문제풀이 본문

JAVA/[멘토씨리즈]

[과제] 멘토씨리즈 자바 문제풀이

Itchild 2024. 4. 9. 13:06
728x90
반응형

 

 

< 변수와 자료형 >

 

  1. 메모리에 값을 저장하기 위해 할당 받아 사용하는 특정공간을 변수 (이)라고 합니다.

변수를 선언하기 위해서는 변수에 담을 데이터의 형태 (자료형)변수 이름이 필요합니다.

2. 변수 이름으로 사용 할수 있는것 !

- 변수 이름의 특징 -

▶ 첫 글자는 숫자로 시작 x , 일반적으로 영어 소문자로 시작

▶ 특수문자는 $, '_' (언더바) 만 사용가능하다

▶ 영어+숫자 조합은 괜찮다 !

 

3. 다음 코드에서 컴파일 에러가 발생하는 곳을 찾아보고 , 그 이유를 적기 !

package section02;

public class PRACTICE_02_03 {
	public static void main(String[] args) {
		String fruit = "Apple";
	}
	System.out.println("I like" + fruot);
}
 

main 메서드 안에서 선언된 문자열 "Apple"은 그 main 중괄호 안에서만 사용이 가능하다 !

지금 main 중괄호 밖에서 출력 하고 있으므로 오류가 발생한다.

 

4. 다음코드를 실행했을때 콘솔창에 출력되는 결과는 무엇일까 ?

package section02;

public class PRACTICE_02_04 {
	public static void main(String[] args) {
		int numI = 'A';
		System.out.println(numI);
		
		char numC = 66;
		System.out.println(numC);
	}
}
 

정답 65, B

'A' 라는 문자형은 아스키 코드가 적용되어 int 정수로는 65 이다 !

또한 66 이라는 숫자 또한 아스키 코드표에 의하여 이에 해당하는 문자형은 B 이다.

 

5. 다음코드에서 컴파일 오류가 발생하지 않으려면 코드를 어떻게 수정해야 할까 ?

float pie = 3.1415;
 

float 라는 자료형 뒤에는 식별자인 대문자 'F' 나 소문자 'f' 를 숫자 뒤에 붙여서 float 형 임을 알려줘야 한다.

정답 :

float pie = 3.1415F;
 

 

6. 다음과 같은 결과가 나오도록 ( ) 빈칸에 알맞은 코드를 작성해보세요 .

package section02;

public class PRACTICE_02_06 {
	public static void main(String[] args) {
		int n1 = 7;
		System.out.println(n1);
		
		double n2 = "(      )" n1;
		System.out.println(n2);
	}                                                                            실행결과
}                                                                                   7
                                                                                    7.0
 

정답 : (double) 을 붙여 자동 형변환을 시켜준다 !

자동 형변환 : 크기가 작은 자료형에서 큰 자료형으로 대입할 경우 자동 변환

강제 형변환 : 크기가 큰 자료형에서 작은 자료형으로 대입할 경우 강제로 자료형을 변환

< 연산자 >

 

  1. 다음 문장이 맞으면 o 표 , 틀리면 x 표 하세요

▶ 피연산자의 개수에 따라 연산자를 단항 / 이항 / 삼항 으로 구분한다 ( o )

▶ 연산자는 우선 순위가 존재한다. ( o )

▶ 연산의 결과로 하나 이상의 값이 출력될 수 있다 ( o )

▶ 논리 연산의 결과는 boolean 으로 출력된다 ( o )

 

2. 다음 코드를 실행 했을때 콘솔창에 출력 되는 결과는 무엇인가?

package section03;

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

정답 : 614, 615, 615, 615, 615

전위 증감 연산자는 우선순위가 높아서 바로 실행 된다.

따라서 첫번째 값 614, 두번째값 615

후위 증감 연산자는 우선순위가 매우 낮아 늦게 실행된다.

출력이 먼저 실행되고 나서 증가 하기 때문에 세번째값 역시 615

그 이후 616 으로 증가한 x 는 전위 감소 연산자로 인하여 다시 615로 출력된다.

 

3. 2개의 피연산자를 부호로 비교하여 그 부호 관계가 true 인지 false인지 판별하는 연산자로 비교 연산자라고도 불리는 연산자는 ? --------> 관계 연산자

 

4. 다음과 같은 결과가 나오도록 코드를 수정해 보세요 .

package section03;

public class PRACTICE_03_04 {
	public static void main(String[] args) {
		int a = 300;
		int b = 150;
		
		
		System.out.println(b/a);
	}                                                                           실행결과
}                                                                                 0.5
 

package section03;

public class PRACTICE_03_04 {
	public static void main(String[] args) {
		int a = 300;
		int b = 150;
		
		
		System.out.println((double)b/a);
	}
}
 

정답 : int 자료형 이라서 계속 정수만 출력 된다 . 자동형변환으로 실수가 출력될수 있도록 만들어줌

 

5. 다음 코드를 실행했을때 콘솔창에 출력되는 결과는 무엇인가?

package section03;

public class PRACTICE_03_05 {
	public static void main(String[] args) {
		String a = (7 > 9)? "apple" : "banana";
		a += " juice";

		System.out.println(a);
	}
}
 

정답 : 삼항연산자는 조건이 true 일때 앞에 false 일때 뒤에 피연산자가 채택된다.

( 7 > 9) 조건식이 false 이므로 " banana " 가 출력 되어야 하며

뒤에 " juice" 가 붙기 때문에 출력값은 banana juice 가 나온다.

 

< 제어문 1 >

 

  1. 다음 코드를 실행했을때 콘솔창에 출력되는 결과는 무엇입니까 ?
package section02;

public class PRACTICE_03_05 {
	public static void main(String[] args) {
		int num = 11;
		int result = 1000;
		
		if(num > 10) {
			result = 1100;
		}
		
		System.out.println(result);
	}
}
 

정답 : if 제어문에서 조건식이 참이라면 중괄호 안에 선언된 값을 따른다. 따라서 result 는 1100 이 되었으므로

정답은 1100 이 출력 된다.

 

2. 다음 코드를 실행했을때 콘솔창에 출력되는 결과는 무엇입니까 ?

package section02;

public class PRACTICE_03_05 {
	public static void main(String[] args) {
		int score = 77;
		char result = 'A';
		
		if(score >= 60) {
			result = 'D';
		} else if(score >= 70) {
			result = 'C';
		}
		
		System.out.println(score + "점의 학점은 " + result + "입니다.");
	}
}
 

정답 : if 제어문을 살펴보면 60 이상이면 D , 아니면 70 이상이면 C 값을 출력해 라고 설명 하고 있다.

그러나 77점은 60점이상이라는 조건식에 만족하므로 첫번째 조건식에 참 이어서 D에서 멈춘다.

77 점의 학점은 D 입니다. <------- 라고 출력된다.

 

3. 2번 코드의 실행 결과를 다음과 같이 변경하고 싶을 때, 코드를 어떻게 수정해야 할까?

77점의 학점은 C 입니다.
 

정답

package section02;

public class PRACTICE_03_05 {
	public static void main(String[] args) {
		int score = 77;
		char result = 'A';
		
		if(score >= 60 && score < 70) {
			result = 'D';
		} else if(score >= 70) {
			result = 'C';
		}
		
		System.out.println(score + "점의 학점은 " + result + "입니다.");
	}
}
 

정답 : D의 범위를 60이상 70미만이라고 지정 해줌으로서 조건식에 참으로 들어가지 않도록 한다 !

60 이상 이고 70 미만 일때 AND '&&' 를 사용해준다.

 

4. 다음 ( ) 빈칸에 알맞은 단어를 작성해 보세요.

- 조건문에 사용하는 조건식은 ( boolean ) (으)로 결과를 확인할 수 있는 모든 식을 사용할 수 있습니다.

// 조건식이 참인지 거짓인지로 제어문이 실행된다.

 

5. 다음 문장이 맞으면 o 표 , 틀리면 x표 하세요.

  • if-else if 문에서 else if 문의 수는 제한이 없습니다 ( o )
  • if-else if 문에서 if 조건문과 else if 조건문이 모두 참이면 둘다 실행 된다 ( x )

else if 의 수는 제한이 없고 if 와 else if 중 하나의 조건식만 참으로 해당되고 실행된다.

 

6. 다음과 같은 결과가 나오도록 아래 빈칸에 코드를 switch 문 으로 구현해 보세요

package section02;

public class PRACTICE_03_05 {
	public static void main(String[] args) {
		int a = 25;
		
		
		switch(a/10) {
		case (  2:   ) // 빈칸에 답을 넣었다.
		System.out.println("a는 20 이상의 숫자 입니다.");
		
		}
	}                                                               실행결과
}                                                              a는 20 이상의 숫자 입니다.
 

정답 : switch 안 조건식이 int 값이므로 2가 나오는데 case 2: 의 출력을 원한다고 만들어주면

정상적으로 a는 20 이상의 숫자 입니다. <-----가 출력된다.

< 제어문 2 >

 

1 . 다음 ( ) 빈칸에 알맞은 단어를 작성해 보세요

- 반복문은 ( 동일 ) 한 동작을 여러 번 반복하여 실행하는 구문 입니다.

 

2. 반복문의 종류를 모두 나열해 보세요

  • for문 : 주로 반복 횟수가 정해져 있을 때 사용
  • 중첩for문 ( 2중 for문) : for문 안에 또 다른 for문을 사용하는 경우
  • while문 : 조건에 의해 정해진 횟수만큼 반복하는 문법
  • do-while : while문과 같이 조건을 만족할 때까지 반복, while문과 다른점은 루프를 한 번 실행한 후에 조건식을 검사

 

3. 1부터 100 까지의 정수 중에서 짝수만을 더해 출력하는 코드를 for문을 사용해 작성해보세요

package section02;

public class PRACTICE_03_05 {
	public static void main(String[] args) {
		int sum = 0;

		for (int i = 1; i <= 100; i++) {
			if (i % 2 == 0) { // 2로 나눴을때 나머지가 0 이면 짝수 이다.
				sum += i;
			}
			System.out.println(sum);
		}
	}
}
 

4. 두 개의 주사위가 같은 값이 나올때 까지 while 문을 사용해 반복하고, 반복횟수와 주사위 눈의 번호를 출력해보세요

package section02;

import java.util.Random;

public class PRACTICE_03_05 {
	public static void main(String[] args) {
		Random rand = new Random();
		int dice1 = 0; // 주사위1
		int dice2 = 0; // 주사위2
		int cnt = 0; // 반복횟수

		while (true) {
			dice1 = rand.nextInt(6) + 1; // 1~6까지 주사위1
			dice2 = rand.nextInt(6) + 1; // 1~6까지 주사위2

			if (dice1 == dice2) {
				System.out.println("반복횟수: " + cnt);
				System.out.println("주사위 눈 번호: " + dice1); // 주사위 1 번호
				System.out.println("주사위 눈 번호: " + dice2); // 주사위 2 번호
				break;
			}
			cnt++; // 반복횟수를 카운트 해준다
		}
	}
}
 

 

 

728x90
반응형

'JAVA > [멘토씨리즈]' 카테고리의 다른 글

[멘토 씨리즈] JAVA 배열  (0) 2024.04.09
[멘토 씨리즈] JAVA 제어문2  (0) 2024.04.09
[멘토 씨리즈] JAVA 제어문1  (0) 2024.04.09
[멘토 씨리즈] JAVA 연산자  (0) 2024.04.09
[멘토씨리즈]JAVA 변수와자료형  (0) 2024.04.09