2023 정보처리기사 실기 3회 11번
문제
11. Java 코드에 대한 알맞는 출력값 작성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
class Parent {
int compute(int num) {
if(num <= 1)
return num;
return compute(num-1) + compute(num-2);
}
}
class Child extends Parent {
int compute(int num) {
if(num <= 1)
return num;
return compute(num-1) + compute(num-3);
}
}
public class main {
public static void main(String args[]) {
Parent obj = new Child();
System.out.print(obj.compute(7));
}
}
|
cs |
정답
2
해설
Parent 객체가 Child 인스턴스를 참조하고 있으므로, obj.compute(7) 호출 시 Child 클래스의 compute 메소드가 실행된다.
compute(7)을 계산하는 과정은 다음과 같다.
- compute(7)은 compute(6) + compute(4)
- compute(6)은 compute(5) + compute(3)
- compute(5)은 compute(4) + compute(2)
- compute(4)은 compute(3) + compute(1)
- compute(3)은 compute(2) + compute(0)
- compute(2)은 compute(1) + compute(-1)
여기서 compute(1) = 1을 반환하고, compute(0) 은 0을 반환하며, compute(-1)은 -1을 반환한다.
이어서 계산하면 compute(2)는 0이되고, compute(3)도 0이 된다. compute(4)는 1을 반환한다.
따라서 실질적으로 1 이상의 수를 반환할 수 있는것은 compute(4) 뿐이며, compute(4)를 호출하는 횟수가 정답이된다.
2023 정보처리기사 실기 3회 13번
문제
13.자바 코드를 실행할 경우 에러가 발생하는데 에러가 발생하는 라인은?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
class Person {
private String name;
public Person(String val) {
name = val;
}
public static String get() {
return name;
}
public void print() {
System.out.println(name);
}
}
public class main {
public static void main(String[] args) {
Person obj = new Person("Kim");
obj.print();
}
}
|
cs |
정답
7
해설
Java 코드에서 오류가 발생하는 주요 이유는 get() 메소드가 정적(static) 메소드로 선언되어 있지만, 정적 메소드 내에서 비정적(non-static) 필드 name을 사용하려고 시도했기 때문이다.
정적 메소드는 클래스의 인스턴스와 관련이 없으므로, 인스턴스 변수에 접근할 수 없다. name은 Person 클래스의 인스턴스 변수이므로, 정적 메소드인 get()에서 직접 사용될 수 없다.
2023 정보처리기사 실기 3회 14번
문제
13. 파이썬에 코드에서 괄호 안에 알맞는 답을 작성
1
2
3
4
5
|
print("문제14")
num1, num2 = input()._____()
print(num1,num2)
num3 = num1 + num2
print(num1 + " + " + num2 + " = " + num3)
|
cs |
출력화면
문제14
2 3
2 + 3 = 5
정답
split
해설
num1과 num2를 올바르게 입력받기 위해서는 split() 메소드를 사용해야 한다. split() 메소드는 문자열을 분리하여 리스트로 변환하는데, 기본적으로 공백을 기준으로 문자열을 분리한다. 따라서 사용자가 입력한 문자열에서 공백을 기준으로 두 개의 숫자를 분리하여 num1과 num2에 할당할 수 있다.