정보처리기사 기출문제·모의고사·오답노트·자동채점

2022년04월24일 79번

[프로그래밍 언어 활용]
a[0]의 주소값이 10일 경우 다음 C언어 프로그램이 실행되었을 때의 결과는? (단, int 형의 크기는 4Byte로 가정한다.)

  • ① 14, 10
  • ② 14, 14
  • ③ 18, 10
  • ④ 18, 14
(정답률: 35%)

문제 해설

정답 : ③

C언어에서 배열은 같은 자료형의 요소가 메모리에 연속으로 할당되며, int형은 4Byte이므로 각 배열 요소는 4Byte 간격으로 주소값을 가진다. a[0]의 시작 주소가 10인 경우, 핵심 규칙과 실행 결과 계산은 다음과 같다.

1. 배열 요소별 시작 주소 계산배열 요소의 시작 주소 = a[0] 주소 + 인덱스 × sizeof(int)

  • a[0] : 10 (시작 주소, 문제에서 제시)
  • a[1] : 10 + 1×4 = 14
  • a[2] : 10 + 2×4 = 18
  • a[3] : 10 + 3×4 = 22

2. C언어 배열 주소 관련 핵심 규칙

  • &a[n] : 배열의 n번째 요소 시작 주소를 반환 (각 요소의 첫 바이트 주소)
  • 배열명 a : 배열의 첫 번째 요소(a[0]) 시작 주소를 상수로 반환 (별도 주소 연산 없을 시)
  • %u : 부호 없는 10진수로 주소값을 출력하는 형식 지정자

3. 프로그램 실행 결과 계산

  • printf("%u, ", &a[2]); : a[2]의 시작 주소인 18을 출력
  • printf("%u", a); : 배열명이 가리키는 a[0]의 시작 주소인 10을 출력→ 최종 실행 결과 : 18, 10


[해설작성자 : www.cbtestpro.kr]

연도별

진행 상황

0 오답
0 정답