프로그래밍의 기초(의사 코드 트레이스)

÷는 나눗셈이며, 정수형 변수(인수 포함)에 대입할 때는 소수점 이하를 버린다. 다음 함수 f를 f(9087)로 호출했을 때의 반환값은?

○integer: f(integer: x)
  integer: s ← 0
  while (x > 0)
    s ← s + x mod 10
    x ← x ÷ 10
  endwhile
  return s
  1. A4
  2. B15
  3. C24
정답과 해설 보기

정답: C. 24

x mod 10은 x의 일의 자리를 꺼내고, x ← x ÷ 10은 소수점 이하를 버리는 정수 나눗셈이 되므로 일의 자리를 제거합니다. mod는 +보다 우선순위가 높으므로 s ← s + x mod 10은 s ← s + (x mod 10)의 의미입니다. x는 9087, 908, 90, 9, 0으로 바뀌고, s에는 7, 8, 0, 9가 차례로 더해져 7 + 8 + 0 + 9 = 24가 됩니다. 각 자리 숫자의 합을 구하는 함수입니다.

이 분야 연습하기 분야로 돌아가기

프로그래밍의 기초(의사 코드 트레이스)의 다른 문제

  1. ÷는 나눗셈이며, 정수형 변수(인수 포함)에 대입할 때는 소수점 이하를 버린다. 다음 함수 toBin을 toBin(12)로 호출했을 때의 반환값은?
  2. 두 정수 a, b를 뺄셈으로 같게 만들어 가는 다음 프로그램을 실행한 후의 k의 값은?
  3. 다음 함수 isLeap은 서기 y년이 윤년이면 true를 반환한다. and는 or보다 먼저 계산한다. isLeap(y)가 true를 반환하는 y는?
  4. ÷는 나눗셈이며, 정수형 변수(인수 포함)에 대입할 때는 소수점 이하를 버린다. 다음 함수 pow를 pow(2, 10)으로 호출했을 때, pow가 호출되는 횟수(최초 호출 포함)는?
  5. 다음 함수 s를 s(7)로 호출했을 때의 반환값은?