길벗·이지톡

도서 IT전문서/IT입문서 프로그래밍/오픈소스

COS Pro 2급 시험 대비와 함께 C 언어 기초를 배운다!

C언어로 프로그래밍 기초를 배운다
Windows, macOS, 리눅스 등 운영체제 대부분이 C 언어로 개발되었고 사물인터넷이나 하드웨어 제어에도 널리 쓰입니다. 이 책으로 COS Pro 2급 시험 대비와 함께 C 언어 기초를 배울 수 있습니다.

온라인 트레이닝으로 실전 감각을 익힌다
COS Pro 2급 온라인 트레이닝 사이트에서 퀴즈, 연습문제, 모의고사를 직접 풀어보며 시험에 필요한 실전 감각을 익힐 수 있습니다. 

트레이닝 사이트
www.dojang.io COS Pro 2급 C 언어를 무료로 학습할 수 있습니다.
www.programmers.co.kr 퀴즈, 연습문제, 모의고사를 직접 코딩하며 풀어볼 수 있습니다.
본 교재는 길벗출판사의 [C 언어 코딩 도장] 책의 내용을 바탕으로 만들었습니다. [C 언어 코딩 도장]으로 학습하신 분은 본 교재를 구입하지 않아도 프로그래머스(www.programmers.co.kr)에서 모의테스트를 풀어보는 정도로 COS Pro 2급에 도전하실 수 있습니다.
독자 여러분의 건승을 기원합니다.

목차

Unit1 소프트웨어 교육과 C 언어
1.1 컴퓨터와 프로그램
1.2 문제 해결을 위한 과학적 사고
1.3 알고리즘과 코딩
1.4 C 언어란?

Unit2 Visual Studio 설치하기

Unit3 Hello, world!로 시작하기
3.1 새 프로젝트 만들기
3.2 프로젝트에 C 언어 소스 파일 추가하기
3.3 Hello, world! 출력하기
3.4 서식 지정자 사용하기
3.5 퀴즈
3.6 연습문제: 문자열 출력하기
3.7 연습문제: 서식 지정자 사용하기

Unit4 기본 문법 알아보기
4.1 세미콜론
4.2 주석
4.3 중괄호
4.4 들여쓰기

Unit5 변수 만들기
5.1 변수를 만들고 값 저장하기
5.2 변수 여러 개를 한 번에 선언하기
5.3 변수를 선언하면서 초기화하기
5.4 퀴즈
5.5 연습문제: 변수 여러 개를 선언하면서 값 초기화하기

Unit6 디버거 사용하기
6.1 중단점 사용하기

Unit7 정수 자료형 사용하기
7.1 정수형 변수 선언하기
7.2 오버플로우와 언더플로우 알아보기
7.3 자료형 크기 구하기
7.4 최솟값과 최댓값 표현하기
7.5 크기가 표시된 정수 자료형 사용하기
7.6 퀴즈
7.7 연습문제: 정수형 변수 선언과 오버플로우
7.8 연습문제: 자료형 크기 구하기

Unit8 실수 자료형 사용하기
8.1 실수형 변수 선언하기
8.2 자료형 크기 구하기
8.3 최솟값과 최댓값 표현하기
8.4 오버플로우와 언더플로우 알아보기
8.5 퀴즈
8.6 연습문제: 실수형 변수 선언하기
8.7 연습문제: 자료형 크기 구하기
8.8 연습문제: 최솟값과 최댓값 표현하기

Unit9 문자 자료형 사용하기
9.1 문자 변수 선언하기
9.2 문자로 연산하기
9.3 제어 문자 사용하기
9.4 퀴즈
9.5 연습문제: 제어 문자 사용하기
9.6 연습문제: 정수 숫자를 문자로 변환하기

Unit10 상수 사용하기
10.1 리터럴 사용하기
10.2 상수 사용하기
10.3 정수 리터럴 접미사 사용하기
10.4 실수 리터럴 접미사 사용하기
10.5 퀴즈
10.6 연습문제: 리터럴 사용하기
10.7 연습문제: 상수 사용하기

