제2장 데이터형과 표준 입출력문 문봉근.

Slides:



Advertisements
Similar presentations
3. 자료형. 담당교수 : 이 성 우 C++ 프로그래밍 상수와 변수 (3) 1. 변수 (variable)  프로그램 수행 도중에 자료  변수를 위해 은 변하지 않음  선언 시에 반드시 그. ※ 저장 정보의 구성 ① 정보의 종류 ② 저장 값 ③ 저장 위치 int Num.
Advertisements

03 변수와 자료형 세종대학교 최옥경 교수 참고 : 한빛미디어 뇌를 자극하는 C, INFINITY Perfect C.
기본 자료형 순천향대학교 정보기술공학부 이 상 정. 자료형의 선언 컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 3 자료형 선언 기본 자료형문자형 char 정수형 int 실수형 float double 형없음 void.
멘토링 2 주차 장 프로그래밍을 위한 자바의 자료형  값이 변하지 않는 상수  메모리 기억공간인 변수.
C 프로그래밍 기초.
프로그래밍1 및 실습 (C언어) - 3장 기본자료형 (3.6부터 끝까지) -
제 3 장 변수와 자료형.
슬라이드 1~21까지는 각자 복습! 슬라이드 22부터는 수업시간에 복습
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
제 1장 C 언어의 소개.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
프로그래밍실습 제 18 강.
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
쉽게 풀어쓴 C언어 Express 제8장 함수 C Express Slide 1 (of 26)
쉽게 풀어쓴 C언어 Express 제18장 입출력과 라이브러리 함수 C Express.
4장: 자료형과 수식.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
제5장 제어명령
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
6장. printf와 scanf 함수에 대한 고찰
누구나 즐기는 C언어 콘서트 제4장 수식과 연산자.
Chapter 13 문자 데이터와 문자열 문자 데이터 문자열.
8장 포인터.
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
변수와 자료형.
C 7장. 배열과 문자열 #include <stdio.h> int main(void) { int num;
기초C언어 제3주 C프로그램 구성요소, 변수와 자료형 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
변수와 자료형.
내용 프로그래밍 언어(programming language) C 언어란?? C 언어 역사 C 언어 특징 C 프로그램의 구조
제 2 장 변수와 상수.
제 3 장 상수와 변수
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
4장 제어문 선택문: if 문, if – else 문, switch 문
4주차: Data Types and Functions
5장. 상수와 기본 자료형. 5장. 상수와 기본 자료형 5-1 C 언어가 제공하는 기본 자료형 자료형(data type) 기본 자료형 사용자 정의 자료형 int val; "선언할 변수의 특징을 나타내기 위한 키워드" 기본 자료형 기본적으로 제공이 되는 자료형 사용자.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
Chapter 2 Lexical Elements, Operators, and the C System
2019년 2월 24일 오후 4시 59분 제2장 표준 입출력 함수
자전거를 배우려면 안장에 올라가 페달을 밟아라.
Formatted Input/Output
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
제어문 & 반복문 C스터디 2주차.
Chapter 04 자료 유형.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터 프로그램 제2,3장 간단한 C 프로그램 김 문 기.
Chapter 04. 데이터의 표현과 연산(Ⅱ).
Chapter 05. 입출력 함수.
실습과제 1(조건문, ) 표준입력으로 수축기 혈압을 입력 받아 그에 따른 적당한 표현을 화면에 출력하는 프로그램을 if-else 문을 이용하여 작성.
제 3장 데이터형과 연산자 Hello!! C 언어 강성호 김학배 최우영.
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
-Part1- 제7장 반복문이란 무엇인가.
-Part1- 제6장 자료형이란 무엇인가.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express Slide 1 (of 25)
C언어 프로그래밍의 이해 Ch03. 기본 자료형, 변수와 상수.
3주차: Control Flow and Others
박성진 컴퓨터 프로그래밍 기초 [03] 변수와 자료형 박성진
어서와 C언어는 처음이지 제16장.
Spring, 2019 School of CSE Pusan National University
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
printf("Global Korea\n");
개정판 누구나 즐기는 C언어 콘서트 제3장 변수와 자료형 출처: pixabay.
개정판 누구나 즐기는 C언어 콘서트 제12장 파일 입출력 출처: pixabay.
Presentation transcript:

제2장 데이터형과 표준 입출력문 문봉근

