본문 바로가기
카테고리 없음

2022 정보처리기사 실기 1회 프로그래밍 문제 해설(3번, 6번, 11번)

by picker_life 2024. 3. 18.
반응형

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

해설

  1. A 클래스의 인스턴스 m이 생성된다.
  2. m.a에 100이 할당된다.
  3. func1 함수가 호출되면, m의 a 속성이 m.a * 10이 되므로, m.a는 1000이 된다.
  4. m.b에 m.a의 현재 값인 1000이 할당된다.
  5. 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"가 출력된다.