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

2023 정보처리기사 실기 2회 프로그래밍 문제 해설(14번, 18번, 19번)

by picker_life 2024. 3. 8.
반응형

2023 정보처리기사 실기 2회 14번

 

문제

14. 다음은 자바에 대한 문제이다. 알맞은 출력값을 작성하시오.

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Main{
    public static void main(String[] args) {
        
        String str1 = 'Programming';
        String str2 = 'Programming';
        String str3 = new String('Programming');
        
        println(str1==str2)
        println(str1==str3)
        println(str1.equals(str3))
        print(str2.equals(str3))
    }
}
cs

 

정답

true
false
true
true

 

해설

  1. str1 == str2는 str1과 str2가 메모리 상에서 같은 객체를 참조하는지 확인한다. 자바에서 문자열 리터럴은 인턴된다(동일한 문자열 리터럴은 메모리에서 하나의 객체로 관리된다) 따라서 이것은 true를 출력한다
  2. str1 == str3는 str1과 str3가 같은 객체를 참조하는지 확인한다. str3는 new String()을 사용하여 생성되기 때문에 같은 문자열을 담고 있어도 다른 객체를 참조한다. 결과적으로 false를 출력한다.
  3. str1.equals(str3)는 str1과 str3의 내용이 같은지 비교한다. 이 둘은 모두 "Programming" 문자열을 담고 있으므로 true를 출력한다.
  4. str2.equals(str3)도 str2와 str3의 내용을 비교한다. 이것도 위와 같은 이유로 true 결과를 나타낸다.

 

2023 정보처리기사 실기 2회 18번

 

문제

18. 다음 코드는 선택정렬 구현에 관한 문제이다.  빈칸에 알맞는 연산자를 보기에서 골라 작성하시오.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include
int main() {
    int E[] = {6425122211};
    int n = sizeof(E) / sizeof(E[0]);
    int i = 0;
    do {
        int j = i + 1;
        do {
            if (E[i] ( 괄호 ) E[j]) {
                int tmp = E[i];
                E[i] = E[j];
                E[j] = tmp;
            }
            j++;
        } while (j < n);
        i++;
    } while (i < n-1);
    for(int i=0; i<=4; i++)
        printf("%d ", E[i]);
}
cs

 

보기

<, <=, =>, >, ==, /, %

 

정답

>

 

해설

배열을 오름차순으로 정렬하려면, if 조건문에서 > 연산자를 사용해서 앞의 요소가 뒤의 요소보다 큰 경우 두 요소의 위치를 바꿔줘야 한다.

 

2023 정보처리기사 실기 2회 19번

 

문제

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

1
2
3
4
5
6
a = "engineer information processing"
b = a[:3]
c = a[4:6]
d = a[28:]
e=b+c+d
print(e)
cs

 

정답

engneing

 

해설

슬라이싱은 [시작:끝] 형식을 사용하여 문자열에서 특정 부분을 추출한다. 여기서 시작 인덱스는 포함되고, 끝 인덱스는 제외된다. 인덱스는 문자열의 위치를 가리키며, 파이썬에서는 첫 번째 위치를 0으로 시작한다.

따라서 b는 eng를, c는 ne를, c는 ing를 가리켜서 engneing이라는 글자가 만들어진다.