목차
서문 : 프로그래머: 예술인이자 공학도!
1. 아트(Art)인가 기술인가? = 24
1.1. 컴퓨터 공학인이 해야 할 것이 무엇인가? = 24
1.2. 정말 프로그래밍이 고된 노동인가? = 25
1.3. 하는 일이 즐거우면 아트(Art)를 느낍니다 = 26
2. 프로그래밍과 대학의 컴퓨터 공학 = 26
2.1. 대학 교육과 연계되지 않은 프로그래밍 학문 = 27
2.2. 대학에서 배운 학문이 프로그래밍과 전혀 연계가 없다! = 27
2.3. 이론이 결합 되지 못하면 벽을 만납니다 = 28
3. 컴퓨터 공학과 연계된 프로그래밍 교재 = 29
3.1. C언어는 초급 자료구조와 연계 되어야 합니다 = 29
3.2. 필수를 익혀서 다양한 응용으로 = 30
4. 본 책의 구성 = 31
4.1. 전체 장의 내용들 = 31
4.2. 초식이란 무엇인가? = 34
4.3. 예제와 강의는 온라인으로 = 34
Chapter 1 컴퓨터 구조와 운영체제
1. 프로그래밍이란 = 36
1.1. 프로그래밍은 단순 명령어 조합이 아니다 = 36
1.2. 프로그래밍을 하기 위해서 기본 지식이 필요하다 = 37
2. 컴퓨터 구조의 전체 보기 = 38
2.1. 연산기 구조의 이해 = 39
2.2. 중앙처리장치(CPU) = 47
2.3. 메모리 = 51
2.4. 주변 장치 = 58
2.5. 전체 시나리오 = 62
3. 운영체제 = 63
3.1. 로딩 첫번째 - 롬바이오스의 구동 = 63
3.2. 로딩 두 번째 - 부팅시스템 = 66
3.3. 커널 모드 = 67
3.4. 프로텍트 프로그래밍 구조 = 71
4. 연습문제 = 73
Chapter 2 어셈블 언어
1. CPU 레지스터 = 76
1.1. 어셈블 언어의 개요 = 76
1.2. CPU의 레지스터들 = 78
2. 어셈블 프로그래밍 = 88
2.1. 어셈블 기본 프로그래밍 = 88
2.2. 어셈블 어의 명령어 = 93
3. 연습문제 = 104
Chapter 3 C언어 구조와 데이터 형
1. C 언어 기본 골격 = 106
1.1. Hellow 프로그램 만들기 = 106
1.2. C언어의 전체 골격 = 107
1.3. 데이터 출력 함수 = 109
1.4. 데이터 입력 함수 = 113
1.5. C 언어 함수 구조 = 114
2. 상수 형 데이터 = 118
2.1. 문자와 숫자 = 119
3. 변수 형 데이터 = 123
3.1. 문자형 = 123
3.2. 정수형 = 132
3.3. 실수형 = 139
4. 데이터 형과 관련 있는 항목 = 146
4.1. 기타 데이터 형 = 146
4.2. 데이터 형과 연관된 함수 및 선언 = 148
5. 연습문제 = 154
Chapter 4 연산자
1. 산술 연산자 = 158
1.1. 산술 연산자 종류 = 158
1.2. 산술 연산자의 개념 = 159
1.3. 정수 연산 = 160
1.4. 실수 연산 = 166
1.5. 가로 연산자와 복합 형 연산 = 168
2. 관계 연산 = 171
2.1. 관계 연산의 종류 = 172
2.2. 정수 형 관계 연산 = 173
2.3. 실수 형 관계 연산 = 174
2.4. 복합 형 관계 연산 = 175
3. 논리연산 = 179
3.1. 논리 연산자의 개념 = 180
3.2. 괄호를 이용한 논리 연산 = 181
3.3. 실수 형 논리 연산 = 183
4. 증감연산, 복합대입연산, 조건연산 = 184
4.1. 증감 연산자와 복합 대입 연산자의 개념 = 184
4.2. 조건 연산자 = 186
5. 비트연산 = 188
5.1. 비트 연산의 개념 = 189
5.2. 비트 연산의 특징 = 191
6. 연산순서 = 196
6.1. 연산 순위에 의한 오류 = 196
7. 연습문제 = 198
Chapter 5 흐름제어
1. 순서도와 흐름 제어 구조 = 200
1.1. 흐름제어 구조의 종류 = 200
1.2. 프로그래밍 설계의 필요성 = 201
1.3. 순서도 = 203
1.4. 흐름제어문 = 204
2. 순서도 = 204
2.1. 순차 구조 = 205
2.2. 분기구조 = 206
2.3. 다중분기 = 206
2.4. 반복 = 207
2.5. 건너뜀 구조 = 208
3. 분기 = 210
3.1. if 문 - 이원 분기 = 210
3.2. switch문(다중분기) = 222
4. 반복문 = 227
4.1. while 문 = 227
4.2. do-while 문 = 230
4.3. for문 = 232
4.4. 흐름제어 복합 예제 = 237
5. 탈출, 점프, 프로그램 최적화 = 239
5.1. break 문과 continue = 239
5.2. goto 문 = 241
5.3. 프로그래밍 구조의 최적화 = 243
6. 연습문제 = 245
Chapter 6 배열
1. 배열의 형식 = 248
1.1. 배열의 정의 = 248
1.2. 배열의 표현 = 249
2. 문자형 배열 = 250
2.1. 문자형 배열의 출력 = 251
2.2. 문자형 배열 초기화 = 252
2.3. 문자열 함수를 이용하기 = 255
2.4. 문자열 입력 = 259
3. 정수 형 배열 = 264
3.1. int 형의 정수 배열 = 265
3.2. short와 long = 269
4. 실수 형 배열 = 273
4.1. float 배열 = 273
4.2. double 의 배열 = 275
4.3. enum = 276
5. 배열 알고리듬 = 278
5.1. 선택정열(Select Sort) = 278
5.2. 퀵 정렬(Quick Sort) = 280
6. 다차원 배열 = 286
6.1. 2차원 배열 = 286
6.2. 다차원 배열 = 290
7. 연습 문제 = 293
Chapter 7 포인터
1. 메모리와 번지 = 296
2. 포인터 형 = 298
2.1. char 포인터 = 299
2.2. int 포인터 = 303
2.3. float 포인터 = 306
2.4. 사칙연산 = 308
2.5. 상수포인터와 포인터를 이용한 문자배열 = 309
2.6. 1차원 포인터를 이용한 2차원 데이터 처리 = 310
3. 동적 메모리 할당 = 313
3.1. 동적 메모리 할당 함수 사용 법 = 313
3.2. 동적 메모리 할당 초식 들 = 317
4. 연습 문제 = 324
Chapter 8 포인터의 포인터
1. 포인터의 배열 = 328
1.1. 다중 메모리 주소 사용에 필요한 포인터 배열 = 328
1.2. 상수 포인터 배열 = 333
1.3. 다차원 포인터 배열 = 336
2. 포인터의 포인터 = 338
2.1. 포인터의 포인터 사용 기본 초식 = 338
2.2. 2개의 포인터의 포인터를 사용하여 처리 = 343
2.3. 포인터 차원 내리기를 이용한 방법 = 347
3. float**, double**, int** = 353
3.1. 실수형 포인터의 포인터 = 353
3.2. 정수형 포인터의 포인터 = 360
4. 연습문제 = 363
Chapter 9 함수
1. C언어 함수 = 366
1.1. 함수의 정의 = 366
1.2. call by value = 371
1.3. call by reference = 373
2. 함수의 재귀화 = 376
2.1. 되부르기(Recursion) = 376
2.2. Quick Sort 알고리즘 = 379
3. 함수 선언과 헤더 = 385
3.1. 함수 선언 = 385
3.2. 파일 분리와 헤더파일 = 386
4. 함수 포인터 = 393
4.1. 함수 포인터의 선언 = 393
4.2. 함수포인터의 배열 = 396
4.3. 함수 포인터의 포인터 = 398
5. 라이브러리 만들기 = 401
5.1. 라이브러리 연결 = 402
5.2. 라이브러리 함수에 동적 함수 설정 = 403
6. 연습문제 = 406
Chapter 10 기억 클래스와 선행 처리기
1. 변수와 기억 클래스 = 408
1.1. 자동변수 = 408
1.2. 전역변수(extern 변수) = 411
1.3. 정적변수(static 변수) = 414
2. 선행처리기(Preporcessor) = 416
2.1. 매크로 정의 #define = 417
2.2. 조건부 컴파일 #if, #else, #elif, #endif = 419
2.3. 매크로 정의확인 #if defined, #if !defined, #ifdef, #ifndef = 421
2.4. #programa = 422
2.5. 시스템에 정의된 매크로 = 423
3. 연습문제 = 424
Chapter 11 구조체와 공용체
1. 구조체 = 426
1.1. 구조체의 사용법 = 426
1.2. 구조체 선언 방법 = 429
2. 구조체의 배열과 포인터 = 436
2.1. 포인터로 배열 가리키기 = 436
2.2. 구조체의 동적 메모리 할당 = 438
3. 링크드리스트(Linked List) = 446
3.1. 링크드리스트의 개념 = 447
3.2. 링크드리스트를 이용한 학생관리 프로그램 = 453
3.3. 구조체의 비트필드 = 465
4. 공용체 = 468
5. 연습문제 = 470
Chapter 12 C언어 표준 함수
1. 문자열 처리 함수 = 474
1.1. 문자 비교 함수 = 474
1.2. 문자변환 함수 = 479
2. 시간 처리 함수 = 482
2.1. 프로세스 시간 처리 = 482
2.2. 날짜와 시간 구하기 함수 = 485
3. 파일 입출력 함수 = 492
3.1. 텍스트 파일 읽고 쓰기 = 493
3.2. 이진 파일 읽고 쓰기 = 499
4. 수학 함수와 스레드 = 508
4.1. 수학 함수 = 508
4.2. 스레드 = 512
5. 연습문제 = 519
Chapter 13 데이터베이스 만들기
1. 데이터베이스 개념 = 522
1.1. 데이터베이스의 계층적 구조 = 522
1.2. ISAM(Indexed sequential access method) = 523
1.3. ISAM과 트리 = 526
1.4. 색인파일과 데이터베이스 파일 구조 = 528
2. 자동 정렬 방식의 데이터베이스 = 529
2.1. 헤더 정보 = 530
2.2. 테이블 만들기 = 533
2.3. 테이블 파일에서 정보 읽기 = 539
2.4. 데이터 추가하기 = 548
2.5. 검색 쿼리 = 555
2.6. 기타 함수들 = 561
3. 응용 프로그램 만들기 = 567
4. 연습문제 = 575
Chapter 14 네트워크 프로그래밍
1. 네트워크 기본 = 578
1.1. 네트워크 프로그래밍 기본 순서 = 578
1.2. 1대1 채팅 예제 = 584
2. 실전 네트워크 프로그래밍 = 589
2.1. 메인함수와 Accept = 590
2.2. 데이터받기 스레드 = 594
2.3. 클라이언트 프로그램 = 602
3. DBMS 엔진 만들기 = 609
3.1. 트랜잭션의 처리 = 609
3.2. 전체 소스 = 616
3.3. 클라이언트 소스 = 657
4. 연습문제 = 678
부록 컴파일러 상요법
1. 컴파일러 개념 = 680
1.1. 컴파일러 기능 = 680
2. 컴파일러 사용법 = 686
2.1. Hellow 프로그램 만들기 = 686
2.2. Visual C++ 6.0 = 687
2.3. Turbo C = 700
2.4. gcc = 705
2.5. Visual C++.net = 705
초식들
[초급 초식 1장] - 1 비트 값 알기 = 192
[초급 초식 2장] - 2의 승 계산 = 195
[초급 초식 3장] 구구단 프로그램 = 237
[초급 초식 4장] strcpy 함수를 이용한 문자열 설정 = 257
[초급 초식 5장] sprintf 함수를 이용한 문자열 설정 = 258
[초급 초식 6장] gets 함수를 이용한 문자열 입력 = 261
[초급 초식 7장] gets 함수를 이용하여 정수와 문자열 받기 = 262
[초급 초식 8장] getch를 이용하여 문자열 받기 = 263
[초급 초식 9장] 총점과 평균 구하기 = 268
[초급 초식 10장] 선택 정열 = 279