반응형
2023 정보처리기사 실기 1회 9번
문제
9. 다음 아래 코드에서 이진수를 십진수로 변환하는 코드에 대해 괄호 (a) (b)의 적합한 답을 작성하시오.
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
|
#include <stdio.h>
int main() {
int input = 101110;
int di = 1;
int sum = 0;
while (1) {
if (input == 0) break
else {
sum = sum + (input (a)(b)) * di;
di = di * 2;
input = input / 10;
}
}
printf("%d", sum);
return 0;
}
|
cs |
정답
1. (a) % ,(b) 10 or 5 or 2
2. (a) & ,(b) 1
(1번, 2번 둘 다 정답)
해설
- while 루프는 input이 0이 될 때까지 계속 실행된다.
- if (input == 0) break;는 input이 0이 되면 루프를 종료시킨다.
- sum = sum + (input & 1) * di;: 이는 현재 input의 가장 낮은 자리수(2진수로)를 추출하여 그 값에 di를 곱한 후, 이를 sum에 더한다. 여기서 input & 1은 input의 마지막 비트를 추출한다.
- di = di * 2;: 이진수의 각 자리가 2의 거듭제곱을 나타내기 때문에, 다음 자리수로 넘어갈 때마다 di 값을 2배로 증가시킨다.
- input = input / 10;: 이진수를 십진법으로 표현된 input에서 마지막 자리를 제거하여 다음 자리수를 준비한다.
1번 정답 :
10, 5, 2로 나눈 값의 나머지를 통해 2진수 계산이 가능한 상태인지 확인하는 방식.
2번 정답 :
비트연산자중 AND연산을 사용하여 INPUT의 가장 낮은 비트가 0인지 1인지 판단하는 방식
2023 정보처리기사 실기 1회 14번
문제
14. 다음 코드에서 괄호안에 알맞는 값을 변수명으로 작성하시오.
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
29
30
|
public class Sort {
public static void swap(int[] arr, int idx1, int idx2){
int temp = arr[idx1];
arr[idx1] = arr[idx2];
arr[( 1 )] = temp;
}
public static void Usort(int[] array, int length){
for (int i = 0; i < length; i++) {
for (int j = 0; j < length - i - 1; j++) {
if (array[j] > array[j + 1]) {
swap(array, j, j + 1);
}
}
}
}
public static void main(String[] args) {
int[] item = new int[] { 5, 3, 8, 1, 2, 7 };
int nx = 6;
Usort(item, ( 2 ));
for (int data : item) {
System.out.print(data + " ");
}
}
}
|
cs |
출력 값 : 1 2 3 5 7 8
정답
idx2, nx
해설
1번 괄호: 이 부분은 swap 함수 내에서 arr[idx2]를 temp로 설정해야 한다. 그러나 현재 코드에서는 arr[(1)] = temp;라고 되어 있으며, 올바른 인덱스인 idx2를 참조해야 한다. 따라서 1번 괄호에는 idx2가 들어간다.
2번 괄호: 이 부분은 main 메소드 내에서 Usort 함수를 호출할 때 사용하는 배열의 길이이다. 배열 item의 길이는 nx로 정의되어 있으며, 이 값은 6이다. 따라서 2번 괄호에는 nx가 들어가야 한다.
2023 정보처리기사 실기 1회 15번
문제
15. 다음 파이썬 코드의 알맞는 출력값을 작성하시오.
1
2
3
4
5
6
|
a = {'한국', '중국', '일본'}
a.add('베트남')
a.add('중국')
a.remove('일본')
a.update({'홍콩', '한국', '태국'})
print(a)
|
cs |
정답
{'한국', '중국', '베트남', '홍콩', '태국'}
해설
- a = {'한국', '중국', '일본'}: 집합 a가 '한국', '중국', '일본'을 요소로 가지게 된다.
- a.add('베트남'): '베트남'이 집합 a에 추가된다.
- a.add('중국'): '중국'은 이미 집합 a에 존재하기 때문에, 이 명령은 아무런 변화를 일으키지 않는다.
- a.remove('일본'): '일본'이 집합 a에서 제거된다.
- a.update({'홍콩', '한국', '태국'}): 집합 a에 '홍콩', '한국', '태국'이 추가된다. '한국'은 이미 존재하기 때문에 추가되지 않고, '홍콩'과 '태국'은 새로 추가된다.
따라서 최종적으로 print(a)를 실행하면 집합 a는 {'한국', '중국', '베트남', '홍콩', '태국'}의 요소를 포함하게 된다.