제2장 데이터형과 표준 입출력문 2.1 상수의 표현 2.2 변수의 표현 2.3 수식과 대입문 2.4 데이터형 제2장 데이터형과 표준 입출력문 2.1 상수의 표현 2.2 변수의 표현 2.3 수식과 대입문 2.4 데이터형 2.5 데이터의 형 변환 2.6 표준 입출력 함수 2.7 키보드 입력함수

C 언어에서 데이터는 상수(constant)와 변수(variable)로 나눈다. 상수와 변수는 크게 문자형, 정수형과 실수형의 데이터형을 가진다. 일반적으로 상수는 프로그램이 실행되기 전에 데이터형과 값을 미리 선언한 후에 실행 중에 그 값이 바뀌어지지 않는다. 반면 변수는 프로그램이 수행되기 전에 데이터형을 미리 선언을 한 후에 프로그램 실행 중에 변수에 값을 대입하여 프로그램이 수행할 수 있도록 허용하는 것을 말한다.

2.1 상수의 표현 상수는 프로그램 중에 그 값이 명시되어 변하지 않는 것으로서 문자(character) 상수, 정수형 상수, 실수형 상수, 문자열(character string) 상수가 있다. 실수형 상수에는 십진형 표기와 지수형 표기가 있다. 문자 상수는 ‘A’와 같이 ‘’(작은따옴표)로 묶어서 문자를 표현한다. 문자열 상수는 “ ”(큰따옴표)로 나타내는데, “1234”는 숫자가 아니라 문자열로 다룬다. 변수와 상수는 프로그램 시작부분의 선언부에 선언한다.

2.1.1 문자 상수 문자상수는 아스키(ASCII)코드의 한 문자를 표현을 위해 작은 따옴표로 묶어 나타낸다. 문자 상수는 한 바이트로 표현된다. ① 작은 따옴표로 묶인 문자이다. (예) ‘a’ ② 코드 값을 직접 작은 따옴표로 묶어서 표현한다 (예) ‘\246’, ‘\x9B’ 여기서, ‘\x’, ‘\X’ 16진 표현이다.

③ 아스키코드에서 특수문자, 제어문자 영역(0x00~0x19)은 문자상수 표현이 어려우므로 기능코드를 사용하여 문자 상수로 프로그램 중에 표현할 수 있다. 기능 코드들을 escape 문자라 하며 표 2.1과 같다.

표 2.1 escape 문자 escape 문자 기능 \a \b \f \n \r \t \v \' \" \\ \? \0dd \xhhh \0 Bell (alert) Backspace Formfeed New line Carriage return Horizontal tab Vertical tab Single quotation mark Double quotation mark Backslash Literal question mark ASCII character in octal notation ASCII character in hexadecimal notation Null character

2.1.2 정수 상수 ① 소수점이 없는 수치, 기본형은 signed int이다. ② 부호가 없는 정수 상수인 경우 수치 뒤에 ‘u’, ‘U’의 태그(tag)를 붙인다. ③ 수치의 크기가 int의 한계를 넘으면 자연히 long int로 인식한다. ④ 절대값이 작은 수치에 태그를 붙여 long int로 명시 가능하다. ⑤ unsigned long int형 상수에는 끝에 ‘ul’ 혹은 ‘UL’을 붙인다. ⑥ 정수표현에서 ‘0’은 8진 표현이고 ‘0x’이나 ‘0X’는 16진 표현이다.

표 2.2 정수 상수의 표현 표현법 사용 예 설명 10진 표현 123, 1024 숫자 0~9를 사용하고 0으로 시작할 수 없다. 8진 표현 016, 077 숫자 0~7를 사용하고 0으로 시작한다. 16진 표현 0x1A, 0XFF 숫자 0~7와 문자 A~F를 사용하고 0x으로 시작한다. unsigned 형 12U, 077u, 0XFFU ± 부호 없이 양수만 표현한다. 숫자 뒤에 u 또는 U를 붙인다.. 표현 범위는 2바이트(0~65535) 양수이다. long 형 077l, 0XFFL 숫자 뒤에 l 또는 L을 붙인다. 표현 범위는 4바이트이다.

2.1.3 실수 상수 ① 기본형은 double형이다. ② float형 상수는 ‘f’ 혹은 ‘F’의 태그를 사용한다. ③ long double형은 ‘l’나 ‘L’의 태그를 붙인다. ④ 십진형 표기와 지수형 표기가 있다.

