책 내용 질문하기
기출문제집 66쪽 문제1번 질문
도서
2021 시나공 정보처리기사 실기
페이지
66
조회수
311
작성일
2022-04-12
작성자
탈퇴*원
첨부파일
문제 1번 c언어 문제인데 정답지 봐도 이해가 안가서 설명좀 부탁드립니다 명령 실행되는 순서를 잘 모르겠어요
답변
2022-04-12 11:12:30

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

 

코드 문제의 경우 어떤 부분에서 혼동이 오는지 정확하게 짚어주시기 않으면 자세한 안내가 불가능합니다.

73쪽 기준 1번 while문은 2~9번을 무한 반복하고,

3번 while문은 4번 코드만을 반복합니다.

5번 if문은 조건이 참이면 6번을 수행하고 아니면 7번으로 넘어가게 되죠.

7번 if문은 조건이 참이면 8번을 수행하고 아니면 9번으로 이동하여 1번 while문에서 탈출해 코드 끝으로 이동하여 프로그램을 종료시켜 버립니다.

 

해설에 각 조건과 조건의 참/거짓 여부에 따라 이동 경로를 적어놓았으니, 한줄 한줄 따라가며 각 값들의 변화를 74쪽의 디버깅 표처럼 직접 입력해보세요.

그러다가 디버깅표와 다른 부분이 있다면 그 부분을 짚어서 질문주시면 더 자세한 답변이 가능할 것 같습니다.

 

행복한 하루되세요 :)

  • 관리자
    2022-04-12 11:12:30

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

     

    코드 문제의 경우 어떤 부분에서 혼동이 오는지 정확하게 짚어주시기 않으면 자세한 안내가 불가능합니다.

    73쪽 기준 1번 while문은 2~9번을 무한 반복하고,

    3번 while문은 4번 코드만을 반복합니다.

    5번 if문은 조건이 참이면 6번을 수행하고 아니면 7번으로 넘어가게 되죠.

    7번 if문은 조건이 참이면 8번을 수행하고 아니면 9번으로 이동하여 1번 while문에서 탈출해 코드 끝으로 이동하여 프로그램을 종료시켜 버립니다.

     

    해설에 각 조건과 조건의 참/거짓 여부에 따라 이동 경로를 적어놓았으니, 한줄 한줄 따라가며 각 값들의 변화를 74쪽의 디버깅 표처럼 직접 입력해보세요.

    그러다가 디버깅표와 다른 부분이 있다면 그 부분을 짚어서 질문주시면 더 자세한 답변이 가능할 것 같습니다.

     

    행복한 하루되세요 :)

  • 관리자
    2022-04-15 19:20:33

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

     

    번호는 각 코드들의 진행 순서일 뿐 개별 반복문의 반복까지 설명하고 있지는 않습니다.

    1-2-3-4(조건에 따라 4번이 반복된 후)-5-6(조건에 따라 실행)-7-8(조건에 따라 실행)-9(조건에 따라 실행)    x 반복

    1~9번이 반복되는 와중에 3~4번이 별도로 반복되는 것입니다.

     

    초기 수행부터 2회까지 수행하는 순서를 설명드리면 도움이 되지 않을까 싶네요.

    1번 위의 코드를 0번이라고 가정하겠습니다.

    0 int k=2, j;   - k=2, j=?

    1 while(1)

    2 j=2;    - k=2, j=2

    3 while(k%j != 0)  - k%j가 0이므로 4번이 수행되지 않습니다.

    5 if(k==j)   - k와 j가 같으므로 6번으로 이동

    6 printf("%d ", k);    - 화면에 k 값이 출력됩니다.  '2 ' 출력

    7 if(k<7)  - k값이 7보다 작으므로 8번으로 이동

    8 k++  - k=3, j=2

    (1회 반복 종료, 다시 2번으로 이동)

    2 j=2  - k=3, j=2

    3 while(k%j != 0) - k%j는 1이므로 4번 수행

    4 j++   - k=3, j=3

    3 while(k%j != 0) - k%j는 0이므로 5번으로 이동

    5 if(k==j)   - k와 j가 같으므로 6번으로 이동

    6 printf("%d ", k);    - 화면에 k 값이 출력됩니다.  '3 ' 출력 (지금까지의 출력 결과: '2 3 ')

    7 if(k<7)  - k값이 7보다 작으므로 8번으로 이동

    8 k++  - k=4, j=3

    (1회 반복 종료, 이와 같은 방식으로 k가 7이 되어 break; 문을 만나는 순간까지 반복됨) 

     

    행복한 하루되세요 :)

  • *
    2022-04-12 22:49:42

    실행순서가 12345678 하고

    다시 2번으로가서 j를 2로 초기화 하는건가요?

    아니면 3번으로 가서 while문이 실행되는건가요?

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