1



Similar documents
K&R2 Reference Manual 번역본

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

슬라이드 1

Microsoft PowerPoint - chap11-포인터의활용.pptx

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Microsoft PowerPoint - chap10-함수의활용.pptx

untitled

11장 포인터

Microsoft PowerPoint - chap12-고급기능.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap04-연산자.pptx

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

OCW_C언어 기초

11장 포인터


[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint - ch07 - 포인터 pm0415

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - C++ 5 .pptx

윤성우의 열혈 TCP/IP 소켓 프로그래밍

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

Microsoft PowerPoint - chap05-제어문.pptx

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - 제11장 포인터

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

02장.배열과 클래스

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - 제11장 포인터(강의)

PowerPoint Template

KNK_C_05_Pointers_Arrays_structures_summary_v02

untitled

쉽게 풀어쓴 C 프로그래밍


Microsoft PowerPoint - chap-03.pptx

歯9장.PDF

untitled

기초컴퓨터프로그래밍

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

Tcl의 문법

<4D F736F F F696E74202D20C1A63132B0AD20B5BFC0FB20B8DEB8F0B8AEC7D2B4E7>

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

13 주차문자열의표현과입출력

금오공대 컴퓨터공학전공 강의자료

설계란 무엇인가?

Microsoft PowerPoint - Lesson2.pptx

<4D F736F F F696E74202D20C1A63137C0E520B5BFC0FBB8DEB8F0B8AEBFCD20BFACB0E1B8AEBDBAC6AE>

프로그램의실행화면 주석 (comment) 두수의합 : 300 /* 두개의숫자의합을계산하는프로그램 */ 주석은코드를설명하는글입니다. 주석 3 가지방법의주석 주석의예 /* 한줄로된주석 */ /* 저자 : 홍길동날짜 : 2013.

슬라이드 1

컴파일러

슬라이드 1

C 프로그래밊 개요

PowerPoint 프레젠테이션

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor


PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

chap7.key

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

OCW_C언어 기초

14 주차구조체와공용체

C++-¿Ïº®Çؼ³10Àå

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

C 언어 프로그래밊 과제 풀이

슬라이드 1

Microsoft PowerPoint - Chapter_04.pptx

Microsoft PowerPoint - chap-06.pptx

쉽게

Microsoft PowerPoint - chap-11.pptx

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

BMP 파일 처리

C 프로그램의 기본

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

쉽게 풀어쓴 C 프로그래밍

11장 포인터

PowerPoint 프레젠테이션

Lab 3. 실습문제 (Single linked list)_해답.hwp

쉽게 풀어쓴 C 프로그래밍

chap10.PDF

쉽게 풀어쓴 C 프로그래밍

untitled

OCW_C언어 기초

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문

Microsoft PowerPoint - 2주차-1차시 (강의자료) ch01 - C Programming 기초 (part 2)

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770>

Microsoft PowerPoint - ch08 - 구조체 (structure) am0845

Transcription:

CHAPTER 1 중간점검문제 p.22 1. 계산기는 수행하는 작업이 고정되어 있으므로 컴퓨터라고 할 수 없다. 2. 이진수로 되어 있는 기계어 3. 고급 프로그래밍 언어를 기계어로 번역한다. p.25 1. FORTRAN 2. PASCAL 3. C++ 4. COBOL 5. JAVA 6. C++, JAVA p.28 1. 임베디드 시스템(embedded system)은 일종의 컴퓨터 시스템으로 한 가지 기능만 수행되 도록 설계되었으며 하드웨어에 내장하여 특수한 기능만을 수행한다. 임베디드 시스템은 오 늘날 일상 생활에 쓰이는 많은 장치들을 제어하고 있다. 2. 장점: 간결하고 효율적이며 이식이이 뛰어나다. 단점: 배우기 어렵다. 객체 지향 프로그래밍이 힘들다. p.32 1. 수화기를 든다. -> 상대방의 전화번호를 누른다. -> 통화를 한다 -> 통화가 끝나면 수화 기를 내려 놓는다. 2. 세탁기의 전원을 켠다. -> 세탁기의 뚜껑을 연다. -> 옷과 세제를 넣는다. ->세탁기의 뚜 겅을 닫는다. ->실행 버튼을 누른다. -> 완료되었으면 전원을 차단한다.

p.39 1. 요구사항분석->알고리즘 작성->소스 작성->컴파일과 링크->프로그램 실행과 디버깅 2. 올바르지 않다. 확장자로.c를 붙여야 한다. 3. 소스 파일: 프로그래밍 언어로 작성한 원본 파일 오브젝트 파일: 소스 파일을 기계어로 컴파일한 파일 실행파일: 오브젝트 파일들을 모아서 시동 코드와 라이브러리 코드를 붙인 파일 4. 오브젝트 파일: test.obj 실행파일: test.exe 5. 소스 파일은 반드시 보관하여야 한다. 오브젝트 파일은 삭제하여도 된다. 6. 원하는 실행 결과가 나오지 않는 경우에 소스 수정->컴파일->링크->실행 의 단계를 다 시 거치는 오류 수정 작업 7. 오류가 남아있을 수도 있고 사용자의 요구조건이 변경될 수 있다. p.43 1. 2. 와 같은 입력하여서 실행하여 본다. 조건부실행 과 변수 에서는 변수 생성이 필요하다. 변수는 아직 학습하지 않았지만 값을 저장하고 있는 박스라고 생각할 수 있다. 변수는 에서 Make a variable"을 클릭한다. CHAPTER 2 중간점검문제

p.43 1. 통합 개발 환경 2. [파일]->[새로만들기]->[프로젝트] 3. [빌드]->[솔루션빌드] 4. 구별한다. 5. sample.obj와 sample.exe 6. 사용하여도 된다. 메모장으로 소스 파일을 생성한 후에 [소스파일] 위에서 마우스 오른쪽 버튼을 눌러서 [추가]->[기존항목]을 선택한다. p.64 1. 세미콜론(;) 2. 주석(comment) 3. 화면에 주어진 문자열을 출력한다. p.66 1. \n 2. #include <stdio.h> int main(void) { printf("사과 \n"); printf("오렌지 \n"); printf("포도 \n"); return 0; } 3. #include <stdio.h> int main(void) { printf("3 X 1 = 3 \n"); printf("3 X 2 = 6 \n"); printf("3 X 3 = 9 \n"); printf("3 X 4 = 12 \n"); printf("3 X 5 = 15 \n"); printf("3 X 6 = 18 \n"); printf("3 X 7 = 21 \n"); printf("3 X 8 = 24 \n"); printf("3 X 9 = 27 \n"); return 0;

} p.66 1. 소스 파일을 수정하고 다시 컴파일하여서 실행하는 디버깅(debugging)을 하여야 한다. 2. 경고(warning) CHAPTER 3 중간점검문제 p.84 1. /* /*... */ */와 같이 중첩할 수 없다. 2. /*... */ 형태의 주석은 한줄 이상으로 할 수 있다. 3. 코드를 작성한 의도를 적는 것이 좋다. 4. 전혀 영향을 끼치지 않는다. p.85 1. stdio.h 2. 현재의 위치에 헤더파일을 읽어서 포함시키라는 의미이다. p.88 1. main() 2. {와 }이다. 3. ; p.91 1. int i; 2. double f; 3. 함수의 첫 부분에서(즉 일반 문장을 작성하기 전에) p.93 1. product = a * b; 2. quotient = a / b;

p.96 1. %f 2. printf("k=%d \n", k); p.100 1. double value; scanf("%lf", &value); CHAPTER 4 중간점검문제 p.112 1. 변수는 실행 도중에 값을 변경할 수 있는 공간이다. 상수는 실행 도중에 값을 변경할 수 없는 공간이다. 2. 메모리(기억장치) p.116 1. 알파벳, 숫자, _으로 구성된다. 중간에 공백이 들어갈 수 없다. 대문자와 소문자는 구별 된다. 키워드는 식별자로 사용할 수 없다. 2. 알파벳, _ 3. 키워드(예약어) p.120 1. 변수는 반드시 함수의 처음에서 선언되어야 한다. 2. int x=1, y=0; p.128 1. short, int, long 2. 이해하기 쉽고 값의 변경이 쉬어진다. 3. 메모리를 절약하기 위하여

4. 음수를 양수로 해석한다. 5. -32768이 된다. p.132 1. 근본적인 이유는 뺄셈 연산을 덧셈으로 하려는 것이다. 즉 3-4 = 3+(-4)와 같이 하려는 것이다. 덧셈 회로만 있으면 덧셈과 뺄셈을 할 수 있으므로 CPU 안의 회로가 간단해진다. 2. 10111101 p.139 1. float형은 4바이트이고 double형은 8바이트이다. 2. 1.0e25 3. 가수와 지수를 저장하는 공간이 제한되어 있기 때문이다. p.146 1. 문자도 정수를 이용해서 나타낸다. 2. char 3. printf("\a"); CHAPTER 5 중간점검문제 p.156 1. 수식은 연산자와 피연산자의 조합이다. 2. 상수도 하나의 수식이다. 3. 10과 20은 피연산자이고 +는 연산자이다. 4. 피연산자의 개수 p.162 1. x = x + 1; 2. x++은 x의 값을 먼저 사용하고 나중에 값을 증가한다. ++x은 증가를 먼저하고 증가된 값 을 수식에 사용한다.

3. 13 p.165 1. 변수, 즉 값을 저장할 수 있는 공간이다. 2. 수학에서는 같다는 의미이지만 프로그래밍에서는 저장하라는 의미가 된다. 3. x = x * y를 줄여서 쓴 것이다. 4. 10을 6으로 나누어서 얻은 나머지 4가 수식의 값이 된다. 5. 10과 6이 모두 정수이므로 결과값은 1이 된다. 6. x+=y는 x=x+y와 동일하다. x=+y는 단순히 x = +y와 같다. 즉 x = y와 같다. p.170 1.내림 변환은 낮은 등급으로 변환되는 것이고 올림 변환은 높은 등급으로 변환되는 것이 다. 2. (double)x 3. 정수가 부동소수점수로 형변환되어서 계산이 이루어진다. p.173 1. 참(1)과 거짓(0) 2. 1+5가 되어서 6이 된다. p.178 1. (age >= 25 && salary >= 3500) 2. 0이 아니면 참으로 취급한다. 따라서 상수 10은 참이다. 3.!3의 값은 0이 된다. 4. (persons >= 3 ) && (++count <= 10) 위의 식에서 persons가 3보다 작으면 ++count는 실행되지 않는다. p.180 1. (x%2==0)? printf("짝수\n") : printf("홀수\n"); p.186 1. << 2. ~ 3. 왼 4. 오른 p.193 1.,(콤마 연산자) 2. &&

3. 단항연산자 4. 산술연산자 CHAPTER 6 중간 점검 문제 p.208 1. 복합문(블록) 2. 기본적으로 참은 1, 거짓은 0로 표시된다. 3. 관계 수식이나 논리 수식 4. if문 다음에 있는 문장이 실행된다. if (...) {... } 여기 있는 문장이 실행된다. 5. 문장들을 중괄호로 묶어서 복합문으로 만든다. p.214 1. if( n >= 100 ) printf("large\n"); else printf("small\n"); p.221 1. n의 값이 -1인 경우-> C n의 값이 0인 경우-> A n의 값이 5인 경우-> B 2.

if( n < 100 ) printf("small\n"); else if( n < 200 ) printf("medium\n"); else printf("large\n"); p.228 1. 다음 case절의 문장들을 연속하여서 실행한다. 2. fruit의 값이 1인 경우-> 사과 fruit의 값이 2인 경우-> 배 바나나 fruit의 값이 5인 경우-> 과일 CHAPTER 7 중간점검문제 p 242 1. 반복하여 처리하는 작업이 많기 때문이다. 2. while 문, for 문 p.255 1. if문은 조건이 만족되면 한번만 실행한다. while문은 조건이 만족되는 동안 반복하여 실 행된다. 2. while(1) { //... } 3.

10 7 4 1 p.260 1. 0 1 2 p.268 1. 2 4 6 8 계속하려면 아무 키나 누르십시오... 2. Student10 Student8 Student6 Student4 Student2 p.272 1. 0 곱하기 0은 0 0 곱하기 1은 0 0 곱하기 2은 0 1 곱하기 0은 0 1 곱하기 1은 1 1 곱하기 2은 2 2 곱하기 0은 0 2 곱하기 1은 2 2 곱하기 2은 4 계속하려면 아무 키나 누르십시오...

p.276 1. continue 2. break 3. 1 2 4. 1 2 4 5 7 8 CHAPTER 8 중간점검문제 p.294 1. 가장 중요한 이유는 소스 코드의 중복성을 없애 주기 때문이다. 2. 함수는 프로그램을 이루는 모듈 역할을 한다. 3. 라이브러리 함수 p.297 1. void 2. return (x+y+z); 3. double fabs(double f) p.307 1. 인수의 값이 매개 변수로 복사된다. 2. 정수가 실수로 형변환된 후에 반환된다. p.311 1. 반환형, 함수의 이름, 매개 변수--- 함수 헤더라고 한다. 2. 1개

3. void 4. 함수 원형은 컴파일러에게 정보를 주기 위하여 함수 헤더만을 표시한다. 함수 정의에는 반드시 함수 몸체가 있어야 한다. 5. 프로그램의 가독성을 높이기 위하여 6. 함수 pow()는 두 개의 double형 매개 변수를 가지며 반환형은 double형이다. p.320 1. sin(90.0* (3.141592/180.0)); 2. 0에서 9 CHAPTER 9 중간점검문제 p.344 1. 변수가 선언되는 위치 2. 크게 나누어서 지역 변수와 전역 변수가 있다. 3. 전역 변수 4. 지역 변수 5. 없다. 6. 가능하다. 7. 지역 변수는 자동으로 소멸된다. 8. 알 수 없다. 쓰레기값이 들어 있다. 9. 그렇다. 10. 전역 변수는 함수의 외부에 정의될 수 있다. 11. 전역 변수는 프로그램이 실행되는 동안 계속하여서 유지된다. 초기값은 0이다. 12. 지역 변수가 우선시된다. p.348 1. auto, static, extern. resiter 등이 있다. 2. static 3. register 4. extern

5. 함수(블록)가 종료되어도 소멸되지 않는 변수를 생성하라는 것을 의미한다. CHAPTER 10 중간점검 문제 p.383 1. 관리하기 쉽고 반복이 가능하다. 2. 0 3. n-1 4. 인덱스(첨자) 5. 다른 프로그램의 메모리를 건드릴 수 있다. 6. 사용할 수 없다. 상수만 가능하다. p.388 1. 배열을 선언하면서 초기화한다면 다음과 같다. int a[6] = { 1, 2, 3, 4, 5, 6 }; 만약 선언되어 있는 상태이면 다음과 같은 문장으로 초기화가 가능하다. int i; for(i=1;i<=6;i++) a[i] = i; 2. 초기값의 개수가 적으면 나머지 원소들은 0으로 초기화된다. 초기값의 개수가 많은 경우에는 컴파일 오류가 발생한다. 3.가능하다. 4. 비교할 수 없다. 5. 대입할 수 없다. p.400 1. 배열은 원본이 전달된다고 생각할 수 있다. 2. 앞에 const를 추가한다.

p.414 1. 3*2*10 개의 원소가 존재한다. 2. int a[3][2][10] = { 0 }; CHAPTER 11 중간점검문제 p.435 1. 바이트(byte) 2. (a) 1 (b) 2 (c) 4 (d) 4 (e) 4 (f) 8 3. 포인터도 변수의 일종이다. 따라서 저장하고 있는 값의 변경이 가능하다. 4. & 연산자 5. p = &x; 6. *p = 25; p.443 1. * 연산자, ++, --, +, - 연산자 2. 84 번지를 가리킨다. 3. *p++ : p가 가리키는 값을 사용한 후에 p를 증가 (*p)++ : p가 가리키는 값을 증가 4. *(p+3)은 p가 가리키는 위치로부터 3번째에 있는 객체 p.447 1. (1) A (2) &A[0] 2. 첫 번째 원소의 값 3. 대입할 수 없다. 배열의 이름은 포인터 상수라고 생각하면 된다. 즉 변경이 불가능하다. 4. 참조할 수 있다. 5. 사용할 수 있다. p[0], p[1],.. 등의 표현이 가능하다. p.457

1. 값에 의한 호출(call by value) 2. 참조에 의한 호출(call by reference) 3. 배열은 복사되지 않고 원본이 전달된다. CHAPTER 12 증간점검문제 p.478 1. 문자 배열로 표현된다. 2. 문자열의 끝을 표현한다. 3. 0 4. 시스템이 문자열의 끝을 알 수 없어서 이상한 글자들이 출력된다. 5. B는 변수의 이름으로 생각한다. B 는 하나의 문자이다. B 는 문자 B로만 이루어진 문 자열을 의미한다. 6. 메모리의 데이터 세그먼트에 저장된다. 7. NULL 문자를 저장하기 위하여 8. (a) char s[6] = Hello ; (b) char s[6] = { H, e, l, l, o, \0 }; p.481 1. getchar()는 버퍼를 사용하므로 엔터키가 눌려져야만이 입력을 가져간다. 반면에 _getch()는 버퍼를 사용하지 않고 글자가 입력되는 대로 전달한다. 2. (1) getchar() 또는 getch() 사용 (2) scanf("%c", &ch); p.483 1. char line[100]; gets(line); 2. char word[100]; scanf("%s", word);

p.487 1. ctype.h 2. getchar()는 버퍼를 사용하므로 엔터키가 눌려져야만이 입력을 가져간다. 반면에 _getch()는 버퍼를 사용하지 않고 글자가 입력되는 대로 전달한다. 3. 16 4. 'A p.495 1. strcpy(s2, s1); 2. 크기가 7이상인 char 배열 필요 3. strcmp() 4. strncpy()에서는 복사하는 문자열의 크기를 제한할 수 있다. 5. strcat(s2, s2); 6. 0 p.498 1. 실수 3.141592가 차지하는 공간은 8바이트가 된다. (double형 상수) 반면에 3.141592 가 차지하는 공간은 9바이트가 된다. (NULL 문자 포함) 2. atof(), 또는 sscanf() 3. s가 붙으면 문자열에 출력한다. p.502 1. (1) char s[5][10] = { "C", "JAVA", "C++", "BASIC" }; (2) char* s2[] = { "C", "JAVA", "C++", "BASIC" }; 2. printf("%s\n", s[0]); CHAPTER 13 증간점검문제

p.517 1. 구조체는 서로 타입이 다른 변수들을 묶는 것이다. 배열은 타입이 같은 변수들을 묶는 것이다. 2. // x값과 y값으로 이루어지는 화면의 좌표 struct point { int x; // x 좌표 int y; // y 좌표 }; // 복소수 struct complex { double real; double imag; }; // 실수부 // 허수부 // 날짜 struct date { int month; int day; int year; }; // 사각형 struct rect { int x; int y; int width; int height; }; p.528 1. = 연산자 2. 구조체 태그는 구조체의 정의를 나타낸다. 따라서 구조체 태그에는 메모리 공간이 할당 되지 않는다. 반면에 구조체 변수에는 실제로 메모리 공간이 할당된다. 3. 가능하다. 4. 가능하다. p.531 1. struct product {

int number; char name[100]; int price; }; struct product parray[5]; p.541 1. 구조체는 복사본이 전달된다. 2. 매개 변수 선언시에 const를 붙인다. p.546 1. union 2. 가장 큰 멤버의 크기와 같다. p.549 1. enum 2. 어떤 변수가 정해진 값만을 갖는 경우에 선언한다. 3. 0부터 시작되는 정수값이 할당된다. p.553 1. 사용자가 새로운 타입을 선언할 수 있게 한다. 2. 이식성을 높이고 문서화의 역할도 하며 컴파일러가 점검할 수 있도록 한다. 3. // 직원 typedef struct { char name[20]; // 이름 int age; // 나이 int gender; // 성별 int salary; // 월급 } employee; CHAPTER 14

중간점검문제 p.569 1. double **dp; 2. **dp는 변수 c를 가리킨다. p.572 1. double *p[10]; 2. 2차원 배열에서는 사용하지 않는 공간이 낭비될 수 있다. 래그드 배열에서는 낭비되는 공간이 없다. p.581 1. int (*pf)(double); 2. pf(3.0); p.586 1. m[0]은 2차원 배열 m에서 0번째 행을 가리킨다. 2. (m+1)은 1번째 행을 가리킨다. p.588 1. void *vp; int *ip; ip = (int *)vp; p.592 1. main 2. 4 CHAPTER 15

중간점검문제 p.606 1. #define KEY 1234 2. #define INPUT scanf p.614 1. 함수 매크로가 함수 호출 오버헤드가 없어서 빠르게 실행된다. 2. #define CUBING(x) ((x)*(x)*(x)) p.618 1. #ifdef TEST printf("test\n"); #endif p.621 1. #if DEBUG==2 printf("debug\n"); #endif 2. #if (DEBUG==2) && (LEVEL == 3) printf("debug\n"); #endif p.631 1. 여러 소스 파일로 만드는 편이 소스를 유지, 보수, 관리하기가 편리하다. 2. // factorial.h #ifndef FACTORIAL_H #define FACTORIAL_H int factorial(int x);

#endif // factorial.c #include "factorial.h" int factorial(int x) { int result = 1; int i; for(i = x;i >= 1; i--) result *= i; return result; } 3. // point.h #ifndef POINT_H #define POINT_H struct point { int x; int y; }; #endif p.633 1. 비트 필드 구조체 2. unsigned 형이나 unsigned int형 CHAPTER 16

중간점검문제 p.646 1. 스트림 2. 바이트 3. 장치 독립성 4. stdin, 키보드 5. stdout, 콘솔 화면 p.650 1. 형식 제어 문자열 2. 오른쪽 3. %d, %i 4. %o, %d, %x 5. %e 6. 6 7. 10.6 8. - 9. 6 p.655 1. %lf 2. 공백 문자 p.662 1. 바이트 2. 텍스트, 이진 3. fopen() 4. FILE p.669 1. int 2. fgets() 3. fprintf() 4. fscanf()

p.677 1. 이진 2. fopen() 3. "rb" p.681 1. 순차접근 2. 임의접근 3. 파일 위치 표시자 4. ftell() CHAPTER 17 중간점검 문제 p.699 1. 동적 메모리 할당 2. malloc() 3. free() 4. stdlib.h p.704 1. calloc() 2. realloc() 3. 바이트 4. void * p.715 1. 포인터 2. 데이터, 링크 3. 자기 참조 구조체 4.

배열(array): 크기가 고정되어 있다. 연결 리스트(linked list): 동적으로 크기를 늘릴 수 있다. 감사합니다. END