Difference between r1.26 and the current
@@ -1,5 +1,6 @@
[[TableOfContents]]
== 진행 ===== 변수 ===
* C 프로그램이 메모리에 올라갔을 때의 메모리 구조* 변수 선언과 초기화
* ''type'' ''variable_name''; 형태
@@ -15,11 +16,12 @@
* 값의 형태
* 값의 범위
* 기본 타입
* extra
* 문자열(char *)
* ASCII -> 그냥 숫자
{{{
#include <stdio.h>
* 값의 범위
* 기본 타입
* \[unsigned] char, \[unsigned\] int, float, double, +(long)
*{{{[unsigned] int, [unsigned] char, float, double, +(long)}}}
* char -> 실제로는 숫자가 들어감
* ASCII -> 그냥 숫자
* overflow, underflow* extra
* 문자열(char *)
#include <stdio.h>
@@ -32,10 +34,43 @@
}
}}}
* escape character
* expression
* printf와 scanf의 사용
}}}
* escape character
* 조건문
=== 연산자 ===
* 대입 (=)
* 관계 (>, <, ==, !=, >=, <=)
* 산술 (+, -, *, /, %)
* 증감 (++, --)
* 논리 (&&, ||, !)
* 조건 (? :)
* 비트 논리 (&, |, ^, ~)
* 비트 이동 (<<, >>)
* 대입 연산자 + 다른 연산자
(+=, -=, *=, /= ...)
=== 조건문 ===
* if, if-else, if-else if-else* expression
* 비교 연산자(<, >, <=, >=, ==, !=)
* 관계 연산자(<, >, <=, >=, ==, !=)
* 논리 연산자를 이용한 expression의 연결
* if문 중첩
* switch-case * break;를 쓰지 않는 것으로 복수의 case를 동시 처리
=== printf와 scanf의 사용 ===
* 'f'의 뜻
* scanf의 '&'
== 과제 =={{{
1. 값을 두 개 입력받아서 나누어주는 프로그램. 단, 나누는 수가 0이면 Not Available이라는 문자를 출력하도록 함.
2.1. 값을 문자로 입력받아서 입력받은 문자를 입력하는 프로그램
2.2. 입력을 소문자로 가정하고, 소문자 입력을 받았을 때 대문자로 출력하는 프로그램
2.3. 입력이 대문자 or 소문자라고 가정하고, 대문자 입력을 받으면 소문자로, 소문자 입력을 받으면 대문자로 출력하는 프로그램
3. 키, 몸무게, 성별을 입력받아서 BMI 지수를 계산한 후 저체중, 표준체중, 과체중인지 판단하는 프로그램
* BMI 계산 식 : 체중 / (키 * 키)
* 체중 판정
* 남자
* BMI < 20 - 저체중
* 20 < BMI < 25 - 표준체중
* BMI > 25 - 과체중
* 여자
* BMI < 18.5 - 저체중
* 18.5 < BMI < 20 - 표준체중
* BMI > 20 - 과체중
}}}
1.1. 변수 ¶
- C 프로그램이 메모리에 올라갔을 때의 메모리 구조
- 변수 선언과 초기화
- type variable_name; 형태
- type variable_name = value; 형태
- type variable_name; 형태
- 변수 이름(identifier) 제약
- 상수
- const를 이용한 상수와 #define을 이용한 상수
- 전처리기? 아마 나중에 다뤄야 할 듯
- 전처리기? 아마 나중에 다뤄야 할 듯
- 왜! const를 쓰는가? -> 설명해 줘도 와 닿지는 않을듯
- const를 이용한 상수와 #define을 이용한 상수
- 타입
- 일반론
- 크기
- 값의 형태
- 값의 범위
- 크기
- 기본 타입
[unsigned] int, [unsigned] char, float, double, +(long)
- char -> 실제로는 숫자가 들어감
- ASCII -> 그냥 숫자
- ASCII -> 그냥 숫자
- char -> 실제로는 숫자가 들어감
- overflow, underflow
- extra
- 문자열(char *)
#include <stdio.h> int main(int argc, char *argv[]) { int temp = 0; scanf("%d", &temp); // enter 65 to temp printf("%c\n", temp); // print 'A' return 0; }
- 문자열(char *)
- 일반론
- escape character
1.2. 연산자 ¶
- 대입 (=)
- 관계 (>, <, ==, !=, >=, <=)
- 산술 (+, -, *, /, %)
- 증감 (++, --)
- 논리 (&&, ||, !)
- 조건 (?
- 비트 논리 (&, |, ^, ~)
- 비트 이동 (<<, >>)
- 대입 연산자 + 다른 연산자
(+=, -=, *=, /= ...)
1.3. 조건문 ¶
- if, if-else, if-else if-else
- expression
- 관계 연산자(<, >, <=, >=, ==, !=)
- 논리 연산자를 이용한 expression의 연결
- 관계 연산자(<, >, <=, >=, ==, !=)
- if문 중첩
- expression
- switch-case
- break;를 쓰지 않는 것으로 복수의 case를 동시 처리
- break;를 쓰지 않는 것으로 복수의 case를 동시 처리
2. 과제 ¶
1. 값을 두 개 입력받아서 나누어주는 프로그램. 단, 나누는 수가 0이면 Not Available이라는 문자를 출력하도록 함. 2.1. 값을 문자로 입력받아서 입력받은 문자를 입력하는 프로그램 2.2. 입력을 소문자로 가정하고, 소문자 입력을 받았을 때 대문자로 출력하는 프로그램 2.3. 입력이 대문자 or 소문자라고 가정하고, 대문자 입력을 받으면 소문자로, 소문자 입력을 받으면 대문자로 출력하는 프로그램 3. 키, 몸무게, 성별을 입력받아서 BMI 지수를 계산한 후 저체중, 표준체중, 과체중인지 판단하는 프로그램 * BMI 계산 식 : 체중 / (키 * 키) * 체중 판정 * 남자 * BMI < 20 - 저체중 * 20 < BMI < 25 - 표준체중 * BMI > 25 - 과체중 * 여자 * BMI < 18.5 - 저체중 * 18.5 < BMI < 20 - 표준체중 * BMI > 20 - 과체중