스크랩

구간

C 기초핵심원리

박진수 저 | 생능출판사 | 2010년 11월

북트리

정가
$44.00
판매가
$35.64 (19%↓) 최저가 보상
적립금
$0.71 (2%P)

품절된 상품입니다.

이 책을 꼭 원하시는 고객님께서는 아래 "상품문의"를 클릭 후 구매의사를
알려주세요. 책이 확보 될 경우 연락 드리겠습니다.

북카트 바로구매 위시리스트

평점 -  ·  리뷰 0

리뷰 쓰기

ISBN : 9788970506241 / 675쪽 188 x 257 (㎜)

이 상품에 궁금하신점이 있으세요? 1:1상담문의

추천inside
Adobe Flash Player 가져오기

이 분야의 베스트셀러

아래의 도서와 구매하시면 이 도서들의 적립금을 즉시적용해 드립니다.

책 소개

출판사 리뷰

이 책을 보는 방법

초보 프로그래머였던 시절을 떠올려 봅니다. 어디부터 시작해야 할지, 어떻게 공부해야 할지 막막하던 시절이었습니다. 프로그램 작성하는 법을 익히기 위해 다른 사람이 만든 프로그램을 출력해서 수십 번 반복해서 보고, 플로차트를 수십 번 그려보던 시절이 생각납니다. 그때에 C 프로그램의 문법과 사용 예를 체계적으로 가르쳐주는 책이 있었다면 좋았을 것이라는 생각을 합니다.

그래서 이 책을 저술하였습니다. 초보였던 시절의 기억을 떠올리면서, 초보 프로그래머에게 알맞은 방식으로 책의 내용을 구성해야 한다고 생각했습니다. 그래서 다른 책들처럼 처음부터 프로그램 작성법을 설명하는 방식을 버렸습니다. 기초를 충분히 다질 수 있도록 쉬운 것부터 단계적으로 설명해 나가는 방식을 택하기로 하였습니다. 즉, 충분한 선행 학습이 이루어질 수 있도록 하기로 한 것입니다.

그래서 이 책에서는 프로그래머의 위치를 확인하는 일부터 벌입니다. 첫째 마당에서는 프로그램이 무엇이고, 프로그래머가 하는 일은 무엇이고, 왜 C 언어를 배워야 하는지를 알려 줍니다. 사실 이 책의 설명으로도 부족하기는 하지만 일단은 첫째 마당에서 설명한 내용을 발판으로 삼기를 바랍니다.

그 다음으로 둘째 마당에서는 C 언어의 전반적인 사항을 비유를 들어가며 설명합니다. 둘째 마당은 넷째 마당부터 일곱째 마당까지에서 다루는 내용을 간단하고 알기 쉽게 압축해 놓은 것이라고 보면 됩니다. 초보 프로그래머라면 둘째 마당이 나머지 장에 대한 ??선행 학습?? 과정이 될 수 있습니다. 어느 정도 C 언어에 익숙한 사람이라면 둘째 마당을 건너뛰어도 됩니다.

소스 프로그램을 작성한다고 하여도 그것을 실제로 실행되는 프로그램으로 변환하지 않으면 무슨 소용이 있겠습니까? 그래서 셋째 마당에서는 소스 프로그램을 컴파일을 하여 실행 가능한 프로그램으로 변환하는 방법에 대해서 설명합니다. 둘째 마당에서 C 언어의 개요를 익혔기 때문에 셋째 마당에서 실제 실행 가능한 프로그램을 만드는 것이 어렵지 않고 재미있을 것입니다.

사실 첫째 마당부터 셋째 마당까지는 C 언어 학습을 위한 예비 훈련 과정이라고 볼 수 있습니다. 그런 이유로 분량도 그다지 많지 않습니다. 마당으로 따지면 세 개나 되지만, 이 세 마당의 분량은 전체의 사분의 일 수준입니다. 사실 넷째 마당부터 일곱째 마당까지가 본격적인 훈련 과정이라고 할 수 있습니다.

