초보자를 위한 C언어 200제
저자

강병익

저자:강병익
한양대학교전자공학과에서학사,석사,박사학위를취득하고미국캘리포니아산호세주립대학교에서방문교수를지냈다.1991년부터건양대학교의료IT공학과교수로재직하며30년이상C,C++,C#,알고리즘등을강의하고있다.현재관심분야는스마트헬스케어와IoT분야이다.저서로는《초보자를위한C#200제(2판)》,《실무자를위한C언어100제》가있다.

목차

파트1입문,C언어기초다지기
001가장작은C프로그램
002Hello,World!
003printf와이스케이프시퀀스
004printf의형식문자열
005변수와상수
006상수를사용하여원의면적계산하기
007자료형의크기와sizeof연산자
008float와double
009bool형과조건연산자
010scanf함수로값을읽어오기
011getchar함수로한문자입력받기
012입력버퍼링문제
013printf에서자릿수의처리
014printf에서왼쪽,오른쪽으로정렬하여출력하기
015형식지정자를사용하여성적표출력하기
016정수를2진수,8진수,16진수로표현하고출력하기
017두변수의값을교환하기
018세변수의값을교환하기
019산술연산자를사용하여출석점수계산하기
020나누기와나머지연산자를사용하여버튼의위치계산하기
021조건연산자
022조건연산자로출력하기
023관계연산자
024논리연산자
025문자와문자열
026scanf함수를이용한문자열의입력
027fgets함수를이용한문자열의입력
028한단어와한줄의입력처리
029학생정보입력하고출력하기
030if문의사용법
031문장블록
032홀수와짝수판별하기
033학점계산하기
034윤년과평년판별하기
035소득세가적용된급여계산하기
036switch문사용하기
037switch문사용한학점계산
038태어난계절출력하기
039switch문을사용하여다양한도형의면적계산하기
040switch문을사용한화씨와섭씨
041사칙계산기만들기
042근의공식으로이차방정식의해구하기
043BMI계산하고비만도출력하기
044정수나눗셈으로시간을시,분,초로변환하기
045#define사용하기
046두수중최댓값을구하는매크로
047비트연산자사용하기
048비트연산자로마스킹하기
049비트시프트
050비트XOR를사용한암호화
051증가연산자와감소연산자
052대입연산자와복합대입연산자
053세가지반복문사용하기
054조건연산자를사용해서한줄에10개씩숫자출력하기
0551에서100까지숫자더하기
0561에서100까지홀수와짝수의합구하기
057배수의합계산하기
058팩토리얼계산하기
059지수계산하기
060실수의이진화오차와정밀도비교
061온도변환하기
062소수판별하기
063약수출력하기
064ASCII코드출력하기
065구구단출력하기
066원주율의계산
067무한루프와break
068무한루프활용하기
069이중반복문으로구구단출력하기
070이중반복문으로구구단을가로방향으로출력하기
071곱셈표출력하기
072nxm사각형그리기
073숫자삼각형출력하기
074숫자역삼각형출력하기
075이중반복문으로피라미드출력하기①
076이중반복문으로피라미드출력하기②
077이중반복문으로피라미드출력하기③
078부분합의합계산하기
0791000까지의소수를출력하고몇개인지출력하기
080영문소문자체크하여출력하기
081메뉴선택프로그램만들기

파트2초급,배열·문자열완전정복
082배열의초기화와배열원소의출력
083초기화하지않은배열
084배열에서최댓값과최솟값찾기
085배열에서두번째큰값찾기
086배열에저장된값의합계와평균
087배열에저장된짝수와홀수의합
088배열의홀수인덱스와짝수인덱스에저장된값의합
089문자열과문자배열을사용할때주의할점
090버퍼오버플로우문제
091문자열함수를위한라이브러리
092문자열의길이구하기(strlen함수)
093문자열의복사(strcpy함수)
094복사할문자열의길이를지정하는문자열의복사(strncpy함수)
095문자열의연결(strcat함수)
096지정한길이만큼문자열을연결하기(strncat함수)
097학년,학번,이름을하나의문자열로연결하여출력
098문자열의비교
099세개의문자열을정렬하여출력하기
100문자열을뒤집어서출력하기
101부분문자열찾기
102부분문자열모두찾기

파트3중급,함수·재귀·수학알고리즘
103사용자정의함수의사용법
104함수의선언과정의
105함수를이용하여사각형그리기
106일반함수와인라인함수
107단어의개수를계산하기
108한글을포함하여단어의개수계산하기
109영문대소문자의변환
110문자열뒤집기
111문자열뒤집기함수를직접구현하기
112큰숫자를세자리마다쉼표로구분하여출력하기
113함수를이용하여세숫자중가장큰수찾기
114함수를이용하여세숫자중중간값찾기
115정수데이터의비트패턴출력하기
116비트XOR연산을이용한패리티비트의생성
117시저암호
118회문(Palindrome)판단하기
119재귀함수와팩토리얼계산
120팩토리얼계산에서오버플로우감지하기
121큰수의사용과팩토리얼의계산
122피보나치수열의계산
123동적프로그래밍기법을사용하는피보나치수열의계산
124반복문과재귀함수를이용한2진수출력하기
125반복적인이진탐색
126재귀적인이진탐색
127하노이의탑
128유클리드알고리즘으로최대공약수구하기
129랜덤값생성하기
130중복되지않는랜덤숫자생성하기
131셔플알고리즘으로중복되지않는랜덤숫자생성하기
132로또번호생성하기
133카드한벌을무작위로섞어서출력하기
134화투한벌을무작위로섞어서출력하기
135범위내의소수를모두찾아주기
136에라토스테네스의체를이용한소수찾기

