Taek
5. Exercises 본문
1.
a) 1.
k = (i * j == 6);으로 바뀌어 동등한지 판단한 후 1이 반환된다.
b) 1
비교 연산자끼리니 왼쪽부터 차례대로 계산된다.
(k > i) < j;이니 0<10이므로 1이 반환된다.
c) 1
비교 연산자끼리 계산하면 0 == 0이다. 따라서 1이 반환됨.
d) 0
( (i % j) + i ) < k이다. 따라서 0.
2.
a) 1
i < j 는 0이지만 !(NOT) 연산자로 인해 1이 반환됨.
b) 1
!!i는 1, !j는 0이 된다. 따라서 1
c) 1
0 || k이므로 1이 반환된다.
d) 1
1 || k이므로 1이 반환된다.
3. &&, || 연산자는 'short-circuit' 계산 방식을 사용한다.
따라서 왼쪽을 연산하고 true값(&&은 false값)이 반환되는 경우, 오른쪽은 계산하지 않는다.
a) 1 3 4 5
1 || 이니 1이 반환되고, 나머지는 생략.
b) 0 7 8 9
0 && 이니 0, 나머지는 생략.
c) 1 8 8 9
8 || -> 1 반환, 나머지는 생략.
d) 1 2 1 1
2 || -> 1, 나머지는 생략
4. 간단한 단일 표현식 작성하기.
조건 ) i가 j보다 작으면 -1, 같으면 0, i가 크면 1
(i > j) - (j < i);
5. 논리적 오류가 생기는 문장. n>=1이 어떤 값이던 간에 <= 10을 계산해 항상 true값을 내놓는다. 따라서 0이어도 항상 1을 반환한다.
6. n == -9로 바뀐다. 따라서 n = 5인 경우엔 false값이 반환된다.
7. 17일 경우에 17>=0에 의해 1이 반환되어 i값인 17을 반환한다.
-17일 경우에 -17 >= 0에 의해 0이 반환된다. 따라서 -i값을 반환하는데, -(-17)이라 17을 반환한다.
8. ( (13 <= age && age <= 19) ? teenager = true : teenager = false );
아니면 teenager = (13 <= age && age <= 19);
9. 같다.
if문은 위에서부터 계산한다. 따라서 score에 90점을 할당할 경우, 왼쪽은 A, 오른쪽은 F를 놓는다.
10. one
i % 3은 1을 반환한다. switch문에서 case 1에 해당한다.
11. switch 표현식 작성하기.
switch(area_code){
case 229: printf("Albany\n"); break;
case 404: case 470: case 678: case 770:
printf("Atlanta\n"); break;
case 478: printf("Macon\n"); break;
case 706: case 762: printf("Columbus\n"); break;
case 912: printf("Savannah\n"); break;
default: printf("Area code not recognized.\n"); break;
}
'C언어 > 문제 정리' 카테고리의 다른 글
6. Exercises (0) | 2018.08.05 |
---|---|
5. Programming Projects (0) | 2018.08.04 |
4. Programming Projects (0) | 2018.07.12 |
4. Exercises (0) | 2018.07.11 |
3. Programming Projects (0) | 2018.07.11 |