정보처리기사 실기 시험 기출 문제 - 포인터와 배열
추천 자료: ASP.NET Core 인증 및 권한 부여
문제
다음 C 프로그램이 실행되었을 때의 동작을 설명하고, 출력 결과를 예측하시오.
소스 코드 파일명: pointer_array_operations.c
#include <stdio.h>
int main() {
int a[4] = { 0, 2, 4, 8 };
int b[3];
int* p;
int sum = 0;
for (int i = 1; i < 4; i++) {
p = a + i;
b[i - 1] = *p - a[i - 1];
sum = sum + b[i - 1] + a[i];
}
printf("%d", sum);
}
입력 예시
이 프로그램은 사용자로부터 입력을 받지 않습니다.
출력 예시
18
해설
이 프로그램은 배열 a
와 포인터 p
를 사용하여 특정 계산을 수행하고 결과를 합산하여 출력합니다.
- 배열
a
는{0, 2, 4, 8}
로 초기화됩니다. - 포인터
p
는 배열a
의 요소를 가리키는데 사용됩니다. 각 반복에서,p
는 배열a
의i
번째 요소를 가리키며, 배열b
는a[i]
와a[i-1]
의 차이를 저장합니다. sum
변수는 각 반복에서b[i-1]
와a[i]
의 값을 더해 업데이트됩니다.- 결과적으로,
sum
의 최종 값은 연산을 통해 합산된 각 값의 총합을 나타내며, 프로그램은 이 값을 출력합니다. 실제 계산 과정은2 + 2
,2 + 4
,4 + 8
의 합산을 포함합니다.
이 프로그램은 배열, 포인터, 그리고 반복문을 사용하여 복잡한 데이터 처리를 수행하는 방법을 설명하며, C 언어의 기본적인 메모리 접근과 연산 기능을 보여줍니다.
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!