책 내용 질문하기
1과목 C언어 질문 4개 있습니다.
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
63
조회수
192
작성일
2019-09-29
작성자
탈퇴*원
첨부파일

1. 1과목 63p 기출 따라잡기 문제5

Q. 정답이 "소수점a = 1234.6 지수형a = 1.234567e+03" 이던데

소수점a 같은경우에는 소수 첫째자리까지 표현해야하니까 둘째자리에서 반올림을 했네요. C언어 규칙중 '소수자리를 명시하지 않으면 6자리까지 표현되는 것이 기본값'인것 까지는 알겠는데, 그러면 지수형a에서는 7째자리에서 반올림하지는 않는지 궁금합니다.

 

2. 1과목 110p 출제예상문제 8번

Q. 1번질문과 연관지어서 궁금증이 생겼습니다.

1) 앞서 '소수자리를 명시하지 않으면 6자리까지 표현되는 것이 기본값'이라는 규칙에서 1번 질문의 답이 맞다라고 가정하면, 소수 7번째자리에서 반올림을 하지 않는다고 볼 수 있습니다. 그러면 2번 질문의 답은 123456789.0e-5를 지수형으로 표현하게되면 1.234567e+03이 되어야 할 테지만, 이번엔 또 반올림을 한것 처럼 1.234568e+03이 정답이 되었습니다. 어떻게 된것일까요 ?

 

2) 그리고 더 이해가가지 않는것은 123456789.0e-5을 실수형 %f로 표현했을때 1번문제의 정답에 비추어보면 1234.567890정도로 될 줄 알았는데 1234.567871​은 도대체 어떻게 나온 답인건지 이해가가질 않습니다.

 

3. 1과목 64p 예제 C언어 코드

Q. for (int i = 1; i <= a; ++i) 

부분에서 'i가 1씩 증가'를 ++i로 표현했던데, 뒷쪽 문제에서보면 주로 i++로 표기하더라구요. 전치와 후치는 엄연히 다른건데 for 구문에서는 사용하는데서는 별차이가 없는건가요 ??

 

4. 1과목 98p 예제

Q. 다음은 1~8까지 더하는 C프로그램과 ... 

에서 1~8까지 더한다고했는데 코드를 디버깅해보면 i가 0에서 7까지 1씩 증가하면서 j = 0+1+2+3+4+5+6+7으로 8은 더해지지 않는데 문제가 잘못된거 아닌가요?

답변
2019-09-30 13:26:55

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

 

[1]

63쪽 5번의 정답이 적혀있는 472쪽을 확인해보세요.

소수점 7번째 자리에서 반올림한, 1.234568e+03 이 정답입니다.

 

[2]

앞에서 말씀드린대로 7번째 자리에서 반올림한 값이 정답입니다.

 

[3]

해당 오류는 지수표현 -> 실수표현을 할때 컴퓨터에서 발생하는 연산 오류로 발생하는 값입니다.

언어에서 고질적인 오류로 존재하는 변환 오류로, 해당 오류를 회피하기 위해서는 다른 방식으로 변환해야 하지만, 해당 과정까지는 '정보처리기사' 범위에서 다루지 않기 때문에 신경쓰지 않으셔도 괜찮습니다.

변환 과정의 원리만 확실히 파악해두세요.

 

[4]

전치연산(++i) 후치연산(i++)의 경우 하나의 식 내에서 활용되었을 때만 선, 후 작용이 적용됩니다.

for문 내의 쉼표(,)로 끊어지는 경우 별개의 식으로 구분되기 때문에,

일반 코드에서

++i;

i++;

이렇게 사용한 경우와 마찬가지로 차이가 존재하지 않습니다.

 

[5]

이용에 불편을 드려 사과드립니다.

해당 부분은 정오표를 확인해주세요. [자료실] - [정오표]

[예제]의 문제는 1~7까지로 수정되어야 합니다.

코드에서 i의 초기값은 1로 수정되어야 합니다.

 

행복한 하루되세요 :)

  • 관리자
    2019-09-30 13:26:55

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

     

    [1]

    63쪽 5번의 정답이 적혀있는 472쪽을 확인해보세요.

    소수점 7번째 자리에서 반올림한, 1.234568e+03 이 정답입니다.

     

    [2]

    앞에서 말씀드린대로 7번째 자리에서 반올림한 값이 정답입니다.

     

    [3]

    해당 오류는 지수표현 -> 실수표현을 할때 컴퓨터에서 발생하는 연산 오류로 발생하는 값입니다.

    언어에서 고질적인 오류로 존재하는 변환 오류로, 해당 오류를 회피하기 위해서는 다른 방식으로 변환해야 하지만, 해당 과정까지는 '정보처리기사' 범위에서 다루지 않기 때문에 신경쓰지 않으셔도 괜찮습니다.

    변환 과정의 원리만 확실히 파악해두세요.

     

    [4]

    전치연산(++i) 후치연산(i++)의 경우 하나의 식 내에서 활용되었을 때만 선, 후 작용이 적용됩니다.

    for문 내의 쉼표(,)로 끊어지는 경우 별개의 식으로 구분되기 때문에,

    일반 코드에서

    ++i;

    i++;

    이렇게 사용한 경우와 마찬가지로 차이가 존재하지 않습니다.

     

    [5]

    이용에 불편을 드려 사과드립니다.

    해당 부분은 정오표를 확인해주세요. [자료실] - [정오표]

    [예제]의 문제는 1~7까지로 수정되어야 합니다.

    코드에서 i의 초기값은 1로 수정되어야 합니다.

     

    행복한 하루되세요 :)

  • 관리자
    2019-10-02 10:00:41
    감사합니다!
  • *
    2019-10-01 19:37:16

    명쾌하고 깔끔한 답변 정말 감사합니다 ! 

    행복한 하루되세요 ^^

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