정보처리기사 실기C언어C 연결 리스트난이도 3MCQ

정보처리기사 실기 C 연결 리스트 기출문제 #3896

문제

다음 C 코드의 출력 결과는?

C
#include <stdio.h> #include <stdlib.h> struct node { int p; struct node* n; }; int main() { struct node a = {1, NULL}; struct node b = {2, NULL}; struct node c = {3, NULL}; a.n = &b; b.n = &c; c.n = NULL; c.n = &a; a.n = &b; b.n = NULL; struct node* head = &c; printf("%d %d %d", head->p, head->n->p, head->n->n->p); return 0; }

① 1 2 3 ② 3 1 2 ③ 3 2 1 ④ 2 1 3

정답

2

해설

정답: 2. 최종 연결은 c → a → b → NULL이다. head가 c를 가리키므로 출력은 3 1 2이다.

오답 풀이

  • 1번: 초기 연결 a→b→c를 기준으로 본 값이다.
  • 2번: 최종 연결 상태를 올바르게 추적했다.
  • 3번: c 다음을 b로 잘못 본 결과이다.
  • 4번: head를 b로 잘못 본 결과이다.

보충 개념 연결 리스트 문제는 마지막으로 대입된 포인터 값이 최종 구조를 결정한다. 같은 포인터 필드에 다시 대입하면 이전 연결은 덮어써진다.

정보처리기사 실기 시험 준비 가이드

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[정보처리기사 실기] C 연결 리스트 C언어 기출 #3896 | 문어CBT