정보처리기사

[정처기] 기출문제 - C언어 문제

멋쟁이천재사자 2023. 1. 27. 20:25

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;
}

 

 

제가 궁금한 부분을 반영하여 약간 더 어렵게 변형하여 풀어보았습니다.

#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;
}

 

 

 

 

 

해설

 

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가 들어가 있음을 확인해보았습니다.