목차
PART 1 기초
CHAPTER 01 컴퓨터 프로그래밍에 대한 소개 = 3
1.1 역사와 하드웨어 = 3
컴퓨터 하드웨어 = 5
비트와 바이트 = 6
구성요소 = 7
1.2 프로그래밍 언어 = 12
기계어 = 13
어셈블리 언어 = 13
저급 언어와 고급 언어 = 14
절차적 언어와 객체지향 언어 = 15
응용 소프트웨어와 시스템 소프트웨어 = 16
C의 개발 = 17
1.3 알고리즘 = 18
1.4 소프트웨어 개발 단계 = 23
1단계: 프로그램 요구사항 명세 = 24
2단계: 설계 및 개발 = 25
3단계: 문서화 = 29
4단계: 유지 관리 = 30
1.5 사례 학습: 설계와 개발 = 32
1단계: 문제 분석 = 33
2단계: 전반적인 해결 알고리즘 선택 = 34
3단계: 프로그램 작성 = 34
4단계: 프로그램 시험과 수정 = 35
1.6 일반적인 프로그래밍 오류 = 36
1.7 요약 = 37
1.8 보충: 수학적인 저장 코드 = 38
CHAPTER 02 C 프로그래밍 시작하기 = 41
2.1 C 프로그래밍 개요 = 41
식별자 = 43
main() 함수 = 46
printf() 함수 = 47
2.2 프로그래밍 형태 = 53
들여쓰기 = 53
주석 = 54
2.3 데이터형 = 57
정수 데이터형 = 59
부동 소수점 데이터형 = 62
지수 표현 = 63
2.4 산술 연산 = 64
수치 결과 출력 = 65
표현 형식 = 68
정수 나눗셈 = 68
부정 = 69
연산자 우선순위 및 결합성 = 69
2.5 변수와 선언 = 74
선언문 = 76
초기화 = 82
2.6 사례 학습: 온도 변환 = 85
1단계: 문제 분석 = 86
2단계: 문제 해결을 위한 알고리즘 선택 = 86
3단계: 프로그램 작성 = 86
4단계: 시험 및 디버그 = 88
2.7 일반 프로그래밍 및 컴파일러 오류 = 90
프로그래밍 오류 = 90
컴파일러 오류 = 92
2.8 요약 = 93
2.9 보충: 메모리 할당 = 94
정수 데이터형 = 94
sizeof() 연산자 = 97
주소 = 98
CHAPTER 03 계산 및 대화식 입력 = 103
3.1 치환 = 103
암시적형 변환 = 106
명시적형 변환 = 107
치환 변형 = 107
누적 = 108
계산 = 110
3.2 수학 내장 함수 = 114
3.3 대화식 입력 = 119
주의: 유령 개행 문자 = 123
사용자 입력 확인에 대한 첫 번째 고찰 = 125
3.4 형식 출력 = 131
형식 변경자 = 134
다른 진수 = 135
3.5 기호 상수 = 140
3.6 사례 학습: 대화식 입력 = 144
요구사항 명세 = 144
3.7 일반 프로그래밍 및 컴파일러 오류 = 150
프로그래밍 오류 = 150
컴파일러 오류 = 151
3.8 요약 = 152
3.9 보충: 추상화의 소개 = 153
고유의 데이터 형식과 추상 데이터 형식 = 154
절차상 추상화 = 154
PART 2 Flow of Control
CHAPTER 04 선택문 = 159
4.1 관계식 = 160
논리 연산자 = 162
4.2 if 문과 if-else 문 = 166
복합문 = 168
if-else 문 = 169
4.3 if-else 체인 = 178
4.4 Switch 문 = 186
4.5 사례 학습: 데이터 검증 = 194
요구 명세 = 194
문제 분석 = 194
알고리즘 선택 = 194
프로그램 작성 = 194
프로그램의 테스트와 디버그 = 195
4.6 일반 프로그래밍 및 컴파일러 오류 = 198
프로그래밍 오류들 = 198
컴파일러 오류들 = 200
4.7 요약 = 201
4.8 보충: 오류, 시험, 디버깅 = 203
시험 그리고 디버깅 = 206
CHAPTER 05 반복문 = 209
5.1 기본 반복 구조 = 210
선-검사 루프와 후-검사 루프 = 210
카운트 제어 루프와 조건 제어 루프 = 210
5.2 while 문 = 213
5.3 while 문을 이용한 합과 평균의 계산 = 221
센티널 = 228
break 문과 continue 문 = 231
널 문장 = 232
5.4 for 문 = 235
for 루프를 이용한 합과 평균의 계산 = 242
5.5 사례 학습: 반복문 프로그래밍 기법 = 245
기법 1. 반복문 안의 선택 = 245
기법 2. 입력 데이터 검증 = 246
기법 3. 대화식 반복문 제어 = 249
기법 4. 수식의 값 구하기 = 250
5.6 중첩 반복문 = 254
5.7 do-while 문 = 257
5.8 일반 프로그래밍 및 컴파일러 오류 = 262
프로그래밍 오류 = 262
컴파일러 오류 = 263
5.9 요약 = 264
CHAPTER 06 함수를 이용한 모듈화 Ⅰ = 267
6.1 함수와 인자의 정의 = 268
함수 원형 = 270
함수 호출 = 271
함수의 머리 부분 = 272
문장의 위치 = 279
6.2 값의 반환 = 282
스티브 함수 = 288
인자가 없는 함수들 = 289
6.3 사례 학습: 나이 표준 계산 = 293
요구사항 명세 = 293
6.4 표준 라이브러리 함수 = 304
수학 라이브러리 함수 = 304
rand() 함수와 srand() 함수 = 305
스케일링 = 307
동전 던지기 시뮬레이션 = 307
입/출력 라이브러리 함수 = 311
문자 처리 함수 = 311
변환 함수 = 313
6.5 일반 프로그래밍 및 컴파일러 오류 = 318
프로그래밍 오류 = 318
컴파일러 오류 = 318
6.6 요약 = 319
CHAPTER 07 함수를 이용한 모듈화 Ⅱ = 321
7.1 변수 유효 범위 = 323
전역 선언의 사용 = 326
전역 변수의 잘못된 사용 = 327
7.2 변수 기억 장소 부류 = 329
지역 변수 기억 장소 부류 = 330
전역 변수 기억 장소 부류 = 333
7.3 참조에 의한 전달 = 337
함수로의 주소 전달 = 338
주소의 저장 = 339
주소의 사용 = 339
포인터의 선언과 사용 = 340
함수에서의 주소 전달 = 343
7.4 사례 학습: 값 교환 = 351
요구사항 명세 = 351
문제 분석 = 351
함수 작성 = 353
프로그램의 테스트와 디버깅 = 356
7.5 재귀 = 358
수학적인 재귀 = 359
재귀 vs. 반복 = 362
7.6 일반 프로그래밍 및 컴파일러 오류 = 364
프로그래밍 오류 = 364
컴파일러 오류 = 365
7.7 요약 = 365
PART 3 Completing the Basics
CHAPTER 08 배열 = 369
8.1 일차원 배열 = 370
배열 값들의 입력과 출력 = 374
8.2 배열 초기화 = 380
8.3 배열의 전달 = 384
8.4 사례 학습: 평균과 표준편차의 계산 = 390
요구사항 명세 = 390
문제 분석 = 390
해법 알고리즘의 선택 = 391
함수의 작성 = 391
실행 및 오류 교정 = 392
8.5 이차원 배열 = 395
배열 원소 위치 계산 알고리즘 = 402
다차원 배열 = 403
8.6 일반 프로그래밍 및 컴파일러 오류 = 405
프로그래밍 오류 = 405
컴파일러 오류 = 406
8.7 요약 = 406
8.8 보충: 탐색과 정렬 = 408
검색 알고리즘 = 408
Big O 표기법 = 415
정렬 알고리즘 = 416
CHAPTER 09 문자열 = 433
9.1 문자열의 기초 = 433
문자열의 입력과 출력 = 434
문자열의 처리 = 436
9.2 라이브러리 함수들 = 445
문자 루틴들 = 449
변환 루틴들 = 451
9.3 입력 데이터의 검증 = 453
개인 라이브러리 생성 = 458
9.4 문자열 형식화 = 460
메모리 안에서의 문자열 변환 = 461
형식 문자열 = 462
9.5 사례 학습: 문자와 단어 카운팅 = 464
프로그램 요구사항 : 문자 카운팅 = 464
문제 분석 = 464
함수의 코딩 = 465
함수의 수정과 테스트 = 465
요구사항 분석: 단어 개수 = 466
문제의 분석 = 467
함수를 위한 코드 = 467
함수의 교정과 테스트 = 468
9.6 일반 프로그래밍 및 컴파일러 오류 = 470
프로그래밍 오류 = 470
컴파일러 오류 = 470
9.7 요약 = 471
CHAPTER 10 파일처리 = 473
10.1 파일의 선언, 열기와 닫기 = 474
파일 = 474
파일 스트림 = 475
파일 스트림 선언 = 475
파일 열기 = 477
임베디드/대화식 파일 이름 = 482
파일 닫기 = 484
10.2 문장 파일의 읽기와 쓰기 = 486
문장 파일로부터 읽기 = 488
표준 장치 파일 = 491
다른 장치들 = 493
10.3 랜덤 파일 접근 = 496
10.4 파일명 전달과 반환 = 499
10.5 사례 학습: 상수표를 생성하고 사용하기 = 503
요구사항 = 503
첫 번째 함수를 위한 분석 = 504
함수의 코딩 작업 = 506
함수의 시험과 디버그 = 507
두 번째 함수를 위한 분석 = 509
함수 코드 = 509
함수 시험과 디버그 = 510
10.6 이진 파일 읽기와 쓰기 = 513
10.7 일반 프로그래밍 및 컴파일러 오류 = 518
프로그래밍 오류 = 519
컴파일러 오류 = 520
10.8 요약 = 520
10.9 보충: 제어 코드 = 522
PART 4 Additional Topics
CHAPTER 11 배열, 주소, 포인터 = 527
11.1 포인터로서의 배열명 = 527
11.2 포인터 연산 = 534
포인터 연산 = 534
포인터 초기화 = 538
11.3 배열의 주소 전달과 사용 = 540
개선된 포인터 표시법 = 543
11.4 포인터를 이용한 문자열의 처리 = 547
11.5 포인터를 이용한 문자열의 생성 = 551
포인터 배열 = 554
11.6 일반 프로그래밍 및 컴파일러 오류 = 558
프로그래밍 오류 = 558
컴파일러 오류 = 562
11.7 요약 = 562
CHAPTER 12 구조체 = 561
12.1 단일 구조체 = 562
12.2 구조체 배열 = 568
12.3 구조체 전달 및 반환 = 573
구조체 반환 = 578
12.4 공용체 = 581
12.5 일반 프로그래밍 및 컴파일러 오류 = 584
프로그래밍 오류 = 584
컴파일러 오류 = 584
12.6 요약 = 585
CHAPTER 13 동적 자료 구조체 = 587
13.1 연결 리스트의 소개 = 588
13.2 동적 메모리 할당 = 596
13.3 스택 = 602
스택 구현 = 603
푸시와 팝 = 603
13.4 큐 = 609
엔큐(Enque)와 서브(Serve) = 610
13.5 동적 연결 리스트 = 616
삽입과 삭제 = 616
13.6 일반 프로그래밍 및 컴파일러 오류 = 623
프로그래밍 오류 = 623
컴파일러 오류 = 624
13.7 요약 = 625
CHAPTER 14 부가 특성 = 627
14.1 부가 기능 = 627
typedef 선언문 = 628
조건 전처리 지시자 = 629
열거된 상수 = 630
조건 수식 = 630
goto 문 = 632
14.2 비트별 연산자 = 633
AND 연산자 = 634
포함 OR 연산자 = 635
배타 OR 연산자 = 636
보수 연산자 = 637
서로 다른 크기의 자료 항목 = 637
이동 연산자 = 638
14.3 매크로 = 641
14.4 명령 행 인자 = 644
14.5 일반 프로그래밍 및 컴파일러 오류 = 649
프로그래밍 오류 = 649
컴파일러 오류 = 649
14.6 요약 = 650
CHAPTER 15 C++의 소개 = 653
15.1 C++에서의 절차적 프로그래밍 = 654
15.2 객체지향 C++ = 659
15.3 일반 프로그래밍 및 컴파일러 오류 = 664
프로그래밍 오류 = 664
컴파일러 오류 = 664
15.4 요약 = 666
APPENDIX A : 연산자 우선순위 표 = 669
APPENDIX B : ASCII 문자표 = 671
APPENDIX C : 표준 C 라이브러리 = 675
APPENDIX D : 입력, 출력 및 표준 오류출력 = 681
APPENDIX E : 부동소수점수 = 683
APPENDIX F : 개인 라이브러리 생성 = 687
APPENDIX G : 단답형 문제의 해답 = 689
찾아보기 = 739