목차
없음
본문내용
과 같이 크기가 큰 형을 int 와 같은 크기가 작은 형으로 변환하
는 것을 말하며, 정보를 손실할수 있다.
2. 다음 문장에서 오류가 발생하지 않는 소스를 고르시오.
A. int m = 7; int n = 14; B. int a = 1;
m + 7 = n; int b = (a+15)++;
C. int a D. int x = (int) 3.14;
int b = a x 4;
정답:
a. 오류발생, =연산자 좌측에는 변수가 와야하는데 m+7은 변수가 될수 없음
b. 오류없음
c. 오류발생, x라는 값이 명시되어 있지 않음
d. 요류발생은 없으나 결과 값이 정수형이 됨
3. 다음 소스의 출력값을 기술하시오.
A.printf("%d\n", 5 >> 2); 결과값: 1
B.printf("%d\n", 5 << 2);결과값: 20
C.printf("%d\n", 5 || 2);결과값: 1
D.printf("%d\n", 5 | 2);결과값: 7
E.printf("%d\n", 5 & 2);결과값: 0
F.printf("%d\n", (5 & 2) && (3 == 2));결과값: 0
G.printf("%d\n", (3 > 4) || !(4 ==1));결과값: 1
H.printf("%d\n", 3 == 4 ? 1:0);결과값: 0
4. int형 변수 a,b,c,d가 각각 3,6,10,15인 경우, 다음 연산식의 결과는 무엇인가?
A. --a + b++ = 4 + 6 = 10
B. a + b % c = 3 + 6 % 10 = 3 + 6 = 9 (%가 +보다 우선순위가 높습니다.)
C. a / b = 3 / 6 = 0 (int이기 때문에 소수점 밑으로 모두 잘립니다)
D. (b > c) - d = (6 > 10) - 15 = 0 - 15 = -15 (C에서 false는 0입니다)
E. (b != 10) && (c >=d) = (6 != 10) && (10 >= 15) = true && false = false = 0
F. a + b++ - --d = 3 + 6 - 14 = -5
G. a && 0 || d >> 3 = 3 && 0 || 15 >> 3 = 0 || 1 = 1
H. 5 - 1 == sizeof (d) = 4 == 4 = true (32비트 머신에선 int의 size는 4입니다. 그리고 4 == 4는 true인데 C에서 true인 값은 0이 아닌 값이므로 이 경우에는 숫자로 표시할 수 없다)
5. 자료형 변환 연산자를 고려하여 다음 프로그램의 실행결과를 기술하시오
#include
int main(void)
{
double x = 4.9;
double y = 7.4;
int iResult1 = x + y;
int iResult2 = (int) x + y;
int iResult3 = (int) x + (int) y;
double dResult1 = x + y;
double dResult2 = (int) x + y;
double dResult3 = (int) x + (int) y;
double dResult4 = (int) (x + y);
printf("iResult1 => %4d\n", iResult1);
printf("iResult2 => %4d\n", iResult2);
printf("iResult3 => %4d\n\n", iResult3);
printf("dResult1 => %7.2f\n", dResult1);
printf("dResult1 => %7.2f\n", dResult2);
printf("dResult1 => %7.2f\n", dResult3);
printf("dResult1 => %7.2f\n", dResult4);
return 0;
}
해답
는 것을 말하며, 정보를 손실할수 있다.
2. 다음 문장에서 오류가 발생하지 않는 소스를 고르시오.
A. int m = 7; int n = 14; B. int a = 1;
m + 7 = n; int b = (a+15)++;
C. int a D. int x = (int) 3.14;
int b = a x 4;
정답:
a. 오류발생, =연산자 좌측에는 변수가 와야하는데 m+7은 변수가 될수 없음
b. 오류없음
c. 오류발생, x라는 값이 명시되어 있지 않음
d. 요류발생은 없으나 결과 값이 정수형이 됨
3. 다음 소스의 출력값을 기술하시오.
A.printf("%d\n", 5 >> 2); 결과값: 1
B.printf("%d\n", 5 << 2);결과값: 20
C.printf("%d\n", 5 || 2);결과값: 1
D.printf("%d\n", 5 | 2);결과값: 7
E.printf("%d\n", 5 & 2);결과값: 0
F.printf("%d\n", (5 & 2) && (3 == 2));결과값: 0
G.printf("%d\n", (3 > 4) || !(4 ==1));결과값: 1
H.printf("%d\n", 3 == 4 ? 1:0);결과값: 0
4. int형 변수 a,b,c,d가 각각 3,6,10,15인 경우, 다음 연산식의 결과는 무엇인가?
A. --a + b++ = 4 + 6 = 10
B. a + b % c = 3 + 6 % 10 = 3 + 6 = 9 (%가 +보다 우선순위가 높습니다.)
C. a / b = 3 / 6 = 0 (int이기 때문에 소수점 밑으로 모두 잘립니다)
D. (b > c) - d = (6 > 10) - 15 = 0 - 15 = -15 (C에서 false는 0입니다)
E. (b != 10) && (c >=d) = (6 != 10) && (10 >= 15) = true && false = false = 0
F. a + b++ - --d = 3 + 6 - 14 = -5
G. a && 0 || d >> 3 = 3 && 0 || 15 >> 3 = 0 || 1 = 1
H. 5 - 1 == sizeof (d) = 4 == 4 = true (32비트 머신에선 int의 size는 4입니다. 그리고 4 == 4는 true인데 C에서 true인 값은 0이 아닌 값이므로 이 경우에는 숫자로 표시할 수 없다)
5. 자료형 변환 연산자를 고려하여 다음 프로그램의 실행결과를 기술하시오
#include
int main(void)
{
double x = 4.9;
double y = 7.4;
int iResult1 = x + y;
int iResult2 = (int) x + y;
int iResult3 = (int) x + (int) y;
double dResult1 = x + y;
double dResult2 = (int) x + y;
double dResult3 = (int) x + (int) y;
double dResult4 = (int) (x + y);
printf("iResult1 => %4d\n", iResult1);
printf("iResult2 => %4d\n", iResult2);
printf("iResult3 => %4d\n\n", iResult3);
printf("dResult1 => %7.2f\n", dResult1);
printf("dResult1 => %7.2f\n", dResult2);
printf("dResult1 => %7.2f\n", dResult3);
printf("dResult1 => %7.2f\n", dResult4);
return 0;
}
해답
추천자료
[C 프로그래밍] C로 배우는 프로그래밍 기초 2장 이해점검 및 프로그램문제 풀이
[C 프로그래밍] C로 배우는 프로그래밍 기초 6장 이해점검 및 프로그램문제 풀이
[C 프로그래밍] C로 배우는 프로그래밍 기초 7장 이해점검 및 프로그램문제 풀이
[C 프로그래밍] C로 배우는 프로그래밍 기초 1장 이해점검 및 프로그램문제 풀이
[C 프로그래밍] C로 배우는 프로그래밍 기초 11장 이해점검 및 프로그램문제 풀이
[C 프로그래밍] C로 배우는 프로그래밍 기초 12장 이해점검 및 프로그램문제 풀이
[C 프로그래밍] C로 배우는 프로그래밍 기초 13장 이해점검 및 프로그램문제 풀이
c로 배우는 프로그래밍 기초
c로 배우는 프로그래밍 기초
C로 배우는 프로그래밍 기초 2nd Chapter 01
소개글