전처리문이 무엇인지 조사하고 다음 전처리문의 용도와 사용 예시를 적으시오. (0.5시간 소요)
가. #include
#include전처리기는 포함된 파일의 내용을 지시자의 위치에 복사
#include <stdio.h>
나. #define
define은 특성 숫자, 함수, 프로그램 블록을 다른 형태로 변환 지정
#define pi 3.141592
다. #pragma
컴파일 옵션 전처리문.컴파일러에 특정 명령을 내릴 수 있다.
#pragma once
#include <stdio.h>
//stdio.h는 한번만 컴파일이된다
#pragma warning(disable: 4996)
4996워닝은 출력되지 않게 됨.취약하다고 알려진 scanf함수사용시 워닝문구를 출력하는 경우가 있는데 이 경우 경고를 임의로 삭제가능
#pragma warning(error:4996)
위와 반대로 경고메시지를 오류로 만든다.취약한 함수등에서 발생하는 경고를 오류로 만들 수 있다.
다음 값을 define 해보시오. (1.5시간 소요)
가. Log2를 0.3010 으로 define 하시오. 첫글자를 대문자로 하시오.
#define Log2 0.3010
나. Log3을 0.4771 으로 define 하시오. 첫글자를 대문자로 하시오.
#define Log3 0.4771
다. Log7을 0.8451 으로 define 하시오. 첫글자를 대문자로 하시오.
#define Log7 0.8451
라. 가~다를 이용하여 log2 ~ log10의 값을 구하는 코드를 작성해 보시오.
printf("로그2는 %f',Log
그리고 log2~log10 까지의 값을 printf 로 출력하시오.
#include <stdio.h>
#define Log2 0.3010
#define Log3 0.4771
#define Log7 0.8451
int main()
{
printf("로그2는 %f\n",Log2);
printf("로그3은 %f\n",Log3);
printf("로그4는 %f\n",Log2*2);
printf("로그5는 %f\n",1-Log2);
printf("로그6는 %f\n",Log2+Log3);
printf("로그7는 %f\n",Log7);
printf("로그8는 %f\n",Log2*3);
printf("로그9는 %f\n",Log3*2);
printf("로그10은 1");
return 0;
}
마. PI값을 3.141592로 define 한 후 반지름을 입력받아 원의 넓이, 둘레를 출력하는 프로그램을 작성하시오. http://tujanote.cafe24.com/bbs/board.php?bo_table=pds2&wr_id=52&sca=C&page=2 을 참조하시오.
#include <stdio.h>
#define PI 3.141592
int main()
{
double radius;
printf("반지름을 입력하시오\n");
scanf("%lf",&radius);
printf("넓이:%f,둘레:%f",PI*radius*radius,2*PI*radius);
return 0;
}
아스키 코드에 대해 조사하시오 (2시간 소요)
가. 아스키코드 표를 구하여 0~127까지의 대응값을 구하고 스크린샷을 첨부하시오.
나. char 형 변수를 선언한 후, 65를 주시오. 이 변수를 출력하면 A가 나옴을 확인하시오. char 형 변수를 선언한 후, 97를 주시오. 이 변수를 출력하면 a가 나옴을 확인하시오. 작성한 코드도 업로드하시오. http://tujanote.cafe24.com/bbs/board.php?bo_table=pds2&wr_id=53&sca=C&page=2 를 참조하시오.
#include <stdio.h>
int main(){
char v1=65;
char v2=97;
printf("v1의 값 %c v2의 값 %c",v1,v2);
}
다. char 형 변수를 투자노트 ID의 글자수만큼 만들고, 각 변수에 아스키값을 준 후 자신의 ID를 출력하는 프로그램을 만드시오. 작성한 코드도 업로드하시오.
라. 프로그램을 실행하면 비프음이 나오도록 아스키값을 준 후 실행을 확인하시오. 작성한 코드도 업로드하시오.
#include <stdio.h>
int main(){
char bell=7;
printf("%c",bell);
}
대소문자 변환 프로그램을 만드시오.
가. char형 변수를 선언한 후 소문자를 입력받으시오. 입력받은 소문자를 대문자로 바꾸어 주는 프로그램을 구현하시오. 작성한 코드도 업로드하시오.
#include <stdio.h>
int main(){
char lower;
printf("소문자 입력하셈");
scanf("%c",&lower);
printf("대문자로 바꾸면 %c임",lower-32);
}
나. char형 변수를 선언한 후 대문자를 입력받으시오. 입력받은 대문자를 소문자로 바꾸어 주는 프로그램을 구현하시오. 작성한 코드도 업로드하시오
#include <stdio.h>
int main(){
char upper;
printf("대문자 입력하셈");
scanf("%c",&upper);
printf("소문자로 바꾸면 %c임",upper+32);
}
시간 카운터를 만드시오.
가. 1분이 60초임을 define하시오. 이름은 SEC_PER_MIN 으로 하시오.
#define SEC_PER_MIN =60;
나. 1시간이 60분임을 define하시오. 이름은 MIN_PER_HOUR로 하시오.
#define MIN_PER_HOUR=60SEC_PER_MIN;
다. 하루가 24시간임을 define 하시오. 이름은 HOUR_PER_DfAY으로 하시오.
#define HOUR_PER_DAY=24MIN_PER_HOUR;
라. '%'연산자에 대해 조사하고, 용도와 예문을 1줄로 적어보시오.
나누고 나머지 구함
int number=3
if(number%2==1){
printf("홀수임")
}
else
printf("짝수임")
마. 몇일,몇시간,몇분,몇초인지를 입력하면 총 몇 초인지 계산하는 프로그램을 만드시오. 작성한 코드도 업로드하시오.
#include <stdio.h>
#define SEC_PER_MIN 60
#define MIN_PER_HOUR 60*SEC_PER_MIN
#define HOUR_PER_DAY 24*MIN_PER_HOUR
int main(){
int days;
int hours;
int minutes;
int seconds;
printf("몇일인지 입력");
scanf("%d",&days);
printf("몇시간인지 입력");
scanf("%d",&hours);
printf("몇분인지 입력");
scanf("%d",&minutes);
printf("몇초인지 입력");
scanf("%d",&seconds);
printf("%d",days*HOUR_PER_DAY+hours*MIN_PER_HOUR+minutes*SEC_PER_MIN+seconds);
}
바. 0~1000000의 범위에서 '초'를 입력하면 몇일,몇시간,몇분,몇초인지 계산하는 프로그램을 만드시오. 작성한 코드도 업로드하시오. http://tujanote.cafe24.com/bbs/board.php?bo_table=pds2&wr_id=54&sca=C&page=2 를 참조하시오.
#include <stdio.h>
#define SEC_PER_MIN 60
#define MIN_PER_HOUR 60 SEC_PER_MIN
#define HOUR_PER_DAY 24 MIN_PER_HOUR
int main()
{
int totalSeconds;
int remain;
int days;
int hours;
int minutes;
int seconds;
int daySeconds = HOUR_PER_DAY; //define시 타입안정해져 바로대입하면 오류남
int hourSeconds = MIN_PER_HOUR;
printf("총 몇초인지 입력 ");
scanf("%d", &totalSeconds);
days = totalSeconds / daySeconds;
remain = totalSeconds - days daySeconds;
hours = remain / hourSeconds;
remain = remain - hours hourSeconds;
minutes = remain / SEC_PER_MIN;
remain = remain - minutes * SEC_PER_MIN;
seconds = remain;
printf("%d일 %d시간 %d분 %d초", days, hours, minutes, seconds);
}