
구매문의 및 도서상담은 031-944-3966(매장)으로 문의해주세요.
매장전집은 전화 혹은 매장방문만 구입 가능합니다.
지은이 : 박동규
1993年 부산대학교 전자계산학과 이학사1996年 부산대학교 전자계산학과 이학석사1999年 부산대학교 전자계산학과 이학박사2002年~현재 창원대학교 정보통신공학과 교수2007年 미국 카네기멜론대학교(CMU) 방문교수2012年 미국 텍사스A&M대학교 방문교수2021年 부산대학교 컴퓨터 및 정보통신 연구소 방문교수창원대학교 정보전산원장, 창원시 스마트모바일 앱센터장, IEEE Busan Section 의장 역임“널널한 교수의 코딩 클래스” 유튜브 채널 운영 중
Chapter 01 C 언어를 시작하자
1.1 프로그래밍과 C 언어
1.2 기계어와 어셈블리어, 고급 언어
1.3 소프트웨어 개발의 단계를 알아보자
1.4 코딩과 소프트웨어 개발 단계를 알아보자
1.5 C 언어와 이식성을 알아보자
1.6 여러 종류의 통합 개발 환경을 알아보자
1.7 웹 환경에서 C 언어를 사용해보자
1.8 비주얼 스튜디오를 설치하고 새 프로젝트를 만들자
1.9 hello world를 출력하자
1.10 오류 메시지를 이해하자
LAB 1-1 자기 소개 글을 완성하자
LAB 1-2 간단한 연산을 하자
1.11 main 함수와 출력문 그리고 주요 구성 요소
1.12 세미콜론과 중괄호는 어떤 의미인가
1.13 주석문의 쓰임새를 살펴보자
핵심 정리
주관식 문제
심화문제
프로그래밍 문제
Chapter 02 변수와 입출력문 이해하기
2.1 C 프로그램의 구성 요소
2.2 자료값을 저장하는 곳: 변수
2.3 bool 형과 32비트 64비트 컴퓨터
2.4 식별자를 알아보자
2.5 정수 리터럴과 실수 리터럴을 알아보자
2.6 문자 리터럴과 문자열 리터럴을 알아보자
2.7 변수의 선언과 할당 연산자
LAB 2-1 세 수의 합과 평균을 출력하자
LAB 2-2 자신의 키와 나이를 출력하자
2.8 매크로를 알아보자
2.9 변수에 저장되는 자료값의 크기와 unsigned 명령
2.10 오버플로와 상수
2.11 상수형 자료값과 숫자 리터럴 접미사
2.12 printf() 함수와 출력 포매터
2.13 printf() 함수와 출력 포매터의 고급 기능
2.14 사용자의 키보드 입력을 받는 scanf() 함수
2.15 scanf() 함수의 실사용 예시[고급]
LAB 2-3 사용자로부터 실수를 입력받아 연산을 하자
LAB 2-4 간단한 변수를 만들고 연산을 하자
핵심 정리
주관식 문제
심화문제
프로그래밍 문제
Chapter 03 연산자를 살펴보자
3.1 수식과 연산자
3.2 다양한 연산자를 알아보자
3.3 산술 연산자를 알아보자
LAB 3-1 체질량 지수를 구하자
3.4 증감 연산자와 모호성을 알아보자
3.5 관계 연산자를 알아보자
3.6 논리 연산자 AND, OR, NOT을 알아보자
LAB 3-2 윤년을 구해보자
LAB 3-3 논리 AND 연산자를 사용하자
3.7 비트 단위 연산자
3.8 비트 이동 연산자와 비트 제거
3.9 sizeof 연산자와 형변환
3.10 복합 할당 연산자를 알아보자
3.11 연산자 사이에도 먼저 처리하는 것이 있다
핵심 정리
주관식 문제
심화문제
프로그래밍 문제
Chapter 04 조건문을 알아보자
4.1 프로그램의 기본 제어 구조를 알아보자
4.2 조건이 맞을 때만 실행되는 if 문
4.3 배타적 조건을 처리하기 위한 if-else 문
LAB 4-1 윤년을 출력하자
LAB 4-2 비밀번호를 확인하자
4.4 삼항 연산자 : ?
4.5 연속적인 조건 검사를 하자
LAB 4-3 상대적 지방 질량 지수를 계산하자
4.6 switch-case 문 알아보기
4.7 switch-case 문과 다음으로 넘어가기
LAB 4-4 각 달의 일수를 출력하자
LAB 4-5 RFM 지수를 간단하게 구하자
4.8 어떤 코딩이 좋은 코딩인가: goto 문
4.9 좋은 코딩 스타일이란 무엇인가
4.10 다양한 코딩 스타일을 알아보자[고급]
핵심 정리
주관식 문제
심화문제
프로그래밍 문제
Chapter 05 반복문으로 일처리를 빠르게 하자
5.1 흐름 제어와 반복적인 구조
5.2 for 반복문의 기초 문법과 사용법
5.3 루프 제어 변수의 선언과 초기화
5.4 while 반복문과 for 반복문
5.5 do-while 반복문을 알아보자
LAB 5-1 세 수의 합과 평균을 출력하자
LAB 5-2 네 자리 이하 숫자의 자리수를 각각 출력하자
5.6 반복문 초기화와 누적 연산
5.7 break와 continue
5.8 무한히 반복되는 문장
LAB 5-3 임의의 자리수를 가진 정수의 자리수를 각각 출력하자
LAB 5-4 약수 구하기
5.9 중첩된 반복문에 대하여 알아보자
5.10 상향식 문제 해결 기법을 알아보자
LAB 5-5 소수를 출력하자
핵심 정리
주관식 문제
심화문제
프로그래밍 문제
Chapter 06 함수를 활용하자
6.1 짜임새 있는 기능을 구현하기 위한 도구: 함수
6.2 간단한 함수부터 복잡한 함수까지
6.3 함수의 매개변수와 인자를 자세히 알아보자
6.4 함수의 반환값을 알아보자
6.5 함수의 정의와 헤더 파일
6.6 변수는 언제 만들어지고 사라지는가
6.7 전역 변수와 이름 충돌을 알아보자
6.8 자동 변수와 정적 변수를 알아보자
LAB 6-1 소수를 판별하는 함수를 만들자
6.9 변수와 외부 연결을 알아보자
6.10 값 전달 방식의 호출
6.11 주소 전달 방식의 호출
6.12 가변 인자를 가지는 함수
6.13 수학 관련 함수를 사용하자
6.14 난수 관련 함수를 알아보자
6.15 시간 함수와 난수 함수를 사용하자
LAB 6-2 특정 범위 내에서 중복되지 않는 난수를 만들자
6.16 재귀 함수를 사용하여 문제를 해결하자[고급]
핵심 정리
주관식 문제
심화문제
프로그래밍 문제
Chapter 07 배열을 알아보자
7.1 배열의 기초
7.2 배열의 원소에 접근하는 숫자: 인덱스
7.3 배열의 크기를 알아내고 복사하기
7.4 배열 원소들의 평균과 최빈값을 구하자
7.5 배열을 비교하자
7.6 배열을 이어 붙여보자
7.7 배열 원소를 함수에서 조작하자
7.8 가변 길이 배열을 알아보자
LAB 7-1 배열의 최대 최소값을 구하자
7.9 배열은 함수에 무엇을 전달하는가
LAB 7-2 배열 원소의 순서를 뒤집도록 하자
LAB 7-3 배열을 오른쪽으로 K번 회전시키자
7.10 순차 탐색과 메모리의 효율적 활용
7.11 빠르게 원하는 값을 찾는 이진 탐색 함수
LAB 7-4 정렬된 배열에서 원소를 찾자
7.12 정렬을 알아보자
7.13 선택 정렬을 알아보자[고급]
7.14 일차원 배열과 다차원 배열을 알아보자[고급]
7.15 2차원 배열과 3차원 배열을 알아보자
7.16 3차원 배열의 연산을 알아보자
핵심 정리
주관식 문제
심화문제
프로그래밍 문제
Chapter 08 포인터 속으로 들어가기
8.1 메모리와 메모리 주소 그리고 포인터
8.2 주소 연산자와 포인터 변수
8.3 포인터와 역참조 그리고 증감 연산
8.4 배열과 포인터는 어떤 관계인가
LAB 8-1 포인터를 사용하여 변수값을 두 배로 만들자
LAB 8-2 포인터 변수의 크기를 알아보자
8.5 포인터의 다양한 연산
8.6 값 전달과 참조 전달을 알아보자
8.7 함수의 매개변수로 전달되는 배열을 참조하자
LAB 8-3 포인터를 사용하여 문자열의 길이를 구하자
LAB 8-4 포인터를 사용하여 최대값을 찾자
8.8 포인터 사용 시의 주의사항
8.9 사용자로부터 문자열을 입력받는 방법
8.10 atoi() 함수와 strtol() 함수를 알아보자
8.11 main() 함수의 인자를 알아보자[고급]
핵심 정리
주관식 문제
심화문제
프로그래밍 문제
Chapter 09 포인터를 깊이 알아보자
9.1 이중 포인터는 포인터의 포인터이다
9.2 단일 포인터의 한계를 극복하는 이중 포인터
9.3 포인터 배열과 배열 포인터의 차이점
9.4 포인터 배열과 배열 포인터을 비교하자
LAB 9-1 배열 포인터를 사용하여 연산을 하자
9.5 문자열 배열과 문자열 포인터 배열을 알아보자
9.6 함수 포인터를 알아보자
9.7 함수 포인터의 쓰임새를 알아보자
9.8 함수 포인터의 배열
9.9 다차원 배열을 포인터로 접근하는 방법
9.10 다차원 배열의 이용 방법
9.11 다차원 배열의 전체 원소에 접근하는 여러 가지 방법
9.12 const 키워드와 void 포인터
9.13 void 포인터의 형 변환과 증가 연산
9.14 함수 포인터와 퀵 정렬을 알아보자
LAB 9-2 사용자로부터 입력받은 단어들을 정렬하자
9.15 main 함수의 인수
핵심 정리
주관식 문제
심화문제
프로그래밍 문제
Chapter 10 문자와 문자열을 다루자
10.1 문자와 문자열의 선언 방법을 알아보자
10.2 문자 자료형의 연산에 대해 알아보자
10.3 다양한 문자 입출력 함수와 버퍼
10.4 아스키 코드와 문자 입력
10.5 string.h 헤더 파일과 문자열의 길이를 구하기
10.6 사전식 순서에 따른 문자열의 비교
10.7 사전식 순서 정렬의 의미
10.8 문자열의 토큰화
10.9 문자열을 분석하는 함수들
LAB 10-1 수식의 피연산자만을 출력하자
LAB 10-2 문장을 대문자로 고치자
LAB 10-3 문장을 분석하자
10.10 strcpy로 문자열 복사하기
10.11 strcat과 strstr 함수
LAB 10-4 문자를 사전 순서로 정렬하자
LAB 10-5 2진수를 입력받아 10진수, 8진수, 16진수로 출력하자
핵심 정리
주관식 문제
심화문제
프로그래밍 문제
Chapter 11 구조체를 살펴보자
11.1 자료형의 종류와 구조체를 알아보자
11.2 구조체 멤버에 접근하기
11.3 구조체 멤버의 초기화와 복사, 구조체 배열의 사용법
LAB 11-1 자동차의 형식을 저장하는 구조체
LAB 11-2 학생의 정보를 구조체로 처리하자
11.4 자료형을 다시 정의하는 typedef
11.5 typedef의 여러 가지 유용한 용도
LAB 11-3 학생의 정보를 typedef로 정의하자
11.6 함수 포인터와 구조체 정렬을 알아보자
11.7 enum을 이용한 나열형 정의하기
11.8 공용체 기능 알아보기
11.9 FILE 구조체를 알아보자
11.10 전처리기와 헤더 파일을 알아보자
11.11 전처리기의 고급 기능과 헤더 파일의 사용법
11.12 전처리기의 고급 기능과 컴파일 과정의 이해
핵심 정리
주관식 문제
심화문제
프로그래밍 문제
Chapter 12 동적 메모리 할당을 알아보자
12.1 배열과 메모리 할당에 대하여 알아보자
12.2 힙 메모리를 알아보자
12.3 동적 할당 메모리에 접근하기
LAB 12-1 사용자로부터 정수를 입력받아 최대 최소값을 구하자
12.4 calloc과 realloc을 알아보자
12.5 함수 내부에서 동적으로 할당한 메모리를 사용하자
12.6 typedef로 포인터 변수를 재정의하자
12.7 가변 크기 행의 배열을 만들자
12.8 연결 리스트를 알아보자
12.9 간단한 연결 리스트를 만들자
핵심 정리
주관식 문제
심화문제
프로그래밍 문제
Chapter 13 파일을 처리하자
13.1 파일과 스트림을 알아보자
13.2 표준 입력 스트림으로부터 문자와 문자열 입력을 처리하자
13.3 텍스트 파일을 만들어 보자
13.4 파일을 만들고 읽어오는 다양한 접근 모드
13.5 파일과 버퍼를 알아보자
LAB 13-1 숫자를 저장하자
LAB 13-2 임의의 숫자를 저장하자
13.6 표준 스트림과 일반 스트림을 알아보자
13.7 문자를 하나씩 출력하고 문자열을 읽어 보자
13.8 fgets()로 문자열을 한 줄씩 읽어오자
13.9 이진 파일을 만들고 읽어보자
13.10 파일 포인터를 알아보자
13.11 파일 포인터를 이용하여 특정 위치로 이동하자
LAB 13-3 숫자를 이진 파일로 저장하자
13.12 텍스트 파일을 복사하자
13.13 이진 파일을 복사하자
핵심 정리
주관식 문제
심화문제
프로그래밍 문제
도서 DB 제공 - 알라딘 인터넷서점 (www.aladin.co.kr)