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

2022 정보처리기사 실기 2회 프로그래밍 문제 해설(7번, 8번, 13번)

by picker_life 2024. 3. 15.
반응형

2022 정보처리기사 실기 2회 7번

문제

7. 다음 자바 코드에 알맞는 출력값을 작성하시오.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static void main(String args[]){
  
  int i = 3; int k = 1; 
  switch(i) { 
    case 1: k += 1;
    case 2: k++;
    case 3: k = 0; 
    case 4: k += 3; 
    case 5: k -= 10; 
    default: k--; 
  }
  System.out.print(k); 
  
}
cs

 

정답

-8

해설

여기서 i의 초기값은 3이므로, switch 문은 case 3에서 시작한다. 그런데 case 3에는 break 문이 없기 때문에, 코드는 계속하여 case 4, case 5, 그리고 default case까지 진행된다.

  • k = 0; (case 3)
  • k += 3; (case 4, 이후 k는 3)
  • k -= 10; (case 5, 이후 k는 -7)
  • k--; (default case, 이후 k는 -8)

따라서 최종적으로 출력되는 k의 값은 -8이다.

 

2022 정보처리기사 실기 2회 8번

문제

8. 다음 소스코드에 대한 출력값을 작성하시오.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
struct A{ 
  int n, 
  int g
 
int main(){
  A a = new A[2
  for(i=0; i <2; i++) {
    a[i].n = i, 
    a[i].g=i+1  
  }
  System.out.printf(a[0].n + a[1].g);  
}
cs

 

정답

2

해설

이 경우 a[0].n + a[1].g의 계산 결과는 이렇게 된다

  • a[0].n는 첫 번째 반복에서 i의 값이 0일 때 설정되므로 0
  • a[1].g는 두 번째 반복에서 i의 값이 1일 때 설정되므로 2

따라서 a[0].n + a[1].g의 결과값은 0 + 2 즉, 2가 된다.

 

2022 정보처리기사 실기 2회 13번

문제

13. 다음은 파이썬 코드이다. 알맞는 출력값을 작성하시오.

 

1
2
3
4
a = "REMEMBER NOVEMBER"
b = a[:3] + a[12:16];
c = "R AND %s" % "STR";
print(b+c);
cs

 

정답

REMEMBER AND STR

해설

  1. a = "REMEMBER NOVEMBER": 이 줄은 문자열 "REMEMBER NOVEMBER"를 변수 a에 할당한다.
  2. b = a[:3] + a[12:16]: 이 줄은 a의 첫 세 글자("REM")와 12번째부터 15번째 글자까지("EMBE")를 가져와서 이어 붙입니다. 그래서 b는 "REMEMBER"가 된다.
  3. c = "R AND %s" % "STR": 이 줄은 문자열 "R AND " 뒤에 "STR"을 포매팅하여 추가한다. 결과적으로 c는 "R AND STR"이 된다.
  4. print(b+c): 마지막 줄은 b와 c를 연결하여 출력한다. 따라서 "REMEMBE"와 "R AND STR"을 이어 붙인 
  5. "REMEMBER AND STR"이 출력된다.