2021년 05월 15일 기출 문제입니다.
문제 73. 다음 C언어 프로그램이 실행되었을 때의 결과는?
#include <stdio.h>
int main(int argc, char *argv[]){
int a[2][2] = {{11,22},{44,55}};
int i, sum = 0;
int *p;
p = a[0];
for(int i=1;i<4;i++)
sum += *(p+i);
printf("%d",sum);
return 0;
}
더보기
121
제가 궁금한 부분을 반영하여 약간 더 어렵게 변형하여 풀어보았습니다.
#include <stdio.h>
int main(int argc, char *argv[]){
int a[3][2] = {{11,22},{44,55},{66,77}};
int i, sum = 0;
int *p;
p = a[1];
for(int i=1;i<4;i++){
int temp = *(p+i);
sum += *(p+i);
}
printf("%d",sum);
return 0;
}
더보기
198
해설
a[1] 즉 p는 44 가 있는 곳 주소입니다.
i 는 1 에서 3까지 반복하는데
*(p+i) 는 루핑 돌면서 44 다음부터 3개 값 55,66,77 이 튀어 나옵니다.
3개를 모두 합하면 198 이 답입니다.
다음은 https://www.onlinegdb.com/online_c_compiler# 싸이트를 이용해서 프로그램 중간에 어떤 값들이 들어가 있는지 확인해 본 화면입니다. 첫번째 루핑 즉 i=1 인 경우 *(p+i) 를 temp 에 담아서 55가 들어가 있음을 확인해보았습니다.
'정보처리기사' 카테고리의 다른 글
[정처기] 연습문제 - C언어 비트연산 (0) | 2023.01.31 |
---|---|
[정처기] 기출문제 - 아스키 코드 문제? (0) | 2023.01.27 |
[정처기] 필기 오답 노트 4과목,5과목 (0) | 2023.01.17 |
[정처기] 필기 준비 상황 점검 (0) | 2023.01.16 |
[정처기] 2023년 필기 1회 접수 성공 후기 (0) | 2023.01.10 |