반응형
- 정보처리기사실기c언어
- _01_교재
- 수업001_변수와출력.cpp
- 이 형태가 기본 구조이다.
- #include
- => import 와 비슷하다.
- 포함하다.
- <stdio.h>을 포함한다.
- <> : 꺽쇠는 내부에 있는 파일
- std는 파일 이름
- 내부에 있는 파일을 나는 포함시킬꺼야.
- c 언어는 출력문이 printf( ) ; 이다.
- #include <stdio.h> 이게 없으면 printf(); 를 못 쓴다.
- 자바스크립트로 치면. 도큐먼트 라이트
#include <stdio.h>
int main(void) {
return 0;
}
#include <stdio.h>
int main(void) {
//여기다가 코딩을 한다.
int a = 1, b= 2, c = 3;
//이렇게 한 줄로 쓸 수 있다.
//출력문
printf("%d\n", a);
printf("%d\n",b);
printf("%d %d %d\n",a,b,c); //한줄로 적을 수 있다.
//갯수가 안 맞으면 안된다.
//"%d" => decimal의 약자 . 숫자. 정수 . 10진수
//\n => 줄바꿈
//int a = 1;
//int b = 2;
//int c = 3;
return 0;
}
#include <stdio.h> // printf 를 사용할수있게 해준다.
int main(void) { // c언어는 main 함수를 필수로 만들어야한다.
// int 는 정수형 자료형이다.
// = 은 대입연산자이다.
// ; 은 문장의 마침표이다.
// c언어는 사용하는 모든변수를 미리선언하고 코딩한다.
//int a = 1; int b = 2; int c = 3;
int a = 1, b = 2, c = 3; // 변수는, 로 연속으로 선언할수있다.
printf("%d\n", a); // 각자 출력
printf("%d\n", b); // \n은 줄바꿈
printf("%d\n", c);
printf("%d %d %d\n", a, b, c); // 한줄로 출력
return 0;
}
- 수업001_변수와출력02.cpp
#include <stdio.h>
int main(void) {
int a, b; //둘다 1이 들어갔다.
a = b = 1; // 한번에 값저장하기
printf("%d %d\n", a, b);
return 0;
}
- 수업001_변수와출력03.cpp
- 자료형이 2가지가 나왔다.
- int 정수
- char 캐릭터 => 글자 1개
- c언어 글자 1개는 ' ' (홑따음표) .작은 따옴표
#include <stdio.h>
int main(void) {
//int가 아니라. char이다.
char a = 'a';
//char b = '가'; //한글 '가'는 한글자가 아니다. 두 글자다. 그래서 에러가 난다.
// 한글 은 2byte이기때문에 정상출력되지않는다.
// 추후 배열로 해결한다.
//printf("%c %c\n", a, b);
printf("%c\n", a);
return 0;
}
- 수업001_변수와출력04.cpp
#include <stdio.h>
//랜덤을 쓸려면 임포트를 2개를 더 해야 한다.
#include <stdlib.h>
// srand(); //스탠다드 라이브러리
#include <time.h> // time(NULL)
int main(void) {
srand(time(NULL)); //랜덤을 출력할 수 있다.
int n = rand() % 6 + 1; // 1~6
//rand() % 6 => 0~5
printf("%d ", n);
return 0;
}
- 수업001_변수와출력05.cpp
#include <stdio.h>
int main(void) {
const int n = 3;
//int 앞에 const를 붙일 수 있다.
//const 상수가 된다.
//자바의 fianl과 같다. //final int a = 3; //값을 못 변경
// const 는 값변경이 불가능하다.
//n = 5; //에러남
printf("%d ", n);
return 0;
}
- 수업001_변수와출력06.cpp
#include <stdio.h>
// 전역변수
int n = 20;
int arr[] = {10,20,30};
//변수가 밖에 적을 수도 있다.
int main(void) {
//나중에 함수가 더 생기면 차이가 있다.
//지금은 함수가 1개밖에 없어서 별 차이가 없다.
printf("%d\n" , n);
printf("%d %d %d\n" , arr[0] , arr[1] , arr[2]);
return 0;
}
- 수업001_변수와출력07.cpp
#include <stdio.h>
// (전처리기)
// 보통상수를 표현할때 사용한다.
// 일반적으로 대문자로 표기해서 알아보기쉽게 한다.
#define SIZE 3
//이것이 const int SZIE = 3;와 같다고 생각하면 된다.
//여기는 마지막에 ;(세미콜론)붙이지 않는다.
int main(void) {
//const int SZIE = 3;
//못 바꾼다고 생각하면 된다.
printf("%d \n" , SIZE);
return 0;
}
- C언어가 왜 망했나?
- 너무 이상한게 많다.
- 그래서 망했다.
- 70년대 부터 사용해서 기능이 너무 많다.
- 개발자들이 너무 어려워 한다.
- 이 세상에 라이브러리는 C언에 다 있다.
- 수업002_생명주기.cpp
#include <stdio.h>
int main(void) {
int a = 1, b = 2, c = 3;
printf("%d %d %d\n", a, b, c);
//출력 1 2 3
{ //중괄호 안에 있으면 죽는다.
int a = 4;
// 위에 int a가 있지만 만들 수 있다.
b = a;
printf("%d %d %d\n", a, b, c);
//출력 4 4 3
{
int c = 60;
a = c;
printf("%d %d %d\n", a, b, c);
//출력 60 40 60
}
}
//이렇게 시험문제를 낸다.
printf("%d\n",a);
//출력 1
return 0;
}
- 수업003_연산자.cpp
#include <stdio.h>
int main(void) {
int a, b;
a = 2;
b = 1;
int c1 = b + a;
int c2 = b - a;
int c3 = b * a;
int c4 = b / a; // 정수형은 몫이 저장된다.
// 1 /2 => 0.5 => 0이 저장됨. 몫
int c5 = b % a; //1 % 2 => 1
printf("%d\n", c1);
printf("%d\n", c2);
printf("%d\n", c3);
printf("%d\n", c4);
printf("%d\n", c5);
return 0;
}
- 수업004_증감연산자.cpp
- 증감연산자가 c 언어에서 악명이 높다.
#include <stdio.h>
int main(void) {
/*
증감연산자
앞증가 연산자 ++a;
뒷증가 연산자 a++;
앞감소 연산자 --a;
뒷감소 연산자 a--;
[1] 앞 증감연산자는 = (대입연산자) 보다 우선순위가 높다.
[2] 뒷 증감연산자는 = (대입연산자) 보다 우선순위가 낮다.
*/
int a, b, c, d;
a = 1;
b = 2;
c = 10;
d = 20;
//뒷증가
printf("%d\n", a++);
//출력 1
//우선순위가 낮아서. 출력이 되고 그 이후에 증감이 된거다.
//출력보다 우선순위가 낮다.
//안 보이는데. 여기서 a=2가 된다.
printf("%d\n", a);
//출력 2
//2번째 출력했을때. 그제야 2가 나온다.
printf("%d\n", b--);
//출력후 b가 1이 된다.
printf("%d\n", b);
//---------------------------------
//앞증가
printf("%d\n", ++c);
//출력 11
printf("%d\n", c);
//출력 11
printf("%d\n", ++d);
printf("%d\n", d);
return 0;
}
- 수업004_증감연산자02.cpp
#include <stdio.h>
int main(void) {
/*
증감연산자
앞증가 연산자 ++a;
뒷증가 연산자 a++;
앞감소 연산자 --a;
뒷감소 연산자 a--;
[1] 앞 증감연산자는 = (대입연산자) 보다 우선순위가 높다.
[2] 뒷 증감연산자는 = (대입연산자) 보다 우선순위가 낮다.
*/
int a, b;
a = 1; //a에 1이 들어갔다.
b = a++; //b = 1 , a = 2
//b한테 먼저 주고. 그 다음에 a가 2가 된다.
printf("%d %d\n", a, b);
// 출력 2 1
return 0;
}
- 수업005_변수선언.cpp
#include <stdio.h>
int main(void) {
int a = (10, 20);
printf("%d\n", a); // 20
int b = (10, (20, 30));
printf("%d\n", b); // 30
int c = (10, (20, 30) ,40 , 50);
printf("%d\n", c); // 50
//맨 뒤의 것이 저장이 된다.
return 0;
}
- _01_문제
- 문제002_생명주기.cpp
#include <stdio.h>
int main(void) {
int a = 1, b = 2, c = 3;
{
int b = 4, c = 5;
a = b;
{
int c;
c = b;
}
printf("%d %d %d\n", a, b, c);
//출력 4 4 5
}
return 0;
}
- 문제003_우선순위.cpp
#include <stdio.h>
int main(void) {
int x = 7 / 2; // 몫 // 3
int y = 3 + 2 * x; //9
printf("%d", y); //9
return 0;
}
- 문제004_증감연산자.cpp
#include <stdio.h>
int main(void) {
int a, b;
a = 4 * (1 / 2); //0
//1 / 2 => 0
b = a++;
//0을 주고 증가됬다.
//b = 0, a = 1
printf("%d", b); //0
return 0;
}
- 문제004_증감연산자02.cpp
#include <stdio.h>
int main(void) {
int a = 5, b = 5;
a *= 3 + b++;
//우선순위
//1번 + => 8
//2번 *= => a = 40
//3번 b++ = > b = 6
printf("%d %d\n", a, b);
//40 6
return 0;
}
/*
[해설]
a = 5, b = 5
a *= 3 + b++;
[1] x = 3 + b; // 8
[2] a = a * x; // 40
[3] b = b + 1; // 6
*/
- 문제004_증감연산자03.cpp
#include <stdio.h>
//굉장히 중요함. 문제
//1번 &&2번.
//는 1번이 false이면 2번을 하지 않는다.
//1번 || 2번 .
//은 1번 true이면 2번을 안한다.
//c언어는 true false가 없다.
//그냥 1과 0이다.
int main(void) {
int a = 3, b = 4, c = 2;
int r1, r2, r3;
r1 = b <= 4 || c == 2; //r1 = 1
//b <= 4 이게 맞으면 . r1에 1이 저장됨. => true이기 때문에
//c == 2 은 동작을 안 한다. (true이기 때문에 동작x )
r2 = (a > 0) && (b < 5); //r2 = 1
//(a > 0) 사실 true
//(b < 5) 동작함
printf("%d\n", r1 + r2);
//2
return 0;
}
- 문제004_증감연산자04.cpp
#include <stdio.h>
int main(void) {
int a = 3 + 5, b = 1, c;
int ap, bp;
ap = a++; //ap => 8 , a = 9
bp = ++b; //b = 2, bp = 2
b = 3 * (ap == 8);
//ap == 8 ture 그래서 1
//b = 3
c = 5 * (ap != 8);
// ap != 8 false = 0
//c = 0
printf("%d %d %d %d %d\n", a , b , c, ap, bp);
// 9 3 0 8 2
return 0;
}
- 문제005_변수선언.cpp
- 맨 뒤의 것이 저장 됨
#include <stdio.h>
int main(void) {
int a = (10, 20);
printf("%d\n", a);
int b = (10, 20, 30);
printf("%d\n", b);
int c = (10, (20, 30), 40);
printf("%d\n", c);
return 0;
}
반응형
'코딩 > C언어' 카테고리의 다른 글
| 수업014_함수 ~ 수업015_함수와배열02 , 문제014_함수 ~ 문제015_함수와배열(1~3) (1) | 2025.07.03 |
|---|---|
| _11_교재 => 수업012_배열 ~ 수업012_배열03 , _11_문제 => 문제012_배열 ~ 문제012_배열08 (1~3) (1) | 2025.07.01 |
| c언어 해설 (0) | 2025.07.01 |
| _11_교재 => 수업011_반복문 ~ 수업011_반복문03 , _11_문제 => 문제011_반복문 ~ 문제011_반복문12(1~3) (1) | 2025.06.27 |
| c언어 - _01_교재=> 수업006_조건문 ~ 수업010_스위치02 , _01_문제 => 문제006_조건문 ~ 문제010_스위치02 (1~3) (1) | 2025.06.26 |