다음 C 언어 프로그램의 출력 결과는?
#include <stdio.h>
#define SWAP(x, y, t) ((t)=(x), (x)=(y), (y)=(t))
void recursive(char *list, int i, int n) {
int j, temp;
if (i == n) {
for (j = 0 ; j <= n ; j++)
printf("%c", list[j]);
printf(" ");
}
else {
for (j = i ; j <= n ; j++) {
SWAP(list[i], list[j], temp);
recursive(list, i + 1, n);
SWAP(list[i], list[j], temp);
}
}
}
int main()
{
char list[3] = {'a', 'b', 'c'};
recursive(list, 0, 2);
}- ①ab ac bc
- ②ab bc ca
- ③abc acb bac bca cba cab
- ④abc acb bca bac cab cba
선지를 골라 바로 채점해 보세요.
정답 ③
출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)