책 내용 질문하기
문제풀이 답에대해서 질문있습니다
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
473
조회수
57
작성일
2017-08-21
작성자
탈퇴*원
첨부파일

91쪽 문제인대

해설이 473쪽에있습니다

while(*x < *y)

이줄에서

*x = 10

*y = 10 일때 while 문을 빠져나와서 printf줄로 갈텐데

왜 *z는 *z += *x; 를 수행한 55가 되는건가요?

while 문을 빠져나와 그 실행문을 실행하지않고

45인 상태로 printf 문으로 올라가야되는거아닌가요?

답변
2017-08-22 09:11:31

안녕하세요.

prnt 함수 부분이 수행될 때 값을 전달받아

*x는 0, *y는 10, *z는 0이 됩니다.

*x < *y, 즉 0 < 10은 Yes이므로 반복문을 수행합니다.

++*x; 에 의해 *x의 값은 1이 됩니다.

*z = *z+*x; 에 의해 *z의 값은 1이 됩니다.

*x < *y, 즉 1 < 10은 Yes이므로 반복문을 수행합니다.

++*x; 에 의해 *x의 값은 2가 됩니다.

*z = *z+*x; 에 의해 *z의 값은 3이 됩니다.

*x < *y, 즉 2 < 10은 Yes이므로 반복문을 수행합니다.

++*x; 에 의해 *x의 값은 3이 됩니다.

*z = *z+*x; 에 의해 *z의 값은 6이 됩니다.

이와 같이 반복문 조건에서 비교되는 값은 실제 처리될 때의 값보다 1이 적습니다.

결국 마지막 바로 전 처리는 반복문을 반복한 후 *x의 값이 9일 때는

*x < *y, 즉 9 < 10은 Yes이므로 반복문을 수행합니다.

++*x; 에 의해 *x의 값은 10이 됩니다.

*z = *z+*x; 에 의해 *z의 값은 55가 됩니다.

*x < *y, 즉 10 < 10은 No이므로 반복문을 수행하지 않고 돌아갑니다.

결국 반복문을 수행한 후에는 *x는 10이 되고 *z는 10이 누적된 55가 된 상태로 돌아갑니다.

왼쪽의 프리미엄존 - 토막강의 코너 상단에 등록된 "[정보처리 특강] 기출문제 & 예상문제 문제 풀이 강좌"를 클릭하시면 교재에 수록된 제2장 관련 기출문제와 예상문제 풀이 강좌를 시청할 수 있습니다.

오늘도 즐거운 하루 되세요.

  • *
    2017-08-22 09:11:31

    안녕하세요.

    prnt 함수 부분이 수행될 때 값을 전달받아

    *x는 0, *y는 10, *z는 0이 됩니다.

    *x < *y, 즉 0 < 10은 Yes이므로 반복문을 수행합니다.

    ++*x; 에 의해 *x의 값은 1이 됩니다.

    *z = *z+*x; 에 의해 *z의 값은 1이 됩니다.

    *x < *y, 즉 1 < 10은 Yes이므로 반복문을 수행합니다.

    ++*x; 에 의해 *x의 값은 2가 됩니다.

    *z = *z+*x; 에 의해 *z의 값은 3이 됩니다.

    *x < *y, 즉 2 < 10은 Yes이므로 반복문을 수행합니다.

    ++*x; 에 의해 *x의 값은 3이 됩니다.

    *z = *z+*x; 에 의해 *z의 값은 6이 됩니다.

    이와 같이 반복문 조건에서 비교되는 값은 실제 처리될 때의 값보다 1이 적습니다.

    결국 마지막 바로 전 처리는 반복문을 반복한 후 *x의 값이 9일 때는

    *x < *y, 즉 9 < 10은 Yes이므로 반복문을 수행합니다.

    ++*x; 에 의해 *x의 값은 10이 됩니다.

    *z = *z+*x; 에 의해 *z의 값은 55가 됩니다.

    *x < *y, 즉 10 < 10은 No이므로 반복문을 수행하지 않고 돌아갑니다.

    결국 반복문을 수행한 후에는 *x는 10이 되고 *z는 10이 누적된 55가 된 상태로 돌아갑니다.

    왼쪽의 프리미엄존 - 토막강의 코너 상단에 등록된 "[정보처리 특강] 기출문제 & 예상문제 문제 풀이 강좌"를 클릭하시면 교재에 수록된 제2장 관련 기출문제와 예상문제 풀이 강좌를 시청할 수 있습니다.

    오늘도 즐거운 하루 되세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.