(10) 다음의 프로그램을 작성하라. [p383]

 

1. 사용자로부터 텍스트를 입력받아 텍스트를 모두 대문자로 출력하는 프로그램을 작성하여보자.

    어떤 라이브러리 함수를 사용하여도 좋다.

텍스트를 입력하시오 :  C language is easy

대문자 출력 : C LANGUAGE IS EASY

 

3. 문자열을 입력받아 문자열에 포함된 모든 공백 문자를 삭제하는 함수를 작성하고 테스트하여보자.

(정답예)

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main(void)
{
     char s[100]={0};
     char t[100]={0};
     int i, j=0;
     printf("텍스트를 입력하시오:");
     gets(s);
     for(i=0;i<strlen(s);i++)
          if( s[i] != ' ' ) t[j++] =s[i]; 
          printf("결과 텍스트 출력:%s\n", t);
     return 0;
}

 

제출요령 : A4 용지에 코드와 실행예의 캡쳐를 출력한 뒤 표지를 붙여 제출

제출기한 : 12월 03일 수업시간

 

(9) 다음의 프로그램을 작성하라. [p343]

 

 

 

(추가문제) 3차원 벡터를 단위 벡터로 만들어 주는 함수를 작성하라. 함수의 원형은 다음과 같다.

        void make_unit_vector(double vec[2]);

 

제출요령 : A4 용지에 코드와 실행예의 캡쳐를 출력한 뒤 표지를 붙여 제출

제출기한 : 11월 26일 수업시간

 

 

(8) 다음의 프로그램을 작성하라. [p342]

 

(정답 예) 2번에서 최소공배수와 최대공약수를 구하는 함수는 다음과 같다.

             최소공배수 : LCM (Least Common Multiple)

             최대공약수 : GCD (Greastest Common Divisor)

void GCD_LCM(int a, int b, int* gcd, int* lcm)

 

{
     int x, y, r;
     if(a>b)
     {
          x = a; y = b;
     }
     else
     {
          x = b; y = a;
     }
     // GCD 구하기
     while(1)
     {
          if(y==0)
          {
               *gcd = x;
               break;
          }
          r = x % y;
          x = y;
          y = r;
     }
     //LCM 구하기
     *lcm = (a / *gcd) * (b / *gcd) * (*gcd);
}

 

제출요령 : A4 용지에 코드와 실행예의 캡쳐를 출력한 뒤 표지를 붙여 제출

제출기한 : 11월 19일 수업시간

 

(7) 다음의 프로그램을 작성하라. [p300]

 

1. 배열 days[] 를 아래와 같이 초기화하고 배열 원소의 값을 다음과 같이 출력하는 프로그램을 작성하여보자.

 

    31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31

 

  

3. 사용자로부터 20개 이하의 실수 자료를 읽어서 평균과 표준편차를 계산하는 프로그램을 작성하여보자.

    사용자로부터 받은 자료들을 배열에 저장한다. 평균은 n개의 실수가 주어져 있을 때 다음과 같이 계산된다.

 

    표준편차는 분산의 양의 제곱근으로 분산은 다음과 같이 계산된다.

 

    (분산!!)

 

6. 10진수를 2진수로 변환하여 출력하는 프로그램을 작성하여보자. 최대 64자리까지 변환이 가능하도록 한다.

    변환된 자릿수를 저장하는데 배열을 사용한다. 10진수를 2로 나누어 생성된 나머지를 역순으로 나타내면

    2진수로 표현할 수 있다.

 

   

7. 주사위를 60000번 던져서 그 결과를 배열로 요약하여보자. 잘 만들어진 주사위라면 하나의 면이 나올 확률은

    약 1/6이 되어야 한다. 컴퓨터에서 주사위 던지기는 난수 발생함수 rand()를 통하여 구현한다.

 

(추가문제) 100개의 소수(prime number)를 계산하여 배열에 저장했다가 출력하는 프로그램을 작성하라.

 

제출요령 : A4 용지에 코드와 실행예의 캡쳐를 출력한 뒤 표지를 붙여 제출

제출기한 : 11월 12일 수업시간

 

 

(6) 다음의 프로그램을 작성하라. [p263]

 

2. 주어진 정수가 소수(prime number)인지를 검사하는 함수 prime()을 작성하여 보자.
    이 함수를 이용하여 1부터 100사이에 존재하는 소수들을 모두 출력한다.

 

3. 거듭제곱을 계산하는 함수를 작성하여 보자. 정수 n과 k를 받아서 n의 k승을 계산하는 함수 ipower()를

    작성한다. 이 함수를 호출하여 3의 0승부터 3의 10승까지의 값을 테이블의 형태로 출력하는 프로그램을

    작성하여보자.

 

4. 두점 사이의 거리를 계산하는 함수를 작성하여보자. 2차원 공간에서 두 점 (x1, y1)과 (x2, y2)사이의 거리를
    계산하는 dist_2d()를 작성한다. 다음과 같은 두 점 사이의 거리를 계산하는 공식을 사용하여라.

    d = sqrt( (x1-x2)^2 + (y1-y2)^2 )

 

