모두CBT

다음 C 프로그램의 실행 결과는?#include <stdio.h&… | [7급 국가직 자료구조론] 25년 1회차 기출문제 상세 페이지

1[7급 국가직 자료구조론] 25년 1회차
다음 C 프로그램의 실행 결과는?
#include <stdio.h>
int func(int key, int low, int high, int* list) {
list[high+1] = key;
int i = 0;
for(i = low; list[i] != key; i++);
if(i == (high+1)) return -1;
return i;
}

int main(int argc, char* argv[]) {
int list[100] = {1, 2, 3, 4, 5, 6, 7};
printf("%d\n", func(3, 4, 6, list));

return 0;
}
1
-1
2
0
3
3
4
4
해설

찾는 키 3이 탐색 범위(인덱스 4~6)에 없으므로 보초 위치에서 멈추고 -1을 반환한다.

list[high+1] = list[7]에 key 3을 보초(sentinel)로 넣는다.
i=4부터: list[4]=5, list[5]=6, list[6]=7, list[7]=3 → i=7에서 멈춤
i == high+1이므로 -1 반환

  • 0: 탐색은 인덱스 4부터 시작하므로 0이 반환될 수 없다.
  • 3: 함수는 키 값이 아니라 찾은 인덱스를 반환한다.
  • 4: 시작 인덱스 low이며 list[4]는 5라 키와 다르다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[7급 국가직 자료구조론] 25년 1회차 25문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요7급 국가직 자료구조론 기출문제 암기장 전체 보기