10진수와 e(E)를 사용하여 표현한다. 3.14×10-3과 같다. 표 2.3 실수 상수의 표현 표현법 사용 예 설명 십진형 표현 12.345, .314, 소수점을 사용하여 표현한다. 지수형 표현 3.14E-3 10진수와 e(E)를 사용하여 표현한다. 3.14×10-3과 같다. 부동소수형 1.313f, 3.14E-3F 숫자 뒤에 f 또는 F을 붙인다. long double 형 1.313l, 3.14E-3L 숫자 뒤에 l 또는 L을 붙인다.

2.1.4 문자열 상수 문자열상수(character string constant)는 일련의 문자들의 모임을 말하며, 다음과 같이 표현된다. ① 문자열은 “ ”(큰따옴표)로 표현한다. ② 문자열은 아스키 문자들의 끝에 널(Null) 문자가 첨가된다. 예를 들어 “abc"는 3개의 문자와 문자열의 알리는 널 문자를 포함하므로 실제 크기는 4바이트이다. ③ “"는 문자열의 길이가 0인 널 스트링(null string)이다. 실제 문자열의 크기는 1바이트이다.

표 2.4 여러 가지 상수의 예 데이터 형 상수 예 char 'a', 'b', '\xb3', '\n' signed int 문자 상수 char 'a', 'b', '\xb3', '\n' 정수형 signed int signed long unsigned int unsigned long 132, -743, 0xf3c -74L, 2378l, -3000000000, 0xFFFFL 74u, 2378u, 0274u 74ul, 2378ul, 0x2e4ul 실수형 float double long double 0.1f, -20.5f, 2.f, 13e1F, -3.57E-02f 0.1, -20.5, 2., 13e1, -3.57E-02 0.1l, -20.5L, 2.l, 13e1L, -3.57E-02L 문자열 상수 "abc", "0", " ", "423"

2.2 변수의 표현 2.2.1 변수의 선언 프로그램 상의 명령문이 실행됨에 따라 값이 바뀔 수 있는 것을 변수(variable)라 한다. 변수는 항상 프로그램의 본문이 실행되기 전에 정의를 한 후 사용해야 한다. 변수 선언은 변수를 위한 기억공간을 할당하고 변수명과 변수가 가질 데이터형을 지정하는 것을 말한다.

변수를 정의하는 방법 문법 변수 정의는 변수가 가질 데이터형과 변수명을 위한 식별자를 지정한다. 데이터형 변수명[=초기값], [ 변수명[=초기값] ...] ; 변수 정의는 변수가 가질 데이터형과 변수명을 위한 식별자를 지정한다. 변수에 초기값을 지정하려면 ‘=’ 다음에 초기값이나 수식을 쓴다. 데이터형이 같은 변수들을 연속적으로 한꺼번에 정의할 수 있다.

변수명이나 상수명, 함수명 등으로 사용하는 식별자를 지정하는 규칙 ① 첫 문자는 영문자로 시작해야 된다. ② 변수명의 길이는 31자까지 유효하다. ③ 언더바(_)는 변수명의 일부로 사용할 수 있으며 첫 글자에도 올 수 있다. ④ 키워드(if, int, for, do....)는 변수명으로 사용할 수 없다. ⑤ 대문자와 소문자는 다른 문자로 구분한다.

올바른 변수의 예 잘못된 변수의 예 표 2.5 변수명의 바른 예와 틀린 예 avg_12 sum ptr1 ptr2 JUMSU key_item if → 예약어 사용 for → 예약어 사용 67kk → 숫자로 시작 +hit → 특수문자(+)사용 ?pp → 특수문자(?)사용 jan-item → 중간에 – 사용

변수명을 붙일 때 신경쓰자 ① 좋지 않은 예 ② 좋은 예 ③ 함수 예 int i, j; //FORTRAN의 i, j, k, l ,m, n char a, b, c; char *n, *q, *r; float x, y z; ② 좋은 예 char *CurrentDirectory; int TotalFileNumber; ③ 함수 예 int Factorial(int n) { if( n==0) return 1; else return (Factorial(n-1)*n); }

변수명을 붙일 때 신경쓰자(계속) ④ 접두사 접두사와 접미사를 사용하는 것은 의미를 명확하게 하고 또한 프로그램의 일관성을 부여할 수 있다. PutImage, SetColor, GetCurrenFileName, .... ⑤ 기타 ■ 의미가 어렵거나 분명하지 않은 단어는 사용을 되도록 피하도록 한다. HandleCalculation, ProcessData, ... ■ 루틴이 하는 일을 모두 설명할 수 있어야 한다. 루틴 이름과 관련이 없는 연산들은 그 루틴에 포함되어서는 안된다.

