본문 바로가기
자격증

[1일차] 정보처리기사 실기 프로그래밍 언어 활용 - C언어

by lovedeveloping 2024. 9. 26.
반응형

교재 참고
교재 참고

C언어 학습

약 3주 정도 남은 정보처리기사 실기 시험 이제 졸업 학기라 부랴부랴 공부해야 합니다. 수제비 카페에서 어떤 분이 3주 계획을 적어주신 게 있어서 그대로 따라 해보려고 합니다. 총 2 회독하는 것이고 프로그래밍 과목부터 시작입니다.

오늘 공부한 C언어를 저의 나름대로 정리 해보겠습니다.

자료형

자료형 유형

유형 설명 선언 형식
문자(Character) 문자 하나를 저장할 때 사용하는 자료형 char
정수(Integer) 정숫값을 저장하고자 할 때 사용하는 자료형 int
부동 소수점(Floating Point) 소수점을 포함하는 실숫값을 저장하고자 할 때 사용하는 자료형 float, double

식별자

식별자 규칙

구분 규칙 사용 예시 불가능 예시
사용 가능 문자 영 대문자/소문자, 숫자, 밑줄 C, num, _, _c !d, @d
변수 사용 규칙 첫 자리에 숫자 불가능
중간에 공백 사용 불가능
teacher_name teacher name
변수 의미 부여 예약어 사용 불가능 If, For float, double, int, if

변수

변수 선언

초기화하지 않는 경우 자료형 변수명;
초기화하는 경우 자료형 변수명 = 초깃값;

전역 변수(Global Variable)

  1. 어떤 블록에도 속하지 않는 변수이다.
  2. 전역 변수는 아무 곳에서나 사용할 수 있다.
  3. 프로그램이 실행되면 변수가 생성되고 종료되면 사라진다.

지역 변수(Local Variable)

  1. 지역 변수는 블록 내에서 선언한다.
  2. 해당 블록 안에서만 사용할 수 있다.

static 변수(Static Variable)

  1. 블록 내외부 상관없이 선언할 수 있는 변수이다.
  2. 변수 선언할 때 static 키워드를 붙여야 한다.
  3. 전역변수와 마찬가지로 실행할 때 생성 종료되면 사라진다.
  4. 전역 변수로 생성할 경우 프로그램 전체에서 사용가능하지만, 블록 내에서 선언할 경우 블록 내에서만 사용 가능하다.

표준 입출력 함수

이스케이프 문자를 이용한 출력

종류 의미 설명
\n New Line 커서를 다음 줄 앞으로 이동
\t Tab 커서를 일정 간격만큼 수평 이동

포맷 스트링을 이용한 변수 출력

유형 설명 의미 설명
문자 %c Character 문자 1글자에 대한 형식
문자열 %s String 문자가 여러 개인 문자열에 대한 형식
정수 %u Unsigned Decimal 부호 없는 10진수 정수
%d Decimal 10진수 정수
%o Octal 8진수 정수
%x
%X
Hexa Decimal 16진수 정수
%x일 경우 영어로 표기되는 부분이 소문자로, %X일 경우 영어로 표기되는 부분이 대문자로 표시
부동 소수점 %e
%E
Exponent 지수 표기
%e눈 자수 표현을 e로 하고, %E는 지수 표현을 E로 한다.
%f Floating Point 부동 소수점 표기
%lf Long Floation Point 부동 소수점 표기

포맷 스트링을 이용한 변수 상세 출력

포맷 스트링 설명
[-] [-]를 붙이면 왼쪽 정렬
[-]를 붙이지 않고 [전체자리수]가 적혀 있다면 오른쪽 정렬
[0] [0]을 붙이면 전체 자릿수에서 앞에 빈공간 만큼 0으로 채운다.
[전체자리수] [전체자리수]만큼 공간이 확보됨
소수점(.)도 한 자릿수로 포함됨
[소수점자리수] [소수점자리수]만큼 소수점이 출력됨
실수형일 때만 적용

scanf 함수 VS  gets 함수

scanf 함수는 키보드로 입력받은 문자열에서 지정된 포맷 스트링을 데이터를 얻는다.
gets 함수는  키보드로 입력받은 문자열을 문자형 배열에 저장하는 함수이다.

연산자

연산자 종류

종류 설명 연산자
증감 연산자 피연산자를 1씩 증가 혹은 1씩 감소시킬 때 사용 ++, --
산술 연산자 산술식을 구성하는 연산자 +, -, *, /, %
시프트 연산자 비트를 이동시키는 연산자 <<, >>
관계 연산자 두 피연산자 사이의 크기 비교 >, <, >=, <=, ==, !=
비트 연산자 비트 단위로 논리 연산할 때 사용 &, |, ^, ~
논리 연산자 연산자 사이의 논리적인 관계 정의 &&, ||, !
삼항 연산자 물음표(?)와 클론(:) 사이의 값을 적고 조건식에 대한 참 거짓을 반환 (조건식)? (참) : (거짓)
대입 연산자 변수에 값을 대입할 때 사용하는 연산자 =, +=, -=, *=, /=, %=

