사무자동화산업기사 기출문제·모의고사·오답노트·자동채점

2019년09월21일 49번

[프로그래밍 일반]
다음 수식(expression)을 EBNF로 맞게 표현한 것은?

  • ① <expression> : : =<expression>(+│-│*│/)<expression>
  • ② <expression>=<expression>[+│-│*│/]<expression>
  • ③ <expression> : : <expression>{+│-│*│/}<expression>
  • ④ <expression> : : = expression [+│-│*│/]<expression>
(정답률: 58%)

문제 해설

정답은 "<expression> : : =<expression>(+│-│*│/)<expression>"이다.

이유는 다음과 같다.

- EBNF에서 대괄호([])는 옵션을 나타내고, 중괄호({})는 0회 이상 반복을 나타낸다.
- 따라서 "<expression>=<expression>[+│-│*│/]<expression>"은 "+" 또는 "-" 또는 "*" 또는 "/"가 없는 경우를 고려하지 않았기 때문에 올바르지 않다.
- "<expression> : : <expression>{+│-│*│/}<expression>"은 중괄호 안에 있는 기호들이 반드시 순서대로 나와야 하기 때문에 "+" 또는 "-" 또는 "*" 또는 "/"가 중간에 빠지거나 중복되는 경우를 고려하지 않았기 때문에 올바르지 않다.
- 따라서 "<expression> : : = expression [+│-│*│/]<expression>"은 "+" 또는 "-" 또는 "*" 또는 "/"가 한 번만 나와야 하기 때문에 올바르지만, "=" 기호가 불필요하게 들어가 있어서 간결하지 않다.
- 따라서 "<expression> : : =<expression>(+│-│*│/)<expression>"이 가장 간결하면서도 "+" 또는 "-" 또는 "*" 또는 "/"가 한 번만 나와야 하는 조건을 충족시키기 때문에 정답이다.
AppStore에서 다운로드 APK 다운로드

연도별

진행 상황

0 오답
0 정답