본문 바로가기
IT/프로그래밍

쉽게 풀어 쓴 C언어 Express 15장 Exercise 문제

by nutrient 2020. 12. 7.
728x90
728x170

쉽게 풀어 쓴 C언어 Express 15장 Exercise 문제

 

1.

#if VERSION==1 //단순 매크로 VERSION이 1이면

printf("원의 면적은 %f입니다\n", area(radius));

#elif VERSION==2 //단순 매크로 VERSION이 2이면

printf("area of the circle is %f \n", area(radius));

# else //단순 매크로 VERSION이 1이나 2가 아니면

printf("area of the circle is %f \n", area(radius));

#endif

 

2. (4)

 

3. (1) 오류 : 함수 매크로의 매개 변수 y를 사용하지 않는다. -> 매크로를 실제로 호출할 때 오류가 발생한다.

(2) 오류: #if VERSION==1 으로 변경하여야 한다.

(3) 오류: #if (DEBUG > 3.00)으로 변경 전처리기에서는 실수를 사용할 수 없다.

(4) 오류가 없다.

(5) 오류: #define SIZE 100으로 변경

(6) 오류: #if (VERSION*100 > 300 && DATE > 80901)으로 변경, 정수 앞에 0이 붙으면 오류 발생

(7) 오류: 문자열과 비교할 수 없음!

 

4. #include <header>은 컴파일러가 설치된 디렉토리에서 헤더 파일을 찾는다. #include

"header"은 현재 디렉토리에서 헤더 파일을 찾는다.

 

5. 

#define AREA(w. h) w*h -> #define AREA(w, h) ((w)*(h))

 

6.

DEBUG 버전

계속하려면 아무 키나 누르십시오 . . .

 

7.

(a)

firstsecond

(b)

Kim and Park Hello!

 

8.

(a)

#ifdef !DEBUG -> #ifndef DEBUG

(b)

#define PRINT(x) printf(“%d”, x);

int main(void) {

PRINT(x);

return 0;

}

->

#include <stdio.h>

#define PRINT(x) printf("%d", x);

int main(void) {

int x=0;

PRINT(x);

return 0;

}

 

9.

(a)

struct test {

unsigned bit1:1;

unsigned bit2:1;

unsigned bit3:1;

unsigned bit4:1;

unsigned bit5:1;

unsigned bit6:1;

unsigned bit7:1;

unsigned bit8:1;

};

 

(b)

struct test x;

x.bit1=1;

 

 

 

728x90
그리드형

댓글