변수명을 붙일 때 신경쓰자(계속) ■ 루틴명의 길이는 최적의 평균 길이는 9~15자이다. 그러나 평균적으로 현실적인 이름은 15~20자가 적당하다. ■ 이름짓기를 위한 규칙을 정한다. 특히 여러 사람이 프로그래밍 프로젝트에 참가할 경우 이름짓기에 관한 규칙을 제정해야 한다. => 프로그램의 표준화 및 일관성

2.2.2 변수의 초기화 선언한 변수는 프로그램 실행도중에 수식에 따라 값이 변할 수 있다. 처음에 변수를 미리 초기화하여 사용할 수도 있다.

예제 2.6 다음 프로그램은 문자 변수를 선언하고, 계산하는 프로그램이다. 실행 결과를 분석하시오. #include <stdio.h> #include <conio.h> void main(void) { char c ='y'; int i, a=97; printf(" %c \n",c); printf(" %d \n",c); printf(" %d \n",'A'+'C'); printf(" %c %c \n",c,c+1); printf("%c\n",a); for(i=a;i<=122;i++) printf("%c",i); }

2.3 수식과 대입문 변수명에 값을 기억시키는 방법 변수 선언시 초기값을 지정하는 방법 대입문에 의한 방법 입력함수에 의한 방법 대입문에 의한 방법은 상수, 변수, 함수로 구성된 연산의 수식을 미리 지정한 변수에 대입하는 것을 말한다. 예) y=x+1; 변수 x가 갖고 있는 값에 1을 더해서 그 결과를 y에 대입하라는 의미이다. ‘=’은 대입연산자이다.

예제 2.8 다음은 대입문을 변형하여 프로그램 한 예이다. 프로그램을 분석하시오. #include <stdio.h> #include <conio.h> void main(void) { int i, j, k; i=j=k=10; printf("i = %d, j = %d, k = %d\n",i, j, k); k = (i=20) + (j=40); /* 대입문 변형 */ }

2.4 데이터 형(data type) C언어에서 제공하는 기본데이터형 정수형 실수형(부동소수점형, 浮動小數点形) 문자형 각 데이터형은 그 표현 범위가 제한되어 있으며 컴파일러에 따라서 제한 범위가 다를 수도 있다.

2.4.1 정수 데이터형 정수는 2byte로 표현되는 signed int형을 기본으로 한다. int 보다 큰 범위의 정수를 다루기 위한 signed long int형도 있다. long으로 간단히 표현할 수 있다. 음수가 사용되지 않는 카운터와 같은 데이터에서는 unsigned int형을 사용한다.

표 2.6 정수(int)형의 표현 범위(Visual C++ 기준) int형의 종류 Byte 수 표현 범위 signed int unsigned int short int signed short int unsigned short int long int signed long int unsigned long int 4 2 -2147483648 - 2147483647 0 - 4294967295 -32768 - 32767 0 - 65535

2.4.2 문자 데이터형 char 형의 종류 Byte 수 표현 범위 char signed char unsigned char 1 -128 - 127 0 - 255

2.4.3 실수 데이터형 실수는 float, double, long double형이 있으며 기본형은 double형이다. float형은 전체 32bit로 구성되어 있으며, 부호 1비트 지수 8비트, 가수 23비트의 3부분으로 구분된다. float형의 정확도는 10진수의 7.2자리로 표현하며 수치의 크기는 10+38까지 나타낸다. float형에서 지수부와 가수부를 확장한 double형과 long double형이 있다.

표 2.8 부동소수점(float)형의 표현 범위 (Visual C++ 기준) IEEE 754에 정의된 float형의 내부표현 S 지수부 가수부 1 8 bit 23 bit 표 2.8 부동소수점(float)형의 표현 범위 (Visual C++ 기준) 데이터 형 Byte 수 표현 범위 float double long double 4 8 3.4E-38 - 3.4E+38 1.7E-308 - 1.7E+308

예제 2.9 컴파일러가 제공하는 변수의 크기를 알아보는 프로그램이다. #include <stdio.h> void main() { int n; char c; long p; float f; double d; printf("%d \n", sizeof(char)); printf("%d \n", sizeof(int)); printf("%d \n", sizeof(long)); printf("%d \n", sizeof(float)); printf("%d \n", sizeof(double)); }

2.5 데이터 형 변환 데이터의 형 변환 자동 형 변환 강제 형 변환 대입 연산시 우측의 수식 결과값을 좌측의 데이터형으로 변환하여 배정할 때 발생 산술 연산시 두 오퍼랜드의 데이터의 형이 다른 경우에 발생 데이터형이 큰 쪽으로 변환 cast 변환 : (형) 수식; (형) 변수;