Unit11 입력 값을 변수에 저장하기
11.1 정수 입력받기
11.2 한 번에 정수 두 개 입력받기
11.3 실수 입력받기
11.4 문자 입력받기
11.5 퀴즈
11.6 연습문제: 한 번에 정수 세 개 입력받기

Unit12 덧셈, 뺄셈하기
12.1 덧셈, 뺄셈하기
12.2 변수 하나에서 값을 더하거나 빼기
12.3 퀴즈
12.4 연습문제: 덧셈, 뺄셈하기

Unit13 증가, 감소 연산자 사용하기
13.1 변수의 값을 1 증가, 감소시키기
13.2 실수 자료형에 증감 연산자 사용하기
13.3 문자 자료형에 증감 연산자 사용하기
13.4 증감 연산자의 위치에 따른 차이점 알아보기
13.5 퀴즈
13.6 연습문제: 증가, 감소 연산자 사용하기

Unit14 곱셈, 나눗셈하기
14.1 곱셈, 나눗셈하기
14.2 변수 하나에서 값을 곱하거나 나누기
14.3 퀴즈
14.4 연습문제: 삼각형의 넓이 구하기

Unit15 나머지 연산하기
15.1 나머지 연산하기
15.2 변수 하나에서 나머지 연산하기
15.3 퀴즈
15.4 연습문제: 3의 배수인지 확인하기

Unit16 자료형의 확장과 축소 알아보기
16.1 자료형의 확장 알아보기
16.2 자료형의 축소 알아보기
16.3 퀴즈
16.4 연습문제: 문자 출력하기

Unit17 if 조건문으로 특정 조건일 때 코드 실행하기
17.1 if 조건문 사용하기
17.2 if 조건문과 세미콜론
17.3 if 조건문에서 중괄호 생략하기
17.4 if 조건문에서 실수와 문자 비교하기
17.5 사용자가 입력한 값에 if 조건문 사용하기
17.6 퀴즈
17.7 연습문제: if 조건문 사용하기

Unit18 else를 사용하여 두 방향으로 분기하기
18.1 else 사용하기
18.2 else와 세미콜론
18.3 else에서 중괄호 생략하기
18.4 if 조건문의 동작 방식 알아보기
18.5 조건식을 여러 개 지정하기
18.6 퀴즈
18.7 연습문제: else 사용하기
18.8 연습문제: 합격 여부 판단하기

Unit19 else if를 사용하여 여러 방향으로 분기하기
19.1 else if 사용하기
19.2 if, else if, else를 모두 사용하기
19.3 퀴즈
19.4 연습문제: if, else if, else를 모두 사용하기

Unit20 비교 연산자와 삼항 연산자 사용하기
20.1 비교 연산자 사용하기
20.2 삼항 연산자 사용하기
20.3 if 조건문과 비교 연산자 사용하기
20.4 함수 안에서 삼항 연산자 사용하기
20.5 퀴즈
20.6 연습문제: 비교 연산자 사용하기
20.7 연습문제: 삼항 연산자 사용하기

Unit21 논리 연산자 사용하기
21.1 AND 연산자 사용하기
21.2 OR 연산자 사용하기
21.3 NOT 연산자 사용하기
21.4 조건식과 논리 연산자 사용하기
21.5 if 조건문과 논리 연산자 사용하기
21.6 삼항 연산자에 논리 연산자 사용하기
21.7 퀴즈
21.8 연습문제: 논리 연산자 사용하기

Unit22 비트 연산자 사용하기
22.1 비트 AND, OR, XOR 연산자 사용하기
22.2 비트 NOT 연산자 사용하기
22.3 시프트 연산자 사용하기
22.4 비트 연산 후 할당하기
22.5 퀴즈
22.6 연습문제: 비트 논리 연산자 사용하기
22.7 연습문제: 시프트 연산자 사용하기