넷째 마당부터 일곱째 마당까지는 C 언어를 사용하여 프로그램을 작성하는 프로그래머가 필수적으로 알아야 할 내용들을 쉬운 것부터 차례로 다루어 두었습니다. 그리고 각 장의 설명이 끝나면 많은 예제와 그것에 대한 해설을 제시하여 실제적인 학습이 이루어지도록 배려하였습니다.

이 책을 100% 넘게 학습하는 요령


처음에는 책을 통째로 읽으십시오. 통독하라는 말입니다. 이렇게 통째로 읽기를 서너 차례 하십시오. 이때에는 빠른 속도로, 소설 책 읽듯이 읽어도 좋습니다. 즉, 정독하지 않아도 된다는 말입니다. 이해되지 않는 부분이 있다면 이해하려고 애쓰지 말고 그냥 넘어가십시오. 그리고 다시 읽어보십시오.

그리고 그 다음부터는

??절대로?? 눈으로 읽지 마십시오. 소스 코드 하나하나를 완전히 체득할 때까지 종이에 옮겨 적어 보십시오. 만약 플로차트를 그릴 수만 있다면 예제로 제시한 모든 프로그램의 플로차트를 그려보십시오. 그리고 소스 코드 하나하나를 컴퓨터에 입력하여 컴파일을 하고 실행해 보십시오. 실행한 다음에 다시 소스 코드를 분석해 보십시오. 예제 소스 코드와 유사한 소스 코드를 만들어 보십시오.

또한 반드시 각 장의 연습 문제들을 직접 풀어 보십시오. 남에게 도움을 받을 생각을 해서도 안 됩니다. 아무리 해도 프로그램이 작성되지 않는다면 차라리 머릿속에 묵혀 두고 잊어버리십시오. 이럴 때는 풀 수 있는 문제만 푸십시오. 그러다가 어느 날 문득 자신이 그렇게 어렵다고 여기던 문제를 풀 수 있다는 것을 알게 되는 날이 옵니다. 실력이 전혀 늘지 않는다고 느껴질 때에도 문제를 풀어 나간다면 실력이 뚝 뛰어 오르는 날이 옵니다. 이럴 때 풀리지 않던 문제들을 다시 풀어보면 신기하게 잘 풀릴 것입니다.

이런 요령은 제가 경험한 것이기도 하지만 대부분의 프로그래머들이 추천하는 방법입니다. 프로그래머들은 경험적으로 이런 요령을 체득하지만 이런 요령을 학문적으로 풀이하는 사람도 있습니다. 즉, 이것은 제가 헛된 상상으로 주장하는 바가 아니라 프로그래머들이 스스로 모르모트가 되어 입증한 일반 이론이라는 것입니다.
여기서 알려준 대로 따라하면 독자는 이 책을 산 것에 대해서 후회하지 않을 것입니다. 하지만 그대로 따라하지 않은 독자는 반드시 다음과 같은 말을 내뱉게 될 것입니다.

??괜히 샀다!??
??나는 아무리 공부해도 안 돼!??
??내게는 너무 어려워!??

모든 실패한 프로그래머들이 공통적으로 내뱉는 말입니다. 성공한 프로그래머가 되려면, 반드시 연습하고 연습해야 합니다. 하나의 소스 코드를 백 번은 분석할 다짐을 하며 공부하기 바랍니다.

저자 소개

  • 저자 : 박진수
저자 : 박진수
  

목차

첫째마당

C 언어 프로그래밍 개요
01장 프로그래머와 프로그램 21
환영 22
프로그래머와 프로그램 25
프로그램에는 규칙이 있다 27
프로그래밍 언어 30
프로그래밍 언어는 인공적으로 만든 말 32
프로그래밍 언어의 세대 구분 33
프로그래머 38
시스템 42
시스템 분석가와 시스템 설계자 45
소프트웨어 공학과 문서 48
소스 프로그램과 목적 프로그램 50
컴파일러, 인터프리터, 링커 52
실행 프로그램의 종류와 구현 수단 56
어떤 언어를 사용할 것인가 59
예제와 연습문제 60

