279페이지 기출문제 따라잡기 4번 문제입니다.
풀이를 봐도 이해가 안 돼서 어떻게 풀어야 하는지 설명 부탁드립니다.
Q. 다음 C 코드 결과로 나타날 수 있는 값은?
void main( )
{
int k;
k = 1;
while(k < 60)
{
if(k % 4 == 0)
printf("%d\n", k-2);
k++;
}
}
(1번) 0 (2번) 8 (3번) 24 (4번) 30
안녕하세요 길벗수험서 운영팀입니다.
해당문제는 60미만의 4의 배수에서 2를 뺀값을 출력하는 문제입니다.
while(k<60) 에서 60 미만임을
if(k%4==0)이 참일 때 출력하는 것으로 보아 4의 배수를 출력하는 것임을 알 수 있습니다.
다만 출력시 k-2의 값을 출력하므로 (4의 배수 - 2) 임을 알 수 있죠.
즉, 0, 4, 8, 12, 16, ... 56 까지의 수에서 -2를 하면
-2, 2, 6, 10, 14, ... 54의 값이 출력된다는 것을 예상할 수 있습니다.
(0은 초기값, 4로 나누었을 때 나머지가 0이므로 예외적으로 포함)
이러한 전제 하에서 보기 중 출력될 수 있는 값은 '4의 배수-2'에 해당하는 4번 보기가 정답이 됩니다.
행복한 하루되세요 :)
-
관리자2023-02-06 10:46:05
안녕하세요 길벗수험서 운영팀입니다.
해당문제는 60미만의 4의 배수에서 2를 뺀값을 출력하는 문제입니다.
while(k<60) 에서 60 미만임을
if(k%4==0)이 참일 때 출력하는 것으로 보아 4의 배수를 출력하는 것임을 알 수 있습니다.
다만 출력시 k-2의 값을 출력하므로 (4의 배수 - 2) 임을 알 수 있죠.
즉, 0, 4, 8, 12, 16, ... 56 까지의 수에서 -2를 하면
-2, 2, 6, 10, 14, ... 54의 값이 출력된다는 것을 예상할 수 있습니다.
(0은 초기값, 4로 나누었을 때 나머지가 0이므로 예외적으로 포함)
이러한 전제 하에서 보기 중 출력될 수 있는 값은 '4의 배수-2'에 해당하는 4번 보기가 정답이 됩니다.
행복한 하루되세요 :)