Unit23 불 자료형 사용하기
23.1 stdbool.h 헤더 파일 사용하기
23.2 불 자료형 크기 알아보기
23.3 불 자료형과 논리 연산자 사용하기
23.4 true, false를 문자열로 출력하기
23.5 if 조건문에서 불 자료형 사용하기
23.6 퀴즈
23.7 연습문제: 불 자료형 사용하기

Unit24 연산자 우선순위 알아보기
24.1 괄호 사용하기
24.2 연산자의 결합 방향 알아보기
24.3 결합 방향이 다른 연산자와 괄호 사용하기
24.4 논리, 비교, 시프트 연산자에 괄호 사용하기
24.5 퀴즈
24.6 연습문제: 괄호 사용하기

Unit25 switch 분기문으로 다양한 조건 처리하기
25.1 사용자가 입력한 값에 따라 문자열 출력하기
25.2 case에서 break를 사용하지 않을 때의 동작 알아보기
25.3 case에서 break 생략 응용하기
25.4 case 안에서 변수 선언하기
25.5 switch에서 판별할 수 있는 자료형 알아보기
25.6 퀴즈
25.7 연습문제: switch 분기문 사용하기

Unit26 for 반복문으로 Hello, world! 100번 출력하기
26.1 for 반복문 사용하기
26.2 초깃값의 변화 알아보기
26.3 초깃값을 1부터 시작하기
26.4 초깃값을 감소시키기
26.5 for 반복문과 세미콜론
26.6 for 반복문에서 중괄호 생략하기
26.7 입력한 횟수대로 반복하기
26.8 for 반복문에서 변수 두 개 사용하기
26.9 for 반복문으로 무한 루프 만들기
26.10 퀴즈
26.11 연습문제: for 반복문에서 변수 두 개 사용하기

Unit27 while 반복문으로 Hello, world! 100번 출력하기
27.1 while 반복문 사용하기
27.2 초깃값을 1부터 시작하기
27.3 초깃값을 감소시키기
27.4 while 반복문과 세미콜론
27.5 입력한 횟수대로 반복하기
27.6 반복 횟수가 정해지지 않은 경우
27.7 while 반복문으로 무한 루프 만들기
27.8 while 반복문에서 중괄호 생략하기
27.9 퀴즈
27.10 연습문제: while 반복문 사용하기

Unit28 do while 반복문으로 최소 한 번은 실행하기
28.1 do while 반복문 사용하기
28.2 초깃값을 1부터 시작하기
28.3 초깃값을 감소시키기
28.4 입력한 횟수대로 반복하기
28.5 반복 횟수가 정해지지 않은 경우
28.6 do while 반복문으로 무한 루프 만들기
28.7 코드를 한 번만 실행하기
28.8 퀴즈
28.9 연습문제: do while 반복문 사용하기

Unit29 break, continue로 반복문 제어하기
29.1 break로 반복문 끝내기
29.2 continue로 코드 실행 건너뛰기
29.3 입력한 횟수대로 반복하기
29.4 입력한 숫자까지 짝수 출력하기
29.5 퀴즈
29.6 연습문제: 3으로 끝나는 숫자만 출력하기

Unit30 계단식으로 별 출력하기
30.1 중첩 루프 사용하기
30.2 사각형으로 별 출력하기
30.3 계단식으로 별 출력하기
30.4 대각선으로 별 출력하기
30.5 퀴즈
30.6 연습문제: 역삼각형 모양으로 별 출력하기

Unit31 포인터 사용하기
31.1 포인터 변수 선언하기
31.2 역참조 연산자 사용하기
31.3 디버거에서 포인터 확인하기
31.4 다양한 자료형의 포인터 선언하기
31.5 void 포인터 선언하기
31.6 이중 포인터 사용하기
31.7 잘못된 포인터 사용
31.8 퀴즈
31.9 연습문제: 포인터와 주소 연산자 사용하기

