이해하기 어려운 개념도 정확하고 친절하게 설명해주는
C 프로그래밍 입문자를 위한 필독서!
『난생처음 C 언어 프로그래밍』은 C 언어를 비롯하여 프로그래밍을 처음 시작하는 학생에게 최적화된 교재입니다. C 언어의 핵심 개념을 일상 속 비유와 그림을 통해 시작적으로 설명하며, C 언어의 문법 자체보다 동작 원리에 집중하였습니다. 또한 본문이 끝날 때마다 수록된 [확인문제]와 실습 문제 [LAB]을 통해 본문의 내용을 자연스럽게 복습할 수 있습니다. 마지막으로 챕터가 끝날 때마다 완성도 높은 [실전예제]를 직접 실습하면서 해당 챕터에서 배운 C 언어의 종합적인 내용을 자신의 것으로 만들 수 있습니다.
※ 본 도서는 대학 강의용 교재로 개발되었으므로 연습문제 해답은 제공하지 않습니다.
Part 01 C 언어 준비 학습
CHAPTER 01 프로그래밍과 C 언어
01 프로그래밍이란?
_1 컴퓨터의 개념
_2 프로그램과 프로그래밍
_3 프로그래머
02 프로그래밍 언어란?
_1 프로그램의 개념
_2 기계어
_3 프로그래밍 언어와 번역기
03 C 언어란?
_1 C 언어를 배우는 이유
_2 C 언어의 역사
_3 C 언어의 특징
_4 C 프로그래밍을 위한 도구
_5 통합 개발 환경
04 비주얼 스튜디오 설치
_1 비주얼 스튜디오의 버전
_2 비주얼 스튜디오 설치하기
_3 프로젝트와 솔루션 만들기
요약/연습문제
CHAPTER 02 C 프로그래밍의 기초
01 소스 파일과 헤더 파일이란?
_1 프로그램이 기록되는 위치
_2 소스 파일
_3 헤더 파일
02 C 코드의 기초
_1 코드를 구성하는 기본 요소
_2 정수 리터럴과 진법
_3 주석
03 C 프로그램의 기초
_1 함수
_2 main 함수
[LAB 2-1] 두 수를 곱하는 함수
04 표준 입출력이란?
_1 시스템 콘솔
_2 표준 출력 함수 printf
_3 표준 입력 함수 scanf
[LAB 2-2] 입력받은 두 수를 곱하고 출력하기
05 프로그램 생성 및 실행
_1 간단한 메아리 프로그램
_2 생성된 프로그램의 위치 확인하기
_3 빌드 및 프로그램 실행하기
[실전예제] 두 수를 활용한 세 가지 연산
요약/연습문제
CHAPTER 03 변수와 타입
01 메모리와 데이터 타입
_1 메모리
_2 데이터 타입
_3 데이터의 분류
_4 타입 개념의 확장
02 변수란?
_1 변수의 개념
_2 변수의 정의
_3 타입 한정자 const
_4 타입 별칭 정의 typedef
[LAB 3-1] a와 b 값을 서로 바꾸기
03 정수형
_1 부호 있는 정수 타입
_2 부호 없는 정수 타입
_3 정수 타입 변수의 초기화와 대입
_4 오버플로우와 언더플로우
[LAB 3-2] 부호 없는 정수형 타입의 최댓값 출력하기
04 실수형
_1 실수형의 분류
_2 실수형 타입의 오차
[LAB 3-3] 원의 둘레와 넓이 구하기
05 문자형과 문자열
_1 기본 문자 타입 char
_2 문자열 타입
[LAB 3-4] 대문자를 소문자로 변경하기
[실전예제] int와 float 사이의 오차 구하기
요약/연습문제
CHAPTER 04 표현식과 연산자
01 표현식과 명령문
_1 표현식의 개념
_2 명령문의 개념
_3 명령문의 예시
[LAB 4-1] 직육면체의 부피 구하기
02 연산자란?
_1 연산자와 피연산자의 개념
_2 연산자의 분류
03 산술 연산자
_1 사칙 연산자
_2 대입 연산자
_3 나머지 연산자
_4 증감 연산자
[LAB 4-2] 세 자리 자연수의 각 자리 수 구하기
04 비교 연산자
[LAB 4-3] 3의 배수 판별하기
05 논리 연산자
_1 논리 부정 연산자
_2 논리곱 연산자
_3 논리합 연산자
[LAB 4-4] 0 판별하기
06 비트 연산자
_1 비트 반전 연산자
_2 비트곱, 비트합, 배타적 비트합 연산자
_3 비트 이동 연산자
[LAB 4-5] 세 번째 비트 값 구하기
07 복합 대입 연산자와 삼항 연산자
_1 복합 대입 연산자
_2 삼항 연산자
[LAB 4-6] 입력받은 수보다 큰 다음 짝수 구하기
08 기타 연산자와 우선순위
_1 sizeof 연산자
_2 타입 변환 연산자
_3 연산자의 우선순위
[LAB 4-7] 가우스 함수 f(x) = [x] 구현하기
[실전예제] 두 수의 대소 관계 파악하기
요약/연습문제
Part 02 C 언어 기본 학습
CHAPTER 05 선택문
01 제어문이란?
_1 실행 흐름의 분류
_2 선택문의 개념
02 if문
_1 if문의 조건식
_2 if문의 명령문
[LAB 5-1] 홀/짝 판별하기
03 if~else문
_1 if~else문의 형식
_2 if~else if문
[LAB 5-2] 2의 배수, 3의 배수, 2와 3의 공배수 판별하기
_04 switch문
_1 switch문의 형식
_2 break
_3 switch문의 제약 사항
[실전예제] 8의 배수? 4의 배수? 2의 배수?
요약/연습문제
Chpater 06 반복문
01 반복문이란?
_1 반복문의 특징
_2 반복문의 종류
[LAB 6-1] 입력한 횟수만큼 반복하기
02 for문
_1 for문의 개념
_2 for문의 활용
_3 for문의 변형
[LAB 6-2] 팩토리얼 계산하기1
03 while문
_1 while문의 형식
_2 while문과 for문의 비교
[LAB 6-3] 팩토리얼 계산하기2
04 do~while문
_1 do~while문의 형식
_2 do~while문의 활용
[LAB 6-4] 입력한 수를 모두 합하는 프로그램
05 반복문 고급
_1 다중 반복
_2 break
_3 continue
[LAB 6-5] 생년월일 입력받기
[실전예제] 100 이하의 소수 출력하기
요약/연습문제
Chapter 07 배열
01 배열이란?
_1 배열의 개념
_2 배열의 타입
_3 배열의 정의
_4 인덱스
_5 배열의 복사
[LAB 7-1] 알파벳 배열에 A-Z 채우기
02 배열의 초기화
_1 초기화 형식
_2 문자열 초기화
[LAB 7-2] 소수 여부 확인하기
03 다차원 배열
_1 2차원 배열
_2 2차원 배열의 구조
[LAB 7-3] 구구단 게임
04 배열의 크기와 길이
_1 배열의 크기와 길이의 관계
_2 가변 길이 배열
[LAB 7-4] 문자열의 길이 구하기
[실전예제] 문자 배열 합치기
요약/연습문제
Chapter 08 함수
01 함수의 정의와 선언
_1 함수의 정의
_2 함수의 선언
_3 함수를 선언하지 않을 경우
_4 함수 선언이 반드시 필요한 경우
[LAB 8-1] 곱셈 함수와 나눗셈 함수
02 함수 인자
_1 실인자와 매개변수
_2 값 전달
_3 가변 인자 함수
[LAB 8-2] 배열 요소를 거꾸로 재배치하기
03 함수 호출
_1 스택 프레임
_2 재귀 호출
[LAB 8-3] 재귀 호출을 이용한 n! 구하기
[실전예제] 재귀 호출을 이용한 배열 요소의 합 구하기
요약/연습문제
CHAPTER 09 저장소 분류
01 객체의 가시 범위와 생명 주기
_1 객체의 가시 범위
_2 객체의 생명 주기
[LAB 9-1] 이전에 입력받은 수를 기억하는 프로그램
02 자동 저장소 분류
_1 자동 저장소 분류의 개념
_2 가시 범위의 특징
[LAB 9-2] 같은 이름이지만 서로 다른 제어 변수 사용하기
03 전역 저장소 분류
_1 전역 저장소 분류의 개념
_2 extern 지정자
[LAB 9-3] 입출금 처리 프로그램
04 정적 저장소 분류
_1 정적 저장소 분류의 개념
_2 static 지정자
_3 정적 지역 객체
_4 정적 전역 객체
[LAB 9-4] 개선된 입출금 처리 프로그램
05 객체의 초기화
_1 전역, 정적 객체의 초기화
_2 지역 객체의 초기화
[LAB 9-5] 덧셈이 누적되는 프로그램
[실전예제] 양수와 음수의 덧셈 누적하기
요약/연습문제
Part 03 C 언어 심화 학습
CHAPTER 10 포인터 기초
01 포인터란?
_1 포인터의 개념
_2 포인터의 필요성
_3 포인터에 포함되는 정보
02 포인터 사용
_1 포인터 변수의 정의
_2 대상 타입과 객체 타입이 같은 포인터
_3 대상 타입과 객체 타입이 다른 포인터
[LAB 10-1] int 변수를 -1로 설정하기
03 포인터 연산자
_1 참조 연산자
_2 산술 연산자
_3 증감 연산자
_4 간접 연산자
_5 간접 멤버 연산자
_6 첨자 연산자
_7 타입 변환 연산자
[LAB 10-2] 배열의 모든 요소를 –1로 설정하기
04 void 포인터란?
_1 void 포인터의 개념
_2 void 포인터의 특징
_3 void 포인터의 한계
[LAB 10-3] 두 변수의 주소와 주소 차이 출력하기
[실전예제] memset 함수 내부 구현하기
요약/연습문제
CHAPTER 11 포인터 심화
01 포인터와 배열
_1 문자열 포인터
_2 배열을 가리키는 포인터
[LAB 11-1] 문자열의 길이를 반환하는 함수 만들기
02 포인터와 함수
_1 포인터 매개변수
_2 배열 매개변수와 포인터의 관계
[LAB 11-2] 배열의 요소를 오름차순으로 정리하기
03 동적 메모리 할당과 해제
_1 힙 영역
_2 malloc 함수와 free 함수
_3 calloc 함수와 realloc 함수
[LAB 11-3] 숫자를 누적시켜 저장하고 보여주기
[실전예제] 두 문자열을 하나의 문자열로 연결하기
요약/연습문제
CHAPTER 12 구조체
01 구조체란?
_1 구조체의 개념
_2 구조체의 정의
_3 구조체 변수의 정의
_4 구조체 변수의 초기화
[LAB 12-1] 인구 조사 프로그램 만들기1
02 구조체 연산자
_1 대입 연산자
_2 직접 멤버 연산자
_3 간접 멤버 연산자
_4 사용 불가 연산자
[LAB 12-2] 인구 조사 프로그램 만들기2
03 구조체 인자
_1 구조체 매개변수
_2 구조체 포인터 매개변수
[LAB 12-3] 인구 조사 프로그램 만들기3
04 구조체 메모리 구조
_1 구조체의 크기
_2 패딩의 개념
[LAB 12-4] 인구 조사 프로그램 만들기4
05 공용체
_1 공용체의 개념과 정의
_2 공용체의 크기
[LAB 12-5] 해시값 구하기
06 열거체
_1 열거체의 개념
_2 열거체의 정의
_3 열거체 변수의 정의
_4 식별 번호의 활용
[LAB 12-6] 패스트푸드 메뉴 주문하기
[실전예제] 인구 조사 프로그램 완성하기
요약/연습문제
CHAPTER 13 파일 처리와 전처리기
01 파일과 파일 시스템
_1 파일 시스템과 파일 API
_2 C 표준 라이브러리
[LAB 13-1] 특정한 파일을 삭제하는 프로그램
02 기본 파일 처리
_1 FILE 객체
_2 파일 열기 및 닫기
_3 파일 모드
[LAB 13-2] 원하는 경로에 빈 파일 생성하기
03 파일 입출력
_1 파일 위치 표시자
_2 파일 쓰기
_3 파일 읽기
[LAB 13-3] 파일 한 줄씩 읽기
04 전처리 지시문
_1 전처리기와 전처리 지시문의 개념
_2 #include
_3 #define
05 조건부 컴파일 지시문
_1 #ifdef~#endif
_2 #if~#elif~#endif
_3 #ifndef
[LAB 13-4] 한글/영어로 제목 출력하기
[실전예제] C 드라이브의 파일을 D 드라이브에 복사하기
요약/연습문제
CHAPTER 14 C 언어 프로젝트
01 달력 출력 프로그램
02 문자열 검색 프로그램
03 로또 번호 생성 프로그램
확인문제 정답
찾아보기
자료명 | 등록일 | 다운로드 |
---|---|---|
예제소스 | 2022-01-05 | 다운로드 |
도서구입 안내
<한빛아카데미> 도서는 한빛 홈페이지에서 더 이상 판매를 하지 않습니다. 도서 구입은 인터넷 서점을 이용하시기 바랍니다. 양해바랍니다.