파트4활용,포인터·배열·구조체심화
137포인터의기초
138배열과포인터
139포인터의연산
140포인터끼리의뺄셈연산
141값에의한호출과참조에의한호출
142포인터를이용한두변수의값교환
143포인터배열을이용한문자열정렬
1441차원배열을함수의매개변수로전달하는방법
1452차원배열을함수의매개변수로전달하는방법
146배열포인터와그활용
147이차원배열로행렬의합을구하기
148이차원배열로행렬의곱을구하기
149전치행렬구하기
150행렬의스칼라곱
151이차원배열을이용한성적처리
1523차원배열을이용한농구팀별선수점수관리프로그램
153동적메모리할당과해제
154동적메모리를활용한평균계산기
155사용자입력문자열리스트만들기
156문자열탐색함수들의비교와활용(strcspn,strspn,strchr,strtok)
157입력받은전화번호를숫자로만저장하기
158동적메모리할당으로단위행렬구하기
159동적메모리를활용한행렬덧셈프로그램
160버블정렬
161선택정렬
162퀵정렬의구현
163함수포인터
164함수포인터배열로계산기만들기
165qsort()함수로정렬하기
166qsort()함수로문자열배열정렬하기
167qsort()함수로상품구조체배열정렬하기
168학번에서학과번호추출하기
169학과별수강생수누적하기

파트5실무,파일처리·데이터관리프로젝트
170파일입출력과perror()로오류메시지출력하기
171실패한파일열기시에러메시지를로그로저장하기
172fprintf()와fscanf()를이용한텍스트파일저장과읽기
173fgets()와fputs()를사용한줄단위텍스트파일입출력
174문자단위로파일복사하기(fgetc()/fputc())
175구조체배열을텍스트파일로저장하고다시읽기
176fwrite()와fread()를이용한바이너리파일저장과읽기
177fwrite()와fread()를이용한파일복사하기
178실행시간측정하기
179파일크기측정하기
180time_t를활용한시간저장과출력
181strftime()함수로날짜와시간포맷지정하기
182생애시계만들기
183텍스트vs바이너리파일저장차이점과선택기준
184온도,습도,조도를하나의숫자로인코딩하기
185비트인코딩된센서데이터를파일에저장하고읽어오기
186센서데이터를시간정보와함께파일에저장하고출력하기
187메달수로국가랭킹정하기(구조체)
188sine함수의그래프를늘려서그리기
189sine함수의텍스트기반그래프그리기
190주소록만들기
191주소록관리프로그램CRUD기능추가
192주소록관리프로그램(바이너리파일버전)
193주소록관리프로그램(바이너리파일+동적메모리버전)
194CSV파일로저장하는성적관리프로그램
195저장방식을지정하는성적관리프로그램
196파일기반단어분석기
197한글포함단어분석기
198메뉴기반파일단어분석기(한글포함)
199To-DoList프로그램
200파일저장및날짜별분류기능을갖춘To-DoList프로그램

출판사 서평

컴퓨터의언어로생각하는법을배우는C언어

AI가코드를대신짜주는시대라고해서이과정을건너뛸수는없다.오히려지금이야말로,도구가만들어낸코드를읽고판단하고수정할수있는사람이필요한시대이다.AI는코드를만들어줄수있지만,그코드가옳은지그른지를판단하는눈은학습자스스로가길러야한다.그판단력은문법을외운다고생기는것이아니고,직접부딪히고실패하며쌓아야하는것이다.
이책은먼저저자가알려주고싶은네가지포인트로시작하며그여정을단단하게받쳐준다.우선초보자가반복적으로저지르는실수30가지를유형별로정리해,흔한함정을미리알고시작할수있도록했다.오류유형별디버깅가이드는컴파일오류부터런타임오류,논리오류까지각각의해결절차를체계적으로안내해,막히는순간마다어디서부터점검해야할지방향을잡아준다.C언어의표준흐름과실무적용기준도함께정리해,어떤환경에서도흔들리지않는코드를작성하는기준을세울수있다.마지막으로,시대에맞춰AI도구를정답생성기가아닌학습파트너로활용하는구체적인방법도담았다.문제를풀기전에이부록을먼저읽는것만으로도,혼자공부하는방향이달라질것이다.
프로그래밍언어를C언어로시작하는이유는분명하다.탄탄하게쌓은기초는배신하지않는다.