예제 2.11 자동 형 변환과 강제 형 변환 #include <stdio.h> void main(void) { char a='A'; int b=20, c, d=50, e=30; float f; c=a+b; /* 자동 형변환 */ f=(float)d+(float)e; /* 강제 형변환 */ printf("c=%d \n", c); printf("f=%f \n", f); }

2.6 표준 입출력 함수 입력 : 데이터를 컴퓨터 내부에 기억시키는 것 출력 : 내부에 기억된 내용을 컴퓨터 외부에 나타내는 것 C언어에서 표준 입출력 함수 : printf, scanf 표준 입출력 함수기 있는 헤더 파일 #include <stdio.h> 헤더 파일 : 함수의 프로토 타입을 정의해 두고, 인수의 개수와 형(type)을 검사하여 프로그램의 안정성을 보장한다.

2.6.1 printf printf 함수는 화면에 문자열이나 변수 값을 일정한 형식으로 출력하는 함수이다. 형식 예) printf("%5d", a);

표 2.9 printf 형식지정 문자열 형식 사용기능 %d, %I 기호 있는 10진 정수 %o 부호 없는 8진수(앞에 0이 붙지 않음) %x, %X 부호 없는 16진수(앞에 0이 붙지 않음) %u 부호 없는 10진 정수 %c 부호 없는 정수형으로 변환된 문자 %s char * : 문자열 s를 출력 %f double 형의 출력 %e, %E [-]m.dddddde±exx 또는 [-]m.ddddddE±Exx의 형식으로 출력 %p 포인터로 출력 %% %로 출력

표 2.10 printf 정리기호 문자 의미 - 왼쪽 끝을 맞추어 정렬 + 숫자 앞에 부호를 표시 Space 첫 문자가 -부호 또는 공백이 된다. 칸수에 맞게 앞에 0을 출력한다. # ∙0 : 첫 자리가 0 ∙x or X : 0x or 0X가 앞에 출력 ∙e, E, f, g or G : 소수점이 항상 출력 ∙g와 G의 경우 연속된 0을 없애지 않는다. 숫자 ∙출력될 최소 자리수 ∙자리수가 큰 경우 : 숫자 무시 ∙자리수가 작은 경우 : 오른쪽 정렬(왼쪽정렬로 지정된 경우는 왼    쪽 정렬) ∙나머지는 공백으로 되며, 0으로 지정된 경우는 0으로 채워짐. . 앞의 수는 전체 자리수, 뒤의 수는 소수이하 자리수 h short l long L long double

예제 2.12 printf 함수를 사용하여 여러 가지 출력 예 #include <stdio.h> void main() { int i=100, j; j = &i; //실행 결과 printf("%d\n",123); //123 printf("%5d\n",345); // 345 printf("%05d\n",345); //00345 printf("%13u\n",4239109949); // 4239109949 printf("%0d\n",567); //567 printf("%05x\n",507); //001fb printf("%5x\n",507); // 1fb printf("%#5x\n",507); //0x1fb printf("%6o\n",507); // 773 printf("%#6o\n",507); // 0773 printf("%0x\n",507); //1fb printf("%-5d\n",678); //678 printf("%6.1f\n",789.38); // 789.4 printf("%10.1e\n",789.38); // 7.9e+002 printf("%7.1f\n",789.45); // 789.5 printf("%p\n",&i); //0012FF7C printf("%20s\n","abcdefg789.45"); // }

2.6.2 scanf scanf 함수는 키보드로부터 데이터를 직접 입력하는 기능을 가진 함수 형식 예) scanf("%d", &a);

표 2.11 scanf 형식지정 문자열 문자열 의 미 %d 10진 정수 %i 정수 : 8진수 또는 16진수 일 수도 있다. 의 미 %d 10진 정수 %i 정수 : 8진수 또는 16진수 일 수도 있다. %o 8진수 정수(앞에 0이 없는 형) %u 부호 없는 10진 정수 %x 16진 정수(앞에 0이 붙을 수도 있음) %c 문자 : 정해진 길이가 될 때가지 문자를 읽어 들인다. \0이 붙지 않는다. 공백은 무시. %s 공백 없는 문자열, \0으로 끝나는 문자열의 포인터를 사용 %e,%f,%g 부동소수점 %p 포인터 값 %n 읽혀질 문자의 개수를 넘겨준다. […] [] 속에 있는 문자들과 일치하는 가장 긴 문자열 입력 [^…] [] 속에 있는 문자들과 일치하지 않는 가장 긴 문자열 입력 %% 입력에 %가 그냥 들어올 수 있다.

