책 내용 질문하기
19년 1회 대비 정보처리기사 모의고사 2번문제
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
3
조회수
198
작성일
2019-04-09
작성자
탈퇴*원
첨부파일

잘 이해가 안가는데 자세한 해설 부탁드립니다.

답변
2019-04-10 09:50:53

안녕하세요 길벗수험서 운영팀입니다.

 

사용자 정의 함수와, 포인터, 그리고 함수의 합 알고리즘이 함께 응용된 코드입니다.

 

먼저 사용자정의 함수를 호출함에 있어 포인터를 사용하였으므로, 리턴값이 없어도 같인 포인터 주소를 갖고 있는 포인터 변수로 인해 변수 a의 값이 함께 변화함을 알아두세요.

즉, a = *result = *r은 동일한 값을 가지게 됩니다.

 

main함수는 단순히 re함수를 호출하고 변수 a를 출력하는 역할을 합니다.

 

re함수는 i를 2~5까지 회전시키면서 pn함수로 리턴받은 값을 포인터 변수 r이 가리키는 값(*r)에 누적시키죠.

(while 반복문을 보면 1에 진입하여 pn(i)가 수행될 때의 i값은 2~5임을 확인할 수 있습니다.)

 

pn함수는 교재 1권 188쪽의 알고리즘을 그대로 적용하여 합이 출력되는 부분을 합을 리턴하도록 수정한 것입니다.

즉, pn함수에서

p가 2인 경우 소수 2를 리턴하고,

p가 3인 경우 소수 2, 3의 합을 리턴하고,

p가 4인 경우 소수 2, 3의 합을 리턴하고,

p가 5인 경우 소수 2, 3, 5의 합을 리턴하게 되죠.

 

다시 re함수에서는 위 결과들의 합을 *r에 저장함에 따라 a의 값이 변화되어 마지막 main()함수에서 a를 출력하게 되면 *r과 동일한 값을 출력하게 되는 것이죠.

 

행복한 하루되세요 :)

  • 관리자
    2019-04-10 09:50:53

    안녕하세요 길벗수험서 운영팀입니다.

     

    사용자 정의 함수와, 포인터, 그리고 함수의 합 알고리즘이 함께 응용된 코드입니다.

     

    먼저 사용자정의 함수를 호출함에 있어 포인터를 사용하였으므로, 리턴값이 없어도 같인 포인터 주소를 갖고 있는 포인터 변수로 인해 변수 a의 값이 함께 변화함을 알아두세요.

    즉, a = *result = *r은 동일한 값을 가지게 됩니다.

     

    main함수는 단순히 re함수를 호출하고 변수 a를 출력하는 역할을 합니다.

     

    re함수는 i를 2~5까지 회전시키면서 pn함수로 리턴받은 값을 포인터 변수 r이 가리키는 값(*r)에 누적시키죠.

    (while 반복문을 보면 1에 진입하여 pn(i)가 수행될 때의 i값은 2~5임을 확인할 수 있습니다.)

     

    pn함수는 교재 1권 188쪽의 알고리즘을 그대로 적용하여 합이 출력되는 부분을 합을 리턴하도록 수정한 것입니다.

    즉, pn함수에서

    p가 2인 경우 소수 2를 리턴하고,

    p가 3인 경우 소수 2, 3의 합을 리턴하고,

    p가 4인 경우 소수 2, 3의 합을 리턴하고,

    p가 5인 경우 소수 2, 3, 5의 합을 리턴하게 되죠.

     

    다시 re함수에서는 위 결과들의 합을 *r에 저장함에 따라 a의 값이 변화되어 마지막 main()함수에서 a를 출력하게 되면 *r과 동일한 값을 출력하게 되는 것이죠.

     

    행복한 하루되세요 :)

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