반응형
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
해설
- str1 == str2는 str1과 str2가 메모리 상에서 같은 객체를 참조하는지 확인한다. 자바에서 문자열 리터럴은 인턴된다(동일한 문자열 리터럴은 메모리에서 하나의 객체로 관리된다) 따라서 이것은 true를 출력한다
- str1 == str3는 str1과 str3가 같은 객체를 참조하는지 확인한다. str3는 new String()을 사용하여 생성되기 때문에 같은 문자열을 담고 있어도 다른 객체를 참조한다. 결과적으로 false를 출력한다.
- str1.equals(str3)는 str1과 str3의 내용이 같은지 비교한다. 이 둘은 모두 "Programming" 문자열을 담고 있으므로 true를 출력한다.
- 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[] = {64, 25, 12, 22, 11};
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이라는 글자가 만들어진다.