02장 C 언어를 배워야 하는 이유 63
C 언어를 배운다는 것 64
C 언어를 배워야 하는 이유 71
C 언어는 경제적이다 76
C 언어는 시스템 프로그래밍에 강하다 80
C 언어는 자료를 조작하기가 좋다 83
구조적인 프로그래밍이 가능하다 85
함수 단위로 쪼개서 만든다 89
C 언어가 가진 약점 92
C 언어의 개발 역사 95
예제와 연습 문제 97


둘째마당

C 언어 문법 통찰하기
03장 함수와 변수 그리고 주석 101
main( ) 함수 102
변수 106
변수는 사용하기 전에 선언한다 108
변수와 함수의 이름 짓기 114
관용적으로 사용하는 변수 이름 규칙 117
지금까지 배운 요령으로 프로그램 수정하기 120
가독성과 주석 122
예제와 연습 문제 127

04장 상수와 자료 그리고 연산 129
대입과 연산 130
상수 처리에 강한 선행 처리 지시자 133
상수의 개념 137
숫자 상수 139
문자, 문자열, 기호 상수 146
지금까지 배운 내용을 정리하자 149
printf( ) 함수를 통해 배우는 다양한 상수와 변수 처리 150


셋째마당

프로그램의 제작과 작성
05장 프로그램 제작 과정 159
프로그램 제작 과정 훑어 보기 160
소스 코드 작성에서 실행 파일 생성까지 174
예제와 연습 문제 197


넷째마당

정보의 처리
06장 연산 201
연산 202
산술 연산자 : 계산의 천재 205
관계 연산자 : 너와 나, 그리고 우리 216
논리 연산자 : 이것이냐, 저것이냐 221
증감 연산자 : 하나씩 더하고 뺀다 228
비트 연산자 : 모래알도 계산한다 233
대입 연산자 : 이것은 네 것, 저것은 내 것 244
조건 연산자 : 결혼도 조건에 맞추어서 247
쉼표 연산자 : 우리 사이 좀 띄워 줘! 250
계량 연산자 : 키를 재자 253
유형 변환 연산자 : 순간적인 크기 변화 256
주소 연산자와 간접 연산자 258
예제와 연습문제 260
종합 실습 문제 296

07장 조건과 제어 297
조건과 제어 개념 잡기 298
if 문 : 만약 ……이라면 ……한다 305
switch-case 문 : 케이스별로 313
for 문 : ……인 동안만 320
while 문 : ……인가 확인부터 하고 ……을 한다 327
do-while 문 : ……부터 하고 ……인가 확인 332
분기문 : break, continue, goto 337
예제와 연습 문제 344
종합 실습 문제 365

다섯째마당

프로그램 추상화
08장 선행 처리 369
선행 처리의 개념 잡기 370
#include는 외부 파일을 원문에 추가해 준다 375
#define으로 복잡한 상수를 간단한 기호로 대치한다 379
선행 처리 지시자를 이용하면 조건에 따라 컴파일을 할 수 있다 385
예제와 연습 문제 389
종합 실습 문제 400

09장 함수 403
함수의 개념 잡기 404
함수를 만들어야 하는 이유 414
본격적으로 함수를 만들자 416
인수를 미리 정해 놓은 것이 원형이다 419
원형을 선언하면 함수를 쓸 수 있다 421
실제 함수는 main 아래에서 정의한다 424
함수의 인수는 잘 전달되어야 한다 429
예제와 연습 문제 435
종합 실습 문제 441
10장 라이브러리 443
라이브러리 개념 잡기 444
표준 라이브러리 450
표준 입출력 함수 : 라이브러리의 개념을 익힌다 457
예제와 연습 문제 472
종합 실습 문제 494