연산자 순위 외우기(두음)

증산시 관비 논삼대
- 주의 -
단항 연산자 ' ! ', 비트 연산자 ' ~ '는 2순위 

조건문

if 문

if(조건문) {
  명령문;
}

else if(조건문) {
  명령문;
}

else {
  명령문;
]

switch 문

switch(식){
case 값:
  명령문;
  break;
  
default:
  명령문;
}

반복문

while 문

while(조건문){
  명령문;
}

do - while 문

do{
  명령문;
} while(조건문);

for 문

for (초기식; 조건식; 증감식) {
 명령문;
}

명령문;

배열(Array)

1차원 배열

구분 선언
초기값이 없는 경우 자료형 배열명[배열_요소_개수];
초깃값이 있는 경우 자료형 배열명[배열_요소__개수] = {초깃값};

2차원 배열

구분 선언
초깃값이 경우 자료형 배열명[행의 개수][열의 개수];
초깃값이 있는 경우 자료형 배열명[행의 개수][열의 개수] = {초깃값};

구조체 선언

구조체 선언

struct 구조체명 {
  자료형 변수명1;
  자료형 변수명2;
  ...
}

struct 구조체명 구조체변수;

함수

main 함수

void main int main
void main( ) {
  return;
}
int main( ) {
  return 반환값;
}
반환할 값이 없으므로 return;을 사용하거나 return 자체를 사용하지 않는다. int main( )일 경우 return 반환값;을 명시해주어야 한다.

사용자 정의 함수

자료형 함수명(자료형 변수명, ...) {
  명령어
  return 반환값;
}

매개변수 전달 방법

#include <studio.h>

int fn(int x, int y) { -> 매개변수
  ...
}

void main( ) {
  int i, j;
  ...
  fn(i, j); -> 전달인자
}
종류 설명
Call by Value 변수의 값을 넘겨주고, 이 값은 새로운 공간에 할당되어 사용하는 방식
Call by Reference 변수의 값이 아닌 변수가 사용 중인 메모리 공간의 주소를 넘겨주는 방식

재귀 함수

재귀 함수는 함수 자신이 자신을 부르는 함수이다.

자료형 함수명(자료형 변수명, ...) {
  ...
  함수명(변수명, ...)
  ...
  return 반환값;
}

문자열 함수

strcat: 문자열끼리 연결하는 함수

strcat(dest,src) src의 문자열을 dest 문자열 뒤에 붙인다.
strncat(dest, src, maxlen) src의 문자열에서 maxlen의 개수만큼 dest 문자열 뒤에 붙인다.

 

strcpy: 문자열을 복사하는 함수

strcpy(dest, src) src의 문자열을 dest 문자열에 복사
strcpy(dest, src, maxlen) src의 문자열에서 maxlen의 개수만큼 dest 문자열에서 복사

 

strcmp: 문자열을 비교하는 함수

strcmp(s1, s2); s1, s2의 대소를 비교
strcmp(s1, s2, maxlen) maxlen 길이만큼만, s1 s2의 대소를 비교

 

strlen:문자열의 길이를 알려주는 함수

strlen(s) s의 길이를 알려준다.

 

strrev: 문자열을 거꾸로 뒤집는 함수

strrev(str) str 내에 문자열을 거꾸로 뒤집는다.

 

strchr: 문자열 내에 일치하는 문자가 있는지 검사하는 함수

strchr(str, c) str 내에 c가 존재하는지 알려준다.

수학 함수

sqrt: 양의 제곱근을 계산하는 함수

sqrt(n) 루트(n)의 값을 계산한다.

 

ceil: 소수점 올림 함수

ceil(n) 소수점 올림 Ex)ceil(1.1) = 2

 

floor: 소수점 내림 함수

floor(n) 소수점 내림 Ex) ceil(1.1) = 1

유틸리티 함수

rand(Random): 임의의 값을 생성하는 함수

rand( ); 임의의 정숫값 1개를 생성

 

srand(Seed Random): 난수 알고리즘에 사용하는 seed를 정해주는 함수

srand(seed) seed 값에 따라 난수 발생기를 초기화됐다.

 

time(NULL): 현재 시간을 가져오는 함수

time(NULL) time 함수에 파라미터를 NULL로 하면 현재 시간을 리턴

포인터

포인터 선언

자료형* 포인터_변수명 = $변수명;

배열과 포인터

구분 코드
배열의 i번지 주소 배열+i == &배열[i];
배열의 i번지 값 *(배열+i) == 배열[i];

구조체와 포인터

일반 구조체 변수로 접근할 때는 ' . '으로 접근하고, 구조체 포인터로 접근할 때는 ' -> ' 로 접근한다.

함수 포인터

함수 포인터는 함수의 주소를 저장하고, 해당 주소의 함수를 호출하는 데 사용하는 포인터

리턴타입(*함수_포인터)(함수 파라미터);

 

 

위 내용까지가 1일차 C언어에 대한 정리였습니다. 생각보다 정리할게 많네요.. 하하 

반응형