예제 2.13 scanf 함수로 입력하기 #include <stdio.h> void main( void ) { int i, result; float fp; char c, s[81]; printf( "정수 실수 문자 문자열을 입력하시오\n"); result = scanf( "%d %f %c %s", &i, &fp, &c, s ); printf( "\n입력된 데이터의 개수 = %d\n",result); printf( "입력결과 : %d %f %c %s\n", i, fp, c, s); }

예제 2.14 printf로 scanf 입력에 대한 명시 예 #include <stdio.h> void main(void) { int a; float b; /* 정수, 실수, 문자형 선언 */ char c; printf(" input(integer)==>"); scanf("%d", &a); /* 정수입력 */ printf("\n input(float)==>"); scanf("%f", &b); /* 실수입력 */ printf(" a = %d, b = %f\n", a, b); /* 출력 */ }

예제 2.15 두 수(정수)를 입력받아 출력하는 프로그램을 작성하시오 #include <stdio.h> void main(void) { int a, b; printf(" input(integer)==>"); scanf("%d", &a); printf("\n input(float)==>"); scanf("%d", &b); printf(" a = %d, b = %d\n", a, b); }

예제 2.16 다음 프로그램의 실행 결과를 분석하시오 #include <stdio.h> void main(void) { printf(“%d \n”, 12345); printf(“%7d \n”, 12345); printf(“%07d \n”, 12345); printf(“%e \n”, 12345.123); printf(“%10.3e \n”, 12345.123); printf(“%4.2f \n”, 12345.123); printf(“%010.2f \n”, 12345.123); printf(“%d \n”, 123456789); printf(“%ld \n”, 123456789); }

예제 2.17 miles를 kilometers로 바꾸는 프로그램을 작성하시오 1 mile = 1.609 km #include <stdio.h> #define KMS_PER_MILES 1.609 void main(void) { float miles, kms; printf(“\t\tinput(miles) ==> "); scanf("%f", &miles); kms = KMS_PER_MILES * miles; printf("\t\t %f mile = %f km\n“, miles, kms); }

예제 2.18 다음 프로그램을 분석하시오 #include <stdio.h> void main(void) { int a = 123; float f = 456.789; printf(“a = %d\t”, a); printf(“a = %10d\n”, a); /* 전체 10자리에서 오른쪽을 기준 */ printf(“a = %-10d\t”, a); /* 전체 10자리에서 왼쪽을 기준 */ printf(“a = %3d\n”, a); printf(“float f = %f\t”, f); printf(“float f = %12.5f\t”, f); }

2.7 키보드 입력 함수 키보드로부터 한 문자 또는 문자열을 입력 받고 이를 출력하는 함수들이다. getchar()함수 : 한 문자를 입력 putchar()함수 : 한 문자를 출력 gets()와 puts()는 문자열을 입력 또는 출력

int getchar( ); int putchar( ); int *gets(char *str ); 키보드로 하나의 문자를 입력하는 함수 리턴 값은 키보드의 읽은 문자 화일 종료시 EOF 반환 int putchar( ); 화면에 하나의 문자를 출력하는 함수 오류시 EOF 반환 int *gets(char *str ); 키보드로 1행을 읽어서 str에 저장 리턴 값 : str내용 반환 파일 종료나 오류시에 NULL 반환 int puts(char *str ); 화면에 한 행을 출력하고, 출력 행을 바꾼다. 정상 처리시 : 0이 아닌 값 반환 오류시 : EOF 반환

예제 2.20 getchar, putchar를 이용한 한 문자 입출력. #include <stdio.h> void main(void) { char c; c = getchar(); /* 키보드에서 한 문자 입력 */ putchar(); /* 화면에 한 문자 출력 */ }

예제 2.21 gets, puts를 이용한 문자열 입출력. #include <stdio.h> void main(void) { char c[100]; gets(c); /* 키보드에서 문자열 입력 */ puts(c); /* 화면에 문자열 출력 */ }

예제 2.23 소문자로 입력된 문자를 대문자로 출력하는 프로그램 #include <stdio.h> void main(void) { char c; printf("소문자 한 개를 입력하시오\n“); c=getchar(); c= c - 32; /* 소문자를 대문자로 변환 */ putchar(c); putchar('\n'); }