여섯째마당

자료의 저장과 조작
11장 변수 499
변수에는 사용 범위가 있다 500
변수의 사용 범위를 더 세분화한 것이 부류이다 504
레지스터 변수 508
자동 변수 512
정적 변수 515
외부 변수 520
예제와 연습 문제 523
종합 실습 문제 530
12장 배열 533
배열의 개념 534
C 언어에서 배열 만들기 538
C 언어에서 배열 지정하기 540
배열에 초기 값을 대입할 수 있다 543
예제와 연습 문제 547
종합 실습 문제 555
13장 포인터 557
포인터 개념 잡기 558
포인터 사용하기 560
포인터를 사용할 때의 이점 565
배열과 포인터 567
포인터 배열 570
예제와 연습 문제 571
종합 실습 문제 578

일곱째마당

사용자 정의 자료유형
14장 구조체 583
구조체 개념 잡기 584
구조형 사용하기 587
구조체 배열 592
중첩된 구조 597
구조 변수를 함수의 인수로 사용하기 600
구조 변수에 대한 포인터 601
비트 구조형 604
예제와 연습 문제 609
종합 실습 문제 619

15장 공용체 621
공용체의 개념 잡기 622
예제와 연습 문제 625
종합 실습 문제 627

16장 열거체 629
열거체의 이해 630
예제와 연습 문제 634
종합 실습 문제 637

17장 파일 639
파일 처리 개념 잡기 640
C 언어에서 파일을 처리하기 전에 알아둘 것 643
파일을 열고 닫자 645
파일 처리에 사용되는 함수들 649
예제와 연습 문제 650
종합 실습 문제 662

아스키(ASCII) 문자 코드표 664
찾아보기 669

