모두CBT

다음과 같이 정의된 C 언어 함수들을 가정할 때, 아래의 for-반복문… | [법원직 9급 전산·사서 컴퓨터일반] 26년 1회차 기출문제 상세 페이지

1[법원직 9급 전산·사서 컴퓨터일반] 26년 1회차
다음과 같이 정의된 C 언어 함수들을 가정할 때, 아래의 for-반복문이 실행되는 동안 함수 decr()이 호출되는 횟수는 몇 번인가?
#include <stdio.h>
long min(long x, long y) { return x < y ? x : y; }
long max(long x, long y) { return x < y ? y : x; }
void decr(long *xp, long v) { *xp -= v; }
long sq(long x) { return x*x; }
void main() {
long x = 20, y = 50, t = 0, i;
for (i = max(x, y) - 1; i >= min(x, y); decr(&i, 1))
t += sq(i);
}
1
20
2
30
3
40
4
50
해설

decr()은 반복 본문이 끝날 때마다 한 번씩 호출되므로 총 30회 호출된다.

i의 초기값은 max(20, 50) − 1 = 49이고, 반복 조건은 i >= 20이다.
본문 실행 횟수: 49−20+1=3049-20+1=30

for 문의 증감식은 조건이 참이어서 본문을 수행한 뒤에만 실행된다. i가 19가 되는 마지막 decr() 호출까지 포함해 호출 수와 본문 실행 수가 같다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[법원직 9급 전산·사서 컴퓨터일반] 26년 1회차 25문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요법원직 9급 전산·사서 컴퓨터일반 기출문제 암기장 전체 보기