모두CBT

다음 C 언어 프로그램의 실행결과로 옳은 것은?#include <… | [법원직 9급 전산·사서 컴퓨터일반] 26년 1회차 기출문제 상세 페이지

1[법원직 9급 전산·사서 컴퓨터일반] 26년 1회차
다음 C 언어 프로그램의 실행결과로 옳은 것은?
#include <stdio.h>
int main()
{ char a[] = "KOREA";
char *p = &a[1];
*(p+3) = 'D';
p++;
printf("%s", p);
}
1
READ
2
KORED
3
RED
4
KOREA
해설

문자열이 KORED로 바뀐 뒤 a[2]부터 출력되므로 결과는 RED이다.

p = &a[1] 이므로 p는 'O'를 가리킨다.
*(p+3) = 'D' 는 a[4]를 바꾸어 a가 KORED가 된다.
p++ 로 p는 a[2]인 'R'을 가리킨다.
%s는 그 위치부터 널 문자 전까지 출력한다.

  • READ: 'D'는 뒤에 덧붙는 것이 아니라 a[4]의 'A'를 덮어쓰므로 나올 수 없다.
  • KORED: a[0]부터 출력할 때의 값인데, p는 a[2]를 가리킨다.
  • KOREA: 원래 문자열로, 수정과 포인터 이동이 모두 빠진 값이다.

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

이어서 풀어보기

[법원직 9급 전산·사서 컴퓨터일반] 26년 1회차 25문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요법원직 9급 전산·사서 컴퓨터일반 기출문제 암기장 전체 보기