책 내용 질문하기
2권 39, 41쪽 관련 문의
도서
2023 시나공 정보처리기사 필기
페이지
39,41
조회수
205
작성일
2022-12-06
작성자
탈퇴*원
첨부파일

안녕하세요.

 

1. 연산자 부분을 학습 하다가 이해가 어려운 부분이 있어서 질문 드립니다.

39쪽의 문제 6번에서 ++a%b++ 부분에서 b++은 후치 연산자이기 때문에, ++a%b++을 계산할 때에는 b가 2이고, 이 계산이 끝난 후에는 b가 3이 되는 것으로 이해했습니다. 그래서 마지막의 b/c는 3/3이 되는 것이지요.

 

그런데, 41쪽의 문제 2번에서 ++a*c-- 부분에서도 c--는 후치 연산자이기 때문에, ++a*c--를 계산할 때에는 c가 5이고, 이 계산이 끝난 후에는 c가 4가 되어야 하는 것이 아닌가요?

그렇게 c가 4가 되어서 교재에서 기재하고 있는 7번 부분이 4-3=1 로 1이 되어야하는 것이 아닌가요?

 

해당 부분들의 유튜브 강의를 찾아보았지만, 후치 연산자를 정확히 어느 시점에서 적용하는지에 대한 설명은 부족하다고 생각되어 이 쪽으로 문의 납깁니다.

 

2. 단원 끝 부분의 기출문제들을 풀다보면 종종 '아스키 코드' 라는 것이 등장합니다. 교재에는 아스키 코드에 대한 설명이 자세하게 적혀있지 않지만, 아스키 코드를 모르면 해결할 수 없는 문제들이 몇 있더라고요. 이 아스키 코드는 따로 암기가 필요한 부분일까요?

 

답변 기다리겠습니다.

감사합니다.

답변
2022-12-08 10:03:37

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

 

C언어에서 단항 증감연산자는 하나의 식 내에서 공통 적용됩니다.

 

a = 2;

sum = ++a + ++a + a++; 이라는 식이 있다면, 4+4+4라는 결과가 sum에 저장되죠.

 

만약,

sum = a++ + a++ + a++; 이라는 식이 있더라도, 2+2+2의 결과가 sum에 저장된 후 해당 식이 종료된 후에나 a의 값이 후치증가연산 3번이 중첩되면서 a가 5로 증가하게 될 것입니다.

 

여기서 주의할 점은 '하나의 식'이라는 개념입니다.

조건 연산자(조건 ? 참 : 거짓)나 순서 연산자(, 또는 ;)는 2개 이상의 식이 포함되는 형태입니다.

40쪽의 6번의 경우 ++a % b++이 하나의 식이 되어 b++의 후치 증감연산자가 적용된 후에 b/3가 수행되게 되죠.

이 점이 충분히 설명되지 않아 이해하시는 데 어려움을 드린 듯 합니다.

 

------------------------

 

아뇨, 아스키 코드는 단순히 

1. 컴퓨터가 문자를 메모리에 저장하는데, 메모리라는 곳은 문자를 직접 저장할 수 없어서 숫자 코드로 저장한다.

2. 이 때 사용되는 숫자 코드가 아스키 코드다.

3. 때문에 하나의 문자는 숫자와 다름없다.

라고 보시면 됩니다.

 

char 자료형이 문자형인 동시에 정수형인 것도 이런 이유 때문이며,

문자를 +1 했을 때 다음 문자를 가리킬 수 있는 것도 마찬가지입니다.

종종 아스키 코드 65가 'A'다 라는 식의 지식이 있어야 풀 수 있는 문제가 등장할 수 있지만, 보통 이런 문제의 경우 문제 자체에서 아스키 코드의 값을 미리 알려주는 단서가 제시됩니다.

('<처리 조건> 문자 A는 아스키 코드로 숫자 65이다.' 요런 식으로)

 

행복한 하루되세요 :)

  • 관리자
    2022-12-08 10:03:37

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

     

    C언어에서 단항 증감연산자는 하나의 식 내에서 공통 적용됩니다.

     

    a = 2;

    sum = ++a + ++a + a++; 이라는 식이 있다면, 4+4+4라는 결과가 sum에 저장되죠.

     

    만약,

    sum = a++ + a++ + a++; 이라는 식이 있더라도, 2+2+2의 결과가 sum에 저장된 후 해당 식이 종료된 후에나 a의 값이 후치증가연산 3번이 중첩되면서 a가 5로 증가하게 될 것입니다.

     

    여기서 주의할 점은 '하나의 식'이라는 개념입니다.

    조건 연산자(조건 ? 참 : 거짓)나 순서 연산자(, 또는 ;)는 2개 이상의 식이 포함되는 형태입니다.

    40쪽의 6번의 경우 ++a % b++이 하나의 식이 되어 b++의 후치 증감연산자가 적용된 후에 b/3가 수행되게 되죠.

    이 점이 충분히 설명되지 않아 이해하시는 데 어려움을 드린 듯 합니다.

     

    ------------------------

     

    아뇨, 아스키 코드는 단순히 

    1. 컴퓨터가 문자를 메모리에 저장하는데, 메모리라는 곳은 문자를 직접 저장할 수 없어서 숫자 코드로 저장한다.

    2. 이 때 사용되는 숫자 코드가 아스키 코드다.

    3. 때문에 하나의 문자는 숫자와 다름없다.

    라고 보시면 됩니다.

     

    char 자료형이 문자형인 동시에 정수형인 것도 이런 이유 때문이며,

    문자를 +1 했을 때 다음 문자를 가리킬 수 있는 것도 마찬가지입니다.

    종종 아스키 코드 65가 'A'다 라는 식의 지식이 있어야 풀 수 있는 문제가 등장할 수 있지만, 보통 이런 문제의 경우 문제 자체에서 아스키 코드의 값을 미리 알려주는 단서가 제시됩니다.

    ('<처리 조건> 문자 A는 아스키 코드로 숫자 65이다.' 요런 식으로)

     

    행복한 하루되세요 :)

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