책 내용 질문하기
정보처리기사 2권 섹션133.연산자 p41 연습문제
도서
2022 시나공 정보처리기사 필기
페이지
41
조회수
360
작성일
2022-06-15
작성자
탈퇴*원
첨부파일

a=3, b=4, c=5, d=6 일때

d%b+ ++a * c-- ll c- --a >=10

을 풀때,

1) ++a는 전치연산자라서 4가 되는 것 아닌가요??

결합 규칙 우선순위가 --(감소) 가 먼저라서 --a 2가 되고 그다음에 ++a 를 해서 3이 되는건가요??

 

2) 최종적으로 

17 ll 0 은 17 또는 0 중 하나라도 참이면 참(1) 이면 참(1) 인데,

 

17, 0 둘 중 하나라도 1인게 없는데 왜 답이 1이되는지 모르겠습니다.

 

 

답변
2022-06-16 09:31:46

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

 

[1]

C언어에서는 전치/후치 연산자가 전체 식 전/후에 적용됩니다.

즉, 1번과 3번에 있는 전치 감소 연산, 전치 증가 연산이 식을 계산하기 전에 적용되어 실제 연산에서는 둘 모두 3이 그대로 연산에 사용되는 것이죠.

 

[2]

논리값(Boolean Value)은 기본적으로 0을 거짓, 1을 참으로 보지만, 

일반 숫자를 강제로 논리값으로 판단할 경우 0을 거짓, 0외의 다른 모든 값을 참으로 인식하므로 17을 참으로 인식하여 결과로 참(1)이 나오는 것입니다.

 

행복한 하루되세요 :)

  • 관리자
    2022-06-16 09:31:46

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

     

    [1]

    C언어에서는 전치/후치 연산자가 전체 식 전/후에 적용됩니다.

    즉, 1번과 3번에 있는 전치 감소 연산, 전치 증가 연산이 식을 계산하기 전에 적용되어 실제 연산에서는 둘 모두 3이 그대로 연산에 사용되는 것이죠.

     

    [2]

    논리값(Boolean Value)은 기본적으로 0을 거짓, 1을 참으로 보지만, 

    일반 숫자를 강제로 논리값으로 판단할 경우 0을 거짓, 0외의 다른 모든 값을 참으로 인식하므로 17을 참으로 인식하여 결과로 참(1)이 나오는 것입니다.

     

    행복한 하루되세요 :)

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