Unit32 메모리 사용하기
32.1 메모리 할당하기
32.2 메모리에 값 저장하기
32.3 메모리 내용을 한꺼번에 설정하기
32.4 널 포인터 사용하기
32.5 퀴즈
32.6 연습문제: 메모리 할당하기

Unit33 배열 사용하기
33.1 배열을 선언하고 요소에 접근하기
33.2 배열을 0으로 초기화하기
33.3 배열의 요소에 값 할당하기
33.4 배열의 크기 구하기
33.5 반복문으로 배열의 요소를 모두 출력하기
33.6 배열의 요소 합계 구하기
33.7 배열의 요소에 저장된 값을 두 배로 만들기
33.8 배열을 포인터에 넣기
33.9 배열을 활용하여 10진수를 2진수로 변환하기
33.10 퀴즈
33.11 연습문제: 점수 평균 구하기

Unit34 2차원 배열 사용하기
34.1 2차원 배열을 선언하고 요소에 접근하기
34.2 2차원 배열을 초기화하기
34.3 2차원 배열의 요소에 값 할당하기
34.4 2차원 배열의 크기 구하기
34.5 반복문으로 2차원 배열의 요소를 모두 출력하기
34.6 2차원 배열을 포인터에 넣기
34.7 퀴즈
34.8 연습문제: 행렬의 주대각선 성분 구하기

Unit35 문자열 사용하기
35.1 문자와 문자열 포인터 알아보기
35.2 문자열 포인터에서 인덱스로 문자에 접근하기
35.3 퀴즈
35.4 연습문제: 문자열 요소 출력

Unit36 입력 값을 문자열에 저장하기
36.1 입력 값을 배열 형태의 문자열에 저장하기
36.2 입력 값을 문자열 포인터에 저장하기
36.3 문자열을 여러 개 입력받기
36.4 퀴즈
36.5 연습문제: 입력받은 문자열을 배열에 저장하기
36.6 연습문제: 입력받은 문자열을 동적 메모리에 저장하기

Unit37 문자열의 길이를 구하고 비교하기
37.1 문자열 길이 구하기
37.2 문자열 비교하기
37.3 퀴즈
37.4 연습문제: 문자열 길이 구하기
37.5 연습문제: 문자열 비교하기

Unit38 문자열을 복사하고 붙이기
38.1 문자열 복사하기
38.2 문자열 붙이기
38.3 배열 형태의 문자열을 문자열 포인터에 복사하기
38.4 배열 형태의 문자열을 문자열 포인터에 붙이기
38.5 퀴즈
38.6 연습문제: 문자열 포인터를 배열에 복사하기
38.7 연습문제: 문자열 포인터를 동적 메모리에 복사하기
38.8 연습문제: 문자 배열을 붙이기
38.9 연습문제: 문자열 리터럴과 동적 메모리 붙이기

Unit39 문자열 검색하기
39.1 문자열 안에서 문자로 검색하기
39.2 문자열의 오른쪽 끝부터 문자로 검색하기
39.3 문자열 안에서 문자열로 검색하기
39.4 퀴즈
39.5 연습문제: 문자열 안에서 문자로 검색하기
39.6 연습문제: 문자열의 오른쪽 끝부터 문자로 검색하기

Unit40 문자열 자르기
40.1 문자를 기준으로 문자열 자르기
40.2 문자열 포인터 자르기
40.3 날짜와 시간 값 자르기
40.4 자른 문자열 보관하기
40.5 퀴즈
40.6 연습문제: 문자열 자르기

Unit41 문자열과 숫자를 서로 변환하기
41.1 문자열을 정수로 변환하기
41.2 특정 진법으로 표기된 문자열을 정수로 변환하기
41.3 문자열을 실수로 변환하기
41.4 퀴즈
41.5 연습문제: 문자열을 10진 정수로 변환하기

