c언어 3주차

코드깎는 노인·2020년 10월 12일
0

기본과제 및 제출 양식

  1. 전처리문이 무엇인지 조사하고 다음 전처리문의 용도와 사용 예시를 적으시오. (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)
    위와 반대로 경고메시지를 오류로 만든다.취약한 함수등에서 발생하는 경고를 오류로 만들 수 있다.

  2. 다음 값을 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;
}

  1. 아스키 코드에 대해 조사하시오 (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);
}

심화과제 제출 양식( 안해도 됨 )

  1. 대소문자 변환 프로그램을 만드시오.

    가. 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);
    }

  2. 시간 카운터를 만드시오.

    가. 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);
    }

profile
내가 볼려고 만든 블로그

0개의 댓글