예제 목차
06장 1 사칙 연산과 나머지 연산 260
2 연산자의 우선순위 261
3 관계 연산자의 사용 예 263
4 관계 연산자의 우선순위 264
5 논리 연산자의 사용 예 266
6 논리 연산자가 조건문에 사용된 예 267
7 증감 연산자의 사용 예 268
8 증감 연산자의 다양한 사용 예 270
9 비트 논리 부정(not) 271
10 비트 논리곱 (AND) 272
11 비트 배타적 논리합(XOR) 273
12 비트 논리합(OR) 275
13 비트 이동 연산자의 사용 예 276
14 대입 연산자의 사용 예 277
15 복합 대입 연산자의 사용 예 278
16 복합 대입 연산자의 또 다른 사용 예 279
17 조건 연산자의 사용 예 280
18 조건 연산자의 또 다른 사용 예 281
19 앞의 예제를 더 간단하게 변환한 프로그램 282
20 쉼표 연산자의 사용 예 283
21 여러 가지 기본 자료유형을 출력 285
22 float과 double의 정밀도 비교 286
23 계량 연산자의 사용 예 287
24 계량 연산자의 또 다른 사용 예 289
25 계량 연산자로 배열과 포인터의 크기 알아내기 290
26 변환 연산자의 사용 예 291
27 변환 연산자의 또 다른 예 292
28 주소 연산자의 사용 예 293
29 주소 연산자와 간접 연산자의 사용 예 294
07장 1 if 문의 사용 예 344
2 if-else 문의 사용 예 345
3 if-else if-else 문의 예 346
4 switch-case 문의 사용 예 348
5 간단한 for 문의 사용 예 349
6 for 문을 잘못 사용하여 반복 처리되지 않는 경우 351
7 for 문으로 10에서 1까지 출력 352
8 for 문으로 만든 무한 반복 루프 구조 353
9 중첩된 for 문으로 구구단을 출력 354
10 while 문으로 1에서 10까지 출력 355
11 while 문으로 만든 무한 루프 구조 356
12 while 문 안에서 break 문을 사용하는 예 357
13 간단한 do-while 문의 사용 예 358
14 break 문의 사용 예 359
15 continue 문의 사용 예 360
16 중첩된 for 문과 continue 문의 사용 예 361
17 goto 문의 사용 예 363
08장 1 #include의 사용 예 389
2 자신만의 헤더 파일을 만드는 법 390
3 #define의 사용 예 392
4 매개변수를 사용한 #define의 사용 예 394
5 매개 변수를 사용하는 또 다른 방법 396
6 매개 변수를 문자로 대신 사용한 #define의 사용 예 397
7 #undef로 기호 상수를 해제하는 예 398
09장 1 상향식 함수를 만들어 두 수를 더하는 예 435
2 하향식 함수를 만들어 두 수를 더하는 예 436
3 인수를 배열로 전달하는 예 438
4 문자열을 함수로 전달하는 예 439
10장 1 getchar( ) 함수를 사용하기 472
2 gets( ), puts( ) 함수의 사용 예 473
3 숫자 상수를 사용하는 프로그램 474
4 제어 문자열 \
을 사용하지 않는 경우 476
5 제어 문자열 \
을 사용하는 경우 476
6 제어 문자열을 10진 아스키코드로 출력하는 예 477
7 변환 문자열을 사용한 프로그램 478
8 오른쪽과 왼쪽으로 정렬하여 출력 479
9 변환 문자열 %c를 사용하기 480
10 변환 문자열 %s를 사용하는 프로그램 482
11 소수를 자릿수에 맞추어 출력 483
12 변환 문자열 %c를 사용하는 예 484
13 printf( ) 함수로 자릿수 지정하기 485
14 10진수를 8진수, 16진수로 출력하는 예 487
15 printf( ) 함수에서 지수형 자료를 출력하는 예 488
16 scanf( ) 함수로 정수를 받아들이는 예 489
17 scanf( ) 함수로 실수형 자료를 입력하는 예 491
18 scanf( ) 함수로 자료를 입력할 때 주의할 점 492
11장 1 지역 변수와 전역 변수의 차이점 523
2 전역 변수의 적용 범위 524
3 블록 내의 자동 변수의 사용 예 525
4 for 문 내의 자동 변수의 사용 예 526
5 for 문 내의 정적 변수의 사용 예 527
6 레지스터 변수의 사용 예 529
12장 1 배열을 사용할 때와 사용하지 않을 때의 차이점 547
2 배열에 값을 대입하는 예를 통해 첨자를 이해한다 548
3 배열의 초기화 549
4 실수나 지수 데이터를 배열에 저장하는 예 551
5 문자열 배열을 초기화하는 예 552
13장 1 포인터 변수의 증감 571
2 포인터 변수에 데이터를 저장시키는 방법 572
3 문자열을 포인터로 처리하는 예 573
4 2차원 배열을 포인터로 처리하여 출력 574
5 함수의 인수로 포인터 변수를 사용하는 예 575
14장 1 간단한 구조형 609
2 구조형 요소를 배열로 만드는 예 610
3 구조 변수가 여러 개인 경우 611
4 한 구조형의 내용을 다른 구조형에 복사하는 예 613
5 구조체 배열의 사용 예 614
6 구조형 포인터의 사용 예 616
15장 1 공용형 변수의 요소에 초기 값 배정하기 625
16장 1 간단한 열거형의 사용 예 634
2 나열한 이름에 정수값을 부여하는 예 635
17장 1 파일을 여는 간단한 예 650
2 두 개의 파일을 동시에 여는 예 651
3 텍스트 파일을 열어 문자를 읽는 예 652
4 알파벳 대문자를 파일에 저장하기 654
5 파일을 그대로 복사하는 프로그램 655
6 fgets( ) 함수를 이용해 문자열 단위로 읽는다 657
7 fputs( ) 함수로 문자열을 파일에 저장하기 658
8 fscanf( ), fprintf( )로 파일 구조를 읽고 쓰는 예 659

top