16 다음 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);
}
답
더보기
22
해설
코드 | 실행순서 및 해석 | ||
1 | #include <stdio.h> | ||
2 | int main() { | 1 | 실행 |
3 | int a[4] = {0, 2, 4, 8}; | 2 | 정수형 배열 a 선언 |
4 | int b[3]; | 3 | 정수형 배열 b 선언 |
5 | int* p; | 4 | |
6 | int sum =0; | 5 | |
7 | for(int i=1; i<4; i++) { | ||
8 | p=a+i; | ||
9 | b[i-1]=*p-a[i-1]; | ||
10 | sum=sum+b[i-1]+a[i]; | ||
11 | } | ||
12 | printf("%d", sum); | ||
13 | } |
[0] | [1] | [2] | [3] | |
a | 0 | 2 | 4 | 8 |
[0] | [1] | [2] | |
b | 2 | 2 | 4 |
주소 | 메모리 | ||||
4byte | 4byte | 4byte | 4byte | ||
… | |||||
a | 1000 | 0 | 2 | 4 | 8 |
a | a+1 | a+2 | a+3 | ||
1000 | 1004 | 1008 | 1012 | ||
… | |||||
9999 |
i | p=a+i | p | b[i-1]=*p-a[i-1] *p의 값은 p가 가리키고 있는 주소의 값 |
sum+b[i-1]+a[i] |
1 | a+1 | 1004 | b[0]=*p-a[0] =2-0=2 |
0+b[0]+a[1] =0+2+2=4 |
2 | a+2 | 1008 | b[1]=*p-a[1] =4-2=2 |
4+b[1]+a[2] =4+2+4=10 |
3 | a+3 | 1012 | b[2]=*p-a[2] =8-4=4 |
10+b[2]+a[3] = 10+4+8=22 |
'자격증 > 정보처리기사 실기 - 기출문제' 카테고리의 다른 글
[정보처리기사 실기] 2022년 2회 18 - SQL (0) | 2025.07.23 |
---|---|
[정보처리기사 실기] 2022년 2회 17 - 프로그래밍 [JAVA] (0) | 2025.07.23 |
[정보처리기사 실기] 2022년 2회 15 - 프로그래밍 [C] 포인터 (0) | 2025.07.23 |
[정보처리기사 실기] 2022년 2회 14 - 경로 제어 프로토콜 (0) | 2025.07.23 |
[정보처리기사 실기] 2022년 2회 13 - 프로그래밍 [Python] (0) | 2025.07.23 |