반응형
2020 정보처리기사 실기 1회 12번
문제
12. C언어 소스 코드 출력 결과
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#include <stdio.h>
void main(){
int i,j;
int temp;
int a[5] = {75,95,85,100,50};
for(i=0; i<4; i++){
for(j=0; j<4-i; j++){
if(a[j] > a[j+1]){
temp=a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for(i=0; i<5; i++){
printf("%d", a[i]);
}
}
|
cs |
정답
50758595100
해설
이 C 프로그램은 배열 a의 요소를 오름차순으로 정렬하는 버블 정렬 알고리즘을 구현합니다. 배열 a는 처음에 다음과 같은 숫자를 포함하고 있습니다: {75, 95, 85, 100, 50}.
버블 정렬 작업 과정은 다음과 같습니다:
- 첫 번째 패스(Pass)에서는, 배열의 처음부터 시작하여 각 요소를 그 다음 요소와 비교합니다. 만약 현재 요소가 다음 요소보다 크다면, 두 요소의 위치를 바꿉니다. 이 과정은 배열의 마지막에서 두 번째 요소까지 반복됩니다. 첫 번째 패스의 결과, 가장 큰 요소가 배열의 마지막으로 이동합니다.
- 이후, 각 패스는 이전 패스에서 처리한 마지막 요소를 제외하고 동일한 비교와 교환 과정을 반복합니다. 즉, 두 번째 패스는 배열의 마지막 요소를 제외하고, 세 번째 패스는 마지막 두 요소를 제외하고 비교합니다. 이 과정은 배열이 정렬될 때까지 계속됩니다.
위 프로그램의 버블 정렬 과정은 다음과 같이 진행됩니다:
- 첫 번째 패스 후: {75, 85, 95, 50, 100}
- 두 번째 패스 후: {75, 85, 50, 95, 100}
- 세 번째 패스 후: {75, 50, 85, 95, 100}
- 네 번째 패스 후: {50, 75, 85, 95, 100}
따라서, 이 프로그램은 정렬된 배열을 출력합니다: 50, 75, 85, 95, 100.
단, 이 코드에서는 printf 함수를 사용할 때 각 숫자 사이에 구분자(예: 공백 또는 쉼표)를 포함하지 않아 출력된 숫자들이 구분 없이 나열됩니다: 50758595100
2020 정보처리기사 실기 1회 13번
문제
13. JAVA 소스 코드 출력 결과
1
2
3
4
5
6
7
8
9
|
public class Good {
public static void main(String[] args) {
int i;
int[] a = {0, 1, 2, 3};
for (i = 0; i < 4; i++) {
System.out.print(a[i] + " ");
}
}
}
|
cs |
정답
0 1 2 3
해설
이 Java 프로그램은 배열 a의 요소를 순회하며 각 요소를 공백과 함께 출력합니다. 배열 a는 4개의 정수 요소 {0, 1, 2, 3}를 포함합니다.
for 반복문은 변수 i를 0부터 시작하여 4보다 작을 때까지 반복합니다. 각 반복에서 System.out.print(a[i] + " "); 구문은 현재 인덱스 i에 해당하는 배열 a의 요소를 출력하고, 그 옆에 공백을 추가합니다.
2020 정보처리기사 실기 1회 14번
문제
14. JAVA 소스 코드 출력 결과
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public class good {
public static void main(String[] args){
int i = 3;
int k = 1;
switch (i) {
case 0:
case 1:
case 2:
case 3: k = 0;
case 4: k += 3;
case 5: k -= 10;
default: k--;
}
system.out.print(k);
}
}
|
cs |
정답
-8
해설
- i의 값이 3으로 설정됩니다.
- switch 문에서 i의 값은 3이므로, 해당 case 3이 실행됩니다. 이 때, k의 값은 0으로 설정됩니다.
- break 문이 없기 때문에, 코드는 계속하여 case 4, case 5, 그리고 default까지 실행됩니다. 이는 "fall-through" 동작입니다.
- case 4: k += 3로 인해 k는 0 + 3 = 3이 됩니다.
- case 5: k -= 10로 인해 k는 3 - 10 = -7이 됩니다.
- default: k--로 인해 k는 -7 - 1 = -8이 됩니다.
따라서, 이 코드의 최종 출력은 -8입니다.