두배로

시험 안내 › 정보처리기사 › 실기 개념서

2장. C 언어

정보처리기사 실기 개념서 · 1부. 프로그래밍 · 절 10개

앱에서 전체 내용 보기

이 장에서 배우는 것

2-1. printf 서식 지정자

다루는 항목: %d / %5d / %-5d / %05d, %f / %.2f / %7.3f, %c / %s, %o / %x / %X, %e, %%

2-2. 배열과 포인터

배열 이름 a는 &a[0]과 같은 주소다. 포인터에 정수 k를 더하면 k칸(원소 k개) 뒤를 가리킨다 — 바이트 수가 아니다.

2-3. 2차원 배열과 포인터

int a[3][4]는 "int 4개짜리 행"이 3개 이어진 것이다. 메모리는 행 순서대로 일렬이다. a[1]은 1행(int 4개 배열)이라 식에서 int *(1행 첫 원소 주소)로 바뀌므로 int *p = a[1];이면 *(p +…

2-4. 문자열과 문자열 함수

strlen은 '\0' 앞까지의 글자 수(5), sizeof는 배열 전체 크기(10)

2-5. 구조체와 구조체 포인터

구조체를 함수에 값으로 넘기면 복사본이 바뀌고, 주소로 넘기면 원본이 바뀐다.

2-6. 함수 인자 전달 — 값 vs 주소, 이중 포인터

배열을 넘기면 첫 원소의 주소가 넘어가므로 함수 안에서 바꾼 값이 원본에 남는다.

2-7. 재귀 함수

재귀는 호출을 내려가며 쌓고, 돌아오며 계산한다. 시험지에 호출 트리나 "펼친 식"을 적는다.

2-8. 기억 클래스 — static·전역·지역

같은 이름이면 가장 안쪽 블록의 변수가 보인다(지역 g가 전역 g를 가린다).

2-9. switch 와 fall-through

case는 진입 위치일 뿐이다. break를 만날 때까지 아래 case들을 계속 실행한다.

2-10. 정렬·탐색 코드 읽기

버블 정렬은 회차마다 가장 큰 값이 맨 뒤로 확정된다. 선택 정렬은 회차마다 최솟값을 찾아 앞자리와 한 번 교환한다. "n회차 후 배열 상태"를 묻는 문제는 어느 정렬인지부터 판별한다.

그림·예제·문제와 함께 이어 보기