10. 돈만 생기면 저금하는 사람을 가정하자. 이 사람을 위한 함수 save(int amount)를 작성한다.
    이 함수는 저금할 금액을 나타내는 하나의 인수 amount 만을 받으며 save(100)과 같이 호출된다.
    save()는 현재까지 저축된 총액을 기억하고 있으며 한 번 호출될 때마다 총 저축액을 화면에 출력한다.

 

  

 

    (a) 전역 변수를 사용하여 구현하라.
    (b) 정적 지역 변수를 사용하여 구현하라.
    (c) 예금 인출을 나타내는 함수 draw(int amount)도 작성하여보자. save()와 draw() 를 동시에
        사용하려면 저금액은 어떤 종류의 변수로 표현하여야 하는가?

 

12. 다음을 계산하는 재귀적인 프로그램을 작성하여보자.

  

 

제출요령 : A4 용지에 코드와 실행예의 캡쳐를 출력한 뒤 표지를 붙여 제출

제출기한 : 10월 29일 수업시간.(중간고사시간)

 

 

(5) 다음의 프로그램을 작성하라. [p217]

 

1. 1 부터 100까지의 자연수 중 3의 배수 출력

2. 1 부터 100까지의 자연수 중 3의 배수이면서 동시에 5의 배수인 숫자 출력

5. 중첩 반복문을 사용하여 첫줄 1, 둘째쭐 1 2, ..., n째줄 1 2 ... n 출력

6. 사용자로부터 일련의 데이터를 받아서 최소값을 찾아보자. 사용자가 음수를 입력하면 끝내고,

    데이터는 1000을 넘을 수 없다고 가정한다.

8. 1~100 의 정수 중 피타고라스의 정리를 만족하는 쌍을 찾아라.

10. 2~100 사이의 모든 소수(prime number)를 찾는 프로그램을 작성하라.

 

제출요령 : A4 용지에 코드와 실행예의 캡쳐를 출력한 뒤 표지를 붙여 제출

제출기한 : 10월 22일 수업시간.

 

 

(4) 다음의 프로그램을 작성하라. [p185]

1.

2. 

3. 

4. 

제출요령 : A4 용지에 코드와 실행예의 캡쳐를 출력한 뒤 표지를 붙여 제출

제출기한 : 10월 15일 수업시간.

 


(3) 다음의 프로그램을 작성하라. [p152 9번]

조건 연산자 ? 만을 이용하여 2차원 공간의 x 좌표와 y 좌표를 입력받아 그 좌표가 속하는 사분면을 출력하는 프로그램을 작성하라.

  

 좌표의 부호

 사분면

 x > 0, y > 0

1사분면

 x < 0, y > 0

2사분면

 x < 0, y < 0

3사분면

 x > 0, y < 0

4사분면

 

[실행 예]

x값을 입력하시오: 10

y값을 입력하시오: -10

4사분면입니다.

제출요령 : A4 용지에 코드와 실행예의 캡쳐를 출력한 뒤 표지를 붙여 제출

제출기한 : 10월 08일 수업시간.

 


 

(2) 다음의 2개 프로그램을 작성하라 [p113 2번, 3번]

2-1. 사용자로부터 x의 값을 실수로 입력받아서 다음과 같은 다항식의 값을 계산하는 프로그램을 작성하라.

 

 

[실행 예]

x의 값을 입력하시오: 3.9

다항식의 값은 _____ 입니다.

 

 

2-2. 면적의 단위인 제곱미터를 평으로 환산하는 프로그램을 작성하여 보자. 여기서 1평은 3.3025 제곱미터이다. 변수들의 자료형은 어떤 것을 선택하는 것이 좋은가? 기호 상수를 이용하여 1제곱미터당 평을 나타내어라.

 

[실행 예]

면적을 제곱미터 단위로 입력하시오: 115

115 제곱미터는 _____ 평입니다.

제출요령 : A4 용지에 코드와 실행예의 캡쳐를 출력한 뒤 표지를 붙여 제출

제출기한 : 9월 24일 수업시간.

 


 

(1) 다음과 같은 프로그램을 작성하라 [p73 1번]

사용자로부터 세개의 정수를 입력받은 후, 평균값을 계산하여 화면에 출력하는 프로그램을 작성하라.

 

[실행 예]

정수를 입력하시오 : 10

정수를 입력하시오 : 20

정수를 입력하시오 : 30

 

평균은 20입니다.

 

다음의 프로그램을 참고한다.

#include <stdio.h>
int main(void)
{
   float radius;  // 원의 반지름
   float area;  // 면적 
   printf("반지름을 입력하시오: ");
   scanf("%f", &radius);
   area = 3.14 * radius * radius;
   printf("원의 면적: %f\n", area);
   return 0;
}

 

제출요령 : A4 용지에 코드와 실행예의 캡쳐를 출력한 뒤 표지를 붙여 제출

제출기한 : 9월 17일 수업시간.

Posted by 마스샘