2022 정보처리기사 실기 1회 3번
문제
3. 다음 자바 문법에 알맞는 출력 결과를 작성하시오.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
class A {
int a;
int b;
}
public class Main {
static void func1(A m){
m.a *= 10;
}
static void func2(A m){
m.a += m.b;
}
public static void main(String args[]){
A m = new A();
m.a = 100;
func1(m);
m.b = m.a;
func2(m);
System.out.printf("%d", m.a);
}
}
|
cs |
정답
2000
해설
- A 클래스의 인스턴스 m이 생성된다.
- m.a에 100이 할당된다.
- func1 함수가 호출되면, m의 a 속성이 m.a * 10이 되므로, m.a는 1000이 된다.
- m.b에 m.a의 현재 값인 1000이 할당된다.
- func2 함수가 호출되면, m.a에 m.b가 더해진다. 이 시점에서 m.a와 m.b는 모두 1000이다. 따라서 m.a는 1000 + 1000 = 2000이 된다.
따라서 System.out.printf("%d", m.a);가 실행될 때, m.a의 값은 2000이다. 그러므로 프로그램의 출력 결과는 2000이다.
2022 정보처리기사 실기 1회 6번
문제
6. 다음은 파이썬 코드에서 출력되는 a와 b의 값을 작성하시오.
1
2
3
|
def exam(num1, num2=2):
print('a=', num1, 'b=', num2)
exam(20)
|
cs |
정답
a= 20 b= 2
해설
이 Python 함수 exam은 num1과 num2 두 개의 파라미터를 받는다. num2는 기본값으로 2가 설정되어 있다.
함수가 exam(20)으로 호출될 때, num1에 20이 할당되고, num2는 기본값인 2를 유지한다. 따라서 a와 b의 값을 각각 출력하면 a= 20 b= 2이 된다.
2022 정보처리기사 실기 1회 11번
문제
11. 다음 Java 코드 중에서 밑줄에 들어갈 알맞는 코드를 작성하시오.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
class Car implements Runnable{
int a;
public void run(){
System.out.println("message")
}
}
public class Main{
public static void main(String args[]){
Thread t1 = new Thread(new ___());
t1.start();
}
}
|
cs |
정답
Car
해설
Java에서 쓰레드를 생성하고 실행하기 위해, Thread 클래스의 인스턴스를 생성할 때는 Runnable 인터페이스를 구현하는 객체를 생성자에 전달해야 한다.
Runnable 인터페이스는 run() 메서드를 포함하고 있으며, 이 메서드는 쓰레드가 실행될 때 호출된다. 여기서 Car 클래스는 Runnable 인터페이스를 구현하고 run() 메서드를 오버라이드 하여 System.out.println("message")를 실행하도록 정의한다.
따라서 Thread 생성자에 new Car()를 전달하면, 새로 생성된 Thread 객체(t1)는 Car 인스턴스의 run() 메서드를 실행할 수 있게 된다. t1.start()가 호출될 때 Car의 run() 메서드가 실행되면서 "message"가 출력된다.