입문하는 학생들에게 추천하면 좋은 책
http://book.naver.com/bookdb/book_detail.nhn?bid=9071198
서장 C 프로그램을 배우기 전에
0.1 C를 빨리 배우는 사람
0.2 C 프로그래밍을 잘하려면?
0.3 목표 프로그램
0.4 이 책의 내용
Chapter01 첫걸음
1.1 프로그램이란 무엇인가?
1.1.1 프로그램이란?
1.1.2 컴퓨터의 프로그램
1.1.3 입력, 처리, 출력
1.1.4 0과 1, 그리고 컴퓨터 프로그래밍
1.2 2진수와 정보의 단위
1.2.1 컴퓨터의 기본은 비트
1.2.2 복수행의 2진수 사용법
1.2.3 1바이트는 8비트
1.2.4 자주 사용되는 16진수
1.3 프로그램과 소프트웨어, 하드웨어
1.3.1 하드웨어와 소프트웨어
1.3.2 컴퓨터의 소프트웨어는 2진수
1.3.3 고급언어와 저급언어
1.3.4 소프트웨어는 교체할 수 있다
1.4 C 프로그래밍을 배우기 전에 가져야 할 마음가짐
1.4.1 프로그래밍의 적성
1.4.2 무언가 일을 진행할 때 순서를 꼼꼼히 생각하자
1.4.3 수작업으로 할 수 없는 것은 프로그래밍으로도 할 수 없다
1.4.4 법칙을 발견하자
1.4.5 모든 현상을 숫자로 표현하는 능력
1.4.6 순회하는 숫자
1.4.7 입력과 출력을 통해 처리 과정을 추측해 보자
연습문제
Chapter02 C 프로그램을 관찰해 보자
2.1 C 프로그램을 살펴보자
2.1.1 C 프로그램의 예
2.1.2 C 프로그램과 행 번호
2.1.3 C 프로그램은 문자로 만들어진다
2.1.4 C는 영어와는 다르다
2.1.5 프로그램의 겉모습에 겁먹지 말자!
2.2 음독을 추천!
2.2.1 소리 내서 읽어보자
2.2.2 드디어 실전입니다!
2.2.3 읽는 방법의 예
2.2.4 왜 그렇게 읽는 것일까?
2.2.5 패턴을 인식하는 능력
2.3 기호에 익숙해지자
2.3.1 C의 기호에 익숙해지자
2.3.2 읽기 어려운 기호
2.4 영문자의 생략형에 익숙해지자
2.4.1 생략형에 익숙해지자
2.4.2 printf와 stdio를 기억하는 방법
2.5 C만의 독특한 방식을 이해하자
2.5.1 C만의 독특한 방식
2.5.2 실행 시작 지점과 종료 지점
2.5.3 괄호에 주의하자
2.5.4 C 프로그램은 함수의 집합체이다
2.5.5 인덴트(들여쓰기)를 이해하자
연습문제
Chapter03 프로그램 작성 방법
3.1 프로그램을 만들 때 필요한 사고법
3.1.1 순서를 고려하자
3.1.2 입력, 처리, 출력
3.1.3 파일 입출력
3.1.4 함수(Function)와 부품(Module)
3.1.5 모든 것을 만들 필요는 없다
3.1.6 정해진 처리는 컴퓨터에 맡기자
3.2 프로그램이 실행되기까지
3.2.1 컴파일과 어셈블
3.2.2 라이브러리의 링크
3.2.3 에러가 발생하면 실행되지 않는다
3.2.4 실행 중에 에러가 발생할 수도 있다
3.2.5 처리계 의존
연습문제
Chapter04 데이터를 표현하는 방법
4.1 숫자를 표현하는 방법
4.1.1 디지털
4.1.2 컴퓨터는 처리할 수 있는 숫자의 자릿수에는 한계가 있다
4.1.3 데이터에는 형이 있다
4.1.4 2진수의 음수
4.1.5 오버플로
4.1.6 부동소수점
4.2 문자를 표현하는 방법
4.2.1 ASCII 문자 세트
4.2.2 제어 코드와 이스케이프 시퀀스
4.2.3 한국어 표현 방법
연습문제
Chapter05 C를 배우는 데 필요한 컴퓨터 지식
5.1 컴퓨터의 구조
5.1.1 퍼스널 컴퓨터(PC)의 구조
5.1.2. 메모리에는 주소가 주어진다
5.1.3 메모리의 읽고와 쓰기
5.1.4 CPU와 메모리는 버스로 연결되어 있다
5.1.5 ROM과 RAM
5.1.6 CPU와 입출력 장치도 버스로 연결되어 있다
5.2 프로그램이 실행되기까지
5.2.1 CPU를 구성하는 3가지 장치
5.2.2 CPU의 기본 처리
5.2.3 프로그램은 메모리 위에 놓인다
5.2.4 기계어로 된 명령 실행하기
5.2.5 연산 장치(ALU)에 의한 연산 처리
5.2.6 메모리 버스의 비트 수
5.3 프로그램의 구조
5.3.1 프로그램의 종류
5.3.2 소프트웨어의 계층 구조
5.3.3 프로그램 실행과 쉘
5.3.4 프로그램의 구조
5.3.5 프로세스와 스레드
5.4 입출력
5.4.1 입출력과 버퍼
5.4.2 표준 입출력
5.4.3 리다이렉트
5.4.4 파일 입출력
5.4.5 스트림
5.4.6 입출력 종료는 EOF
연습문제
Chapter06 컴퓨터는 계산기이다
6.1 C 프로그래밍과 수학
6.1.1 일반적인 수학과는 다르다
6.1.2 연산자를 사용해서 계산하기
6.1.3 연산자에는 우선순위가 있다
6.1.4 정수와 변수
6.1.5 이퀄(=)은 대입 연산자이다
6.1.6 연산은 하나씩 차례대로 실행된다
6.1.7 연산의 상태는 저장된다
6.2 2진수 계산하기
6.2.1 2진수의 기본 연산
6.2.2 2진수 연산의 기본은 비트 연산
6.2.3 시프트 연산
6.3 연산자
6.3.1 사칙 연산과 승제
6.3.2 콤마 연산자
6.3.3 증가 연산자(인크리먼트)와 감소 연산자(디크리먼트)
6.3.4 대입 연산자
6.3.5 비교 연산자
6.3.6 논리 연산자
6.3.7 조건 연산자
연습문제
Chapter07 변수와 메모리
7.1 변수와 메모리
7.1.1 메모리를 조합해서 형(type)을 만든다
7.1.2 변수는 선언을 해야 사용할 수 있다
7.1.3 두 종류의 변수 - 자동 변수와 정적 변수
7.1.4 변수에는 알기 쉬운 이름을 붙이자
7.2 포인터
7.2.1 포인터란?
7.2.2 포인터의 실체
7.2.3 0번지(NULL)는 특별하다
7.3 배열
7.3.1 배열이란?
7.3.2 배열과 메모리
7.3.3 문자 데이터를 메모리에 저장한다
7.4 구조체
7.4.1 구조체란?
7.4.2 구조체와 메모리
7.5 변수에 대해 좀더 알아보자
7.5.1 캐스트(형 변환)
7.5.2 메모리의 동적 할당(malloc)
연습문제
Chapter08 처리의 흐름
8.1 처리의 흐름과 플로 차트
8.1.1 처리의 흐름
8.1.2 플로 차트
8.2 처리 흐름의 기본형
8.2.1 순차 처리(sequential)
8.2.2 선택 처리(select)
8.2.3 반복 처리(loop)
8.2.4 while문을 이용한 루프
8.2.5 for문을 이용한 루프
8.3 컴퓨터의 내부에서 이루어지는 처리의 흐름
8.3.1 내부의 흐름을 알자
8.3.2 기본은 순차 처리(sequential)
8.3.3 선택 처리(select)
8.3.4 반복 처리(loop)
연습문제
Chapter09 함수
9.1 함수란?
9.1.1 수학의 함수 복습하기
9.1.2 C의 함수
9.1.3 함수를 만드는 이유
9.2 함수의 기초 지식
9.2.1 메인 루틴과 서브 루틴
9.2.2 인수와 반환값
9.2.3 함수를 사용할 때에는 선언을 해야 한다
9.2.4 스코프(적용 범위)
9.2.5 함수와 매크로의 차이
9.3 함수를 호출하는 구조
9.3.1 함수와 메모리
9.3.2 함수 호출의 실제
9.3.3 함수 호출과 스택
연습문제
Chapter10 소프트웨어 개발의 기초
10.1 프로그램 개발과 실천
10.1.1 프로그램의 제작 목적과 사용 목적
10.1.2 소프트웨어의 개발 공정
10.2 워터 폴 모델
10.2.1 요구 정의
10.2.2 외부 설계와 내부 설계
10.2.3 코딩
10.2.4 테스트
10.3 개발 이외에 중요한 것
10.3.1 운용
10.3.2 스킬 업
연습문제
마치며
부록
A.1 샘플 프로그램
A.2 연산자 우선 순위
A.3 2진수와 자릿수
A.4 수의 접두어
A.5 10진수 ←→ 16진수 변환 표
A.6 10진수 ←→ 16진수, 2진수 변환 표
A.7 2진수를 10진수로 변환하는 방법
A.8 10진수를 2진수로 변환하는 방법
A.9 16진수를 10진수로 변환하는 방법
A.10 10진수를 16진수로 변환하는 방법
A.11 ASCII 문자 세트(ASCII character sets)
A.12 C의 이스케이프 시퀀스
A.13 읽기 어려운 기호
A.14 읽기 어려운 단어
A.15 for문 프로그램의 플로 차트의 예
A.16 while문 프로그램의 플로 차트의 예