C-C++/쉽게 풀어 쓴 C 언어 EXPRESS

[쉽게 풀어 쓴 C 언어 EXPRESS] 5장 정리 & Exercise(이론) 답

최옥구 2023. 1. 9. 23:00
반응형

책의 5장의 전체적인 부분을 요약했습니다. 개인 공부 겸 책으로 공부하시는 분들이 리뷰 느낌으로 한번 더 보시면 좋을 것 같아서 작성하였습니다. 


  • 수식이란 피연산자들과 연산자들의 조합이다. 연산자(Operator)는 연산을 나타내는 기호이고, 피연산자(Operand)는 연산의 대상을 뜻한다.
  • 산술연산자는 기본적인 산술연산(덧셈, 뺄셈, 곱셈, 나눗셈)을 실행하는 연산자이다. 
  • 정수 계산과 실수 계산은 완전히 다른 하드웨어를 사용한다. 따라서 수식에 실수가 포함되어 있다면, 실수계산 하드웨어를 사용하여 처리하게 된다.
  • 부호 연산자는 변수나 상수의 부호를 나타내거나 변경하는 연산자이다. 부호 연산자는 하나의 피연산자만 있으면 되기 때문에 단항 연산자이다.(Unary operator). 반대의 개념으로는 이항 연산자(Binary operator)가 있다. 
  • 증감 연산자는 "++", "--"기호를 사용하며, 변수에 1을 더하거나 빼는 것을 뜻한다. 사용 예는 x++, --x가 있으며, 이를 풀어서 쓰면 x = x + 1; x = (x - 1)이다. 증감 연산자의 위치에 따라 변수의 값이 달라지는데, 변수의 앞에 위치하는 전치(전위)의 경우 값이 1 증가가 먼저 된다. 즉, int x = 10; int y = ++x;라면, y와 x 둘 다 11이 들어가고, int y = x++;와 같은 후치(후위)의 경우라면 y에는 1이 더해지기 전인 10이, x의 값만 1 증가한 11이 된다. 
  • 대입 연산자 ( = )는 변수의 공간에 상수를 대입하라는 것을 뜻한다. 수학에서의 등호와 헷갈리면 안 된다. C언어에서 등호는 (==)이다. 
  • 복합 대입연산자는 연산후 대입을 하는 것을 간단하게 작성하는 것이다. 가령 x가 10이고, x += 10이라고 한다면 x = x + 10을 뜻한다. 즉 x는 20이 된다. 나머지 복합 대입 연산자들도 산술연산자와 대입연산자를 같이 쓰면서 무슨 값을 대입할 것인지 나타낸다. 
  • 관계 연산자는 두개의 피연산자를 비교하는 데 사용된다. 예로 ( == )나 (!= )이 있다. 각각 갔다 와 다르다를 나타낸다.
  • 논리 연산자는 조건문을 사용할 때 필수적으로 사용되며, 조건에 따라 참과 거짓을 출력하는 연산자이다. 예로 &&와 ||이 있다. 각각 and와 or을 뜻한다.
  • 단축 계산이란, 특정한 조건이 성립되면 불필요한 부분은 계산을 하지 않고 넘어가면서 프로그램의 효율을 높이는 계산법이다. 가령, x == 10 || y == 5가 성립하는지 확인한다고 했을 때, or 연산자는 둘 중 하나만 참이어도 참이기 때문에 x == 10이 참이라면 y == 5는 확인하지 않고 참을 출력한다. 이는 &&도 마찬가지로 앞부분이 false면 뒷부분은 계산하지 않고 false를 리턴한다.
  • 삼항 연산자란 (x > y) x : y;와 같은 모양을 띄고 있으며, 조건이 참이라면 " : "의 앞에 값을 리턴하고, 거짓이면 " : "의 뒤에 값을 링턴한다. 
  • 형변환이란 실행 중에 데이터 타입을 변경하는 것을 말한다. 형변환에는 두가지 종류가 있는 명시적 변환과 자동적 변환이 있다. 명시적은 프로그래머가 코드상에서 인위적으로 타입을 변경하는 것을 말하고, 자동적은 컴파일러가 자동으로 변환을 하는 것을 말한다. 
  • 모든 연산자에는 처리 우선순위가 있다. 이 순위는 우선처리 순으로 단항, 산술, 관계, 논리, 대입, 콤마가 있으며, 이를 의도적으로 변경하고 싶을 때는 ( ) 괄호로 묶으면 된다. 

1. 다음 중 우선순위가 가장 높은 연산자는? - 3번

 

2. 수식에서 어떤 연산자들이 먼거 계산되는지를 결정하는 것을 무엇이라고 하는가? - 3번

 

3. 두개의 피연산자가 모두 참인 경우에만 참이 되는 논리 연산자는? - 1반

 

4. 다음 중 올바른 대입식이 아닌 것은? - 2번 / 좌변에는 변수, 우변에는 대입할 상수나 수식이 들어가야 합니다.

 

5. 다음 수식의 값을 적으시오. - (A) 1.500000, (B) 1.000000, (C) 1.500000, (D) 1.500000

 

6. 다음 중에서 조건 연산자를 올바르게 사용한 것은? - 5번 

 

7. 다음 프로그램의 출력은? - -2, 3, 1, 0

 

8. 다음 프로그램의 출력은? - 2, 3, 3

 

9. 다음 수식의 결과는 무엇인가? 단 x는 16비트는 정수이고 초기값은 0x1111이라고 가정한다. 

(A) 0, (B) 0xffff, (C) 0xffff, (D) ~x

 

10. 아래의 수식이 계산되는 순서를 올바르게 나타낸 것은? - 1번 / 괄호가 없다면 수학과 마찬가지로 곱셈과 나눗셈을 좌에서 우로 순서대로 계산하고 덧셈과 뺄셈을 순서대로 계산합니다.

 

11. 다음 프로그램의 출력은? - 80

 

12. 다음 프로그램의 출력은? - 1

 

13. 다음의 조건에 해당하는 논리 연산식을 만들어 보시오. 필요한 변수는 적절하게 선언하라.

(A) homeLess >= 3 && age >= 40 && family >= 3

(B)(age >= 6 && tall >= 150) || (age >= 6) && tall < 150)

(C) average >= 3.0 && (toefl >= 300 || toeic >= 700)

반응형