2022년03월05일 78번
[프로그래밍 언어 활용] C언어에서 정수 변수 a, b에 각각 1, 2가 저장되어 있을 때 다음 식의 연산 결과로 옳은 것은?

- ① 0
- ② 1
- ③ 3
- ④ 5
(정답률: 53%)
문제 해설
a<b+2&&a<<1<=b // && : 좌항(a<b+2)과 우항(a<<1<=b)이 모두 True(1)이면 True(1)이다. 추가사항 : false 는 0, True 는 1
이때 a=1, b=2 식에 대입하면
-> 1<2+2&&1<<1<=2
좌항 : 1<2+2 // 사칙연산을 먼저한다.
따라서, 1<4 는 True(1)
우항 : 1<<1<=2 // <<n 는 n비트 만큼 왼쪽으로 이동하라는 뜻
// 1을 binary(2진수)으로 변환하면 1(000000001)이다
// 1을 <<1 해주면 01(00000010)이 된다
// 10을 decimal(10진수)로 변환하면 2가된다.
따라서, 2<=2 는 True(1)
다시 돌아와 본식에 대입해 1<4&&2<=2 면 True(1) 가 된다. 따라서 최종답은 2번
연도별
진행 상황
0 오답
0 정답