Unit42 회문 판별과 N-gram 만들기
42.1 회문 판별
42.2 N-gram 만들기
42.3 연습문제: 정수 회문 판별하기
42.4 연습문제: 4-gram 만들기

Unit43 자료형 변환하기
43.1 기본 자료형 변환하기
43.2 포인터 변환하기
43.3 void 포인터 변환하기
43.4 퀴즈
43.5 연습문제: 삼각형의 넓이 구하기
43.6 연습문제: 포인터 변환하기
43.7 연습문제: void 포인터 변환하기

Unit44 포인터 연산 사용하기
44.1 포인터 연산으로 메모리 주소 조작하기
44.2 포인터 연산과 역참조 사용하기
44.3 void 포인터로 포인터 연산하기
44.4 퀴즈
44.5 연습문제: 포인터 연산으로 메모리 주소 조작하기
44.6 연습문제: 포인터 연산과 역참조 사용하기

Unit45 함수 사용하기
45.1 Hello, world! 출력 함수 만들기
45.2 함수 선언과 정의 분리하기
45.3 함수 디버깅하기
45.4 퀴즈
45.5 연습문제: 함수 호출하기
45.6 연습문제: 함수 정의하기

Unit46 함수에서 반환값 사용하기
46.1 정수, 실수, 불 반환값 사용하기
46.2 포인터 반환하기
46.3 void 포인터 반환하기
46.4 퀴즈
46.5 연습문제: 게임 캐릭터 능력치 함수 만들기
46.6 연습문제: 문자열 포인터 반환하기
46.7 연습문제: 메모리 할당 함수 만들기

Unit47 함수에서 매개변수 사용하기
47.1 매개변수 사용하기
47.2 덧셈 함수 만들기
47.3 디버거에서 매개변수와 반환값 확인하기
47.4 퀴즈
47.5 연습문제: 문자 매개변수 사용하기
47.6 연습문제: 뺄셈 함수 만들기

Unit48 함수에서 포인터 매개변수 사용하기
48.1 포인터 매개변수 사용하기
48.2 void 포인터 매개변수 사용하기
48.3 이중 포인터 매개변수 사용하기
48.4 문자열 매개변수 사용하기
48.5 퀴즈
48.6 연습문제: 함수에서 반환값으로 값 한 개, 매개변수로 값 두 개 꺼내기
48.7 연습문제: 함수에서 행렬 만들기
48.8 연습문제: 문자열 매개변수 사용하기

Unit49 함수에서 배열 매개변수 사용하기
49.1 배열 매개변수 사용하기
49.2 2차원 배열 매개변수 사용하기
49.3 퀴즈
49.4 연습문제: 배열 매개변수 사용하기
49.5 연습문제: 단위행렬 만들기

Unit50 배열 정렬하기
50.1 거품 정렬 구현하기
50.2 퀵 정렬 함수 사용하기
50.3 퀴즈
50.4 연습문제: 거품 정렬 구현하기
50.5 연습문제: 퀵 정렬 함수 사용하기

Unit51 전역 변수 사용하기
51.1 변수의 범위 알아보기
51.2 전역 변수 선언하기

모의고사
정답 및 해설
찾아보기
더보기접기

저자

ㆍ지은이 남재윤

지은이 소개
마냥 컴퓨터가 좋아서 프로그래머의 길을 걷고 있다. 뭔가 아이디어가 떠오르면 그 자리에서 만들어보고, 새로운 프로그래밍 언어가 나올 때마다 어디에 어떻게 쓰면 좋을지 생각하며 행복한 고민에 빠진다. 수학과 천문학에도 관심이 많으며 각종 위키에서 관련 정보를 읽는 것이 취미이다.

연관 프로그램

아래 프로그램은 길벗출판사가 제공하는 것이 아닙니다.
무료로 사용할 수 있는 정보를 안내해 드리니, 지원이 필요하면 해당 프로그렘 제작사로 문의해 주세요.