본문 바로가기
공부/c언어 예제

C언어 예제 22문제

by ding9 2009. 2. 20.

[난이도 *]

1. 이름과 학번을 입력하면, "당신은 000이며 00학번입니다."라고 화면에 출력하는 프로그램을 작성하라.

2.  "나는 C프로그래머, 잘 부탁해!" 라고 입력하면, "네, 충실히 실행하겠습니다."라고 출력하는 프로그램을 작성하시오. (힌트: printf()를 사용)

3. "국적을 입력="이라고 화면에 출력하고, "대한민국"이라고 입력하면, 이를 str[]이라는 배열변수에 저장하고, 다시 배열변수의 내용을 출력하는 프로그램을 작성하시오. (힌트 %s의 포맷사용)

[난이도 **]

4. 1부터 10까지 수의 합은 55이다. 이를 계산하는 프로그램을 for()문을 사용하여 작성하시오. (힌트: sum=sum+i 사용)

5. 높이와 밑변의 길이를 입력하면, 삼각형의 면적을 계산하여, 면적의 값을 출력하는 프로그램을 작성하라.

6. 이름을 입력하면, 그 이름을 10번 출력하는 프로그램을 for()을 사용하여 작성하라.

7. 두개의 수를 입력하면, 그 중 큰 값을 출력하는 프로그램을 작성하시오.

8. 영문자 하나를 입력하면, 그 문자의 아스키 코드값을 출력하는 프로그램을 작성하시오.

9. 5개의 값을 for()을 사용하여 입력하고, 그값들의 합을 계산하여 출력하는 프로그램을 for()문을 사용하여 작성하시오.

10. 5개의 수를 입력하면, 그 평균값을 계산하여 출력하는 프로그램을 작성하라.


[난이도 ***]

11. 직각삼각형의 빗변은 밑변과 높이의 제곱의 합을 근으로 한다.(피타고라스의 정리) 밑변과 높이 값을 입력하면, 그 빗변을 계산하는 프로그램을 작성하라. 여기서 근(root)의 계산은 sqrt()함수를 사용(이 함수를 사용하려면 math.h를 include해야한다)하라.

12. 문장을 문자열로 입력하고(예: Hello, Welcome to Korea!), 입력한 문자열의 공백(스페이스바)를 카운트하는 프로그램을 작성하라. (예문은 3개의 공백을 갖고 있다.)

13. 단어를 입력하면(예: korea), 첫 문자를 대문자로 바꾸는 프로그램을 작성하라.(Korea)

14. 전화번호를 입력하면(016-268-2285), 하이픈(-)을 제거하여 출력(0162682285)하는 프로그램을 작성하라.

15. 비밀번호 4자리를 입력하여, 이미 저장된 비밀번호와 비교하는 프로그램을 작성하라.

16. 1에 N까지 3 또는 7의 배수를 모두 출력하는 하는 프로그램을 작성하라.


[난이도 ****]

17. 수(number)에는 자기 자신과 1외에는 약수가 존재하지 않는 수가 있다. 이를 소수(prime number)라 하는 데, 임의 수를 입력하면, 그 수가 소수인지 아닌지 판정하는 프로그램을 작성하라.

18. 1일이 수요일이며 31일까지 있는 큰 달이 있다. 이 달의 달력을 화면에 출력하는 프로그램을 작성하라.

19. 영어단어를 입력하면, 그 단어의 문자수를 출력하는 프로그램을 작성하라.

20. 영어단어를 입력하면, 그 단어에서 중복된 알파벳이 있는가를 검사하는 프로그램을 작성하시오. 예를 들어 'korea'는 '중복이 없습니다."라고 출력하고, 'robot'은 '중복이 있습니다."라고 출력합니다.(왜냐면 'o'가 중복사용되었기 때문입니다.)

[난이도 *****]
21. 영어단어를 입력하면, 그 단어에서 사용된 알파벳 종류수를 출력하는 프로그램을 작성하시오. 예를 들어 'korea'는 5개의 알바벳문자가 사용되고, 'robot'은 4개의 알파벳문자가 사용된다.


22. 두개의 영어단어를 입력하고, 두 단어를 비교하여, 같은 문자의 갯수를 세는 프로그램을 작성하시오. 예를 들어 첫번째 'korea'를 입력하고, 두번째 'robot'를 입력하면, '2개가 같습니다.'라고 출력합니다.(왜냐하면, 'o'와 'r'이 같이 사용됐기 때문입니다.)



=============================================================================================================
=
=
=
=
=
=
=
= 풀이
=============================================================================================================

[난이도 *]
1. 이름과 학번을 입력하면, "당신은 000이며 00학번입니다."라고 화면에 출력하는 프로그램을 작성하라.

 

#include<stdio.h>
void main()
{
 char name[8], student[5];
 scanf("%s %s", name, student);
 printf("당신은 %s이며 %s학번입니다.\n", name, student);
}

 

 

2.  "나는 C프로그래머, 잘 부탁해!" 라고 입력하면, "네, 충실히 실행하겠습니다."라고 출력하는 프로그램을 작성하시오. (힌트: printf()를 사용)

 

 

#include<stdio.h>
void main()
{
 scanf("%s");
 printf("네, 충실히 실행하겠습니다.\n");
}
 

 

 

3. "국적을 입력="이라고 화면에 출력하고, "대한민국"이라고 입력하면, 이를 str[]이라는 배열변수에 저장하고, 다시 배열변수의 내용을 출력하는 프로그램을 작성하시오. (힌트 %s의 포맷사용)

 

 

 

#include<stdio.h>
void main()
{
 char str[10];
 printf("국적을 입력=");
 scanf("%s", str);
 printf("%s\n", str);
}

 

 

 

[난이도 **]
4. 1부터 10까지 수의 합은 55이다. 이를 계산하는 프로그램을 for()문을 사용하여 작성하시오. (힌트: sum=sum+i 사용)

 

 

 

#include<stdio.h>
void main()
{
 int i, sum=0;
 for ( i = 1; i < 11; i++)
  sum=sum+i;
 printf("%d\n", sum);
}

 

 

 

5. 높이와 밑변의 길이를 입력하면, 삼각형의 면적을 계산하여, 면적의 값을 출력하는 프로그램을 작성하라. 

 

 

 

#include<stdio.h>
void main()
{
 float height, bottom;
 scanf("%f %f", &height, &bottom);

 printf("삼각형 면적은 %f 이다.\n", 0.5*height*bottom);
}

 

 

 

6. 이름을 입력하면, 그 이름을 10번 출력하는 프로그램을 for()을 사용하여 작성하라. 

 

 

 

#include<stdio.h>
void main()
{
 char name[10];
 int i;
 scanf("%s", name);

 for ( i = 0; i < 10; i++)

 printf("%s\n", name);
}

 

 

 

7. 두개의 수를 입력하면, 그 중 큰 값을 출력하는 프로그램을 작성하시오. 

 

 

 

#include<stdio.h>
void main()
{
 int i, j;
 scanf("%d %d", &i, &j);
 if ( i > j)
  printf("%d\n", i);
 else
  printf("%d\n", j);
}

 

 

 

8. 영문자 하나를 입력하면, 그 문자의 아스키 코드값을 출력하는 프로그램을 작성하시오.

 

 

 

#include<stdio.h>
void main()
{
 char ch;
 scanf("%c", &ch);
 printf("%d\n", ch);
}

 

 

 

9. 5개의 값을 for()을 사용하여 입력하고, 그값들의 합을 계산하여 출력하는 프로그램을 for()문을 사용하여 작성하시오. 

 

 

 

#include<stdio.h>
void main()
{
 int arr[5], sum = 0;
 int i;

 for ( i = 0; i < 5; i++)
  scanf("%d",&arr[i]);
 for ( i = 0; i < 5; i++)
  sum = sum + arr[i];
 printf("%d\n", sum);
}

 

 

 

10. 5개의 수를 입력하면, 그 평균값을 계산하여 출력하는 프로그램을 작성하라. 

 

 

 

#include<stdio.h>
void main()
{
 int a, b, c, d, e;
 float avr;
 scanf("%d %d %d %d %d", &a, &b, &c, &d, &e);
 avr=(a+b+c+d+e)/5;
 printf("%f\n", avr);
}

 

 

 

[난이도 ***]
11. 직각삼각형의 빗변은 밑변과 높이의 제곱의 합을 근으로 한다.(피타고라스의 정리) 밑변과 높이 값을 입력하면, 그 빗변을 계산하는 프로그램을 작성하라. 여기서 근(root)의 계산은 sqrt()함수를 사용(이 함수를 사용하려면 math.h를 include해야한다)하라. 

 

 

 

#include<stdio.h>
#include<math.h>
void main()
{
 float height, bottom, hypotenuse;
 scanf("%f %f", &height, &bottom);
 hypotenuse = sqrt((height*height)+(bottom*bottom)); 
 printf("%f \n", hypotenuse);
}

 

 

 

12. 문장을 문자열로 입력하고(예: Hello, Welcome to Korea!), 입력한 문자열의 공백(스페이스바)를 카운트하는 프로그램을 작성하라. (예문은 3개의 공백을 갖고 있다.)

 

 

 

#include<stdio.h>
void main()
{
 char sentence[30];
 int i, cnt=0;

 for ( i = 0; i < 30; i++)
 {
  scanf("%c",&sentence[i]);
  if ( sentence[i] == '\n')
   i=30;
 }
 for ( i = 0; i < 30; i++)
 {
  if ( sentence[i] == ' ')
   cnt++;
 }
 printf("%d\n", cnt);
}

 

 

 

13. 단어를 입력하면(예: korea), 첫 문자를 대문자로 바꾸는 프로그램을 작성하라.(Korea)

 

 

 

#include<stdio.h>
void main()
{
 char str[10];
 scanf("%s",str);
 str[0]=str[0]-'a'+'A';
 printf("%s\n", str);
}

 

 

 

14. 전화번호를 입력하면(026-268-2285), 하이픈(-)을 제거하여 출력(0162682285)하는 프로그램을 작성하라.

 

 

 

#include<stdio.h>
void main()
{
 char phone[15], phone2[15];
 int i, j=0;
 scanf("%s", phone);
 for ( i=0; i<15; i++)
 {
  if ( phone[i] != '-')
  {
   phone2[j] = phone[i];
   j++;
  }
 }
 printf("%s\n", phone2);
}

 

 

 

15. 비밀번호 4자리를 입력하여, 이미 저장된 비밀번호와 비교하는 프로그램을 작성하라.

 

 

 

#include<stdio.h>
void main()
{
 char in[5], pw[5] ="1234";
 int i, cnt=0;

 scanf("%s", in);

 for ( i = 0; i < 5; i++)
  if ( in[i]!=pw[i])
   cnt++;
 if ( cnt==0)
  printf("비밀번호 일치\n");
 else
  printf("비밀번호 미일치\n");
}

 

 

 

16. 1에 N까지 3 또는 7의 배수를 모두 출력하는 하는 프로그램을 작성하라. 

 

 

 

#include<stdio.h>
void main()
{
 int i, n;
 scanf("%d",&n);
 for ( i = 1; i < n+1; i++)
  if ( i%3==0 || i%7 == 0)
   printf("%d ", i);
 printf("\n");
}

 

 

 

[난이도 ****]
17. 수(number)에는 자기 자신과 1외에는 약수가 존재하지 않는 수가 있다. 이를 소수(prime number)라 하는 데, 임의 수를 입력하면, 그 수가 소수인지 아닌지 판정하는 프로그램을 작성하라.

 

 

 


#include<stdio.h>
void main()
{
 int in, i, cnt=0;
 scanf("%d", &in);

 for( i = 2; i< in; i++)
 {
  if ( in%i ==0)
   cnt++;
 }
 if ( cnt ==0)
  printf("입력한 수는 소수이다.\n");
 else
  printf("입력한 수는 소수가 아니다.\n");
}

 

 

 

18. 1일이 수요일이며 31일까지 있는 큰 달이 있다. 이 달의 달력을 화면에 출력하는 프로그램을 작성하라. 

 

 

 

#include<stdio.h>
void main()
{
 int i;
 printf("일\t월\t화\t수\t목\t금\t토\n");
 for ( i = -2 ; i < 32; i++)
 {
  if ( i < 1)
   printf("\t");
  else
  {
   if ( i%7 == 4)
    printf(" %d\n", i);
   else
    printf(" %d\t", i);
  }
 }
 printf("\n");
}

 

 

 

19. 영어단어를 입력하면, 그 단어의 문자수를 출력하는 프로그램을 작성하라. 

 

 

 


#include<stdio.h>
void main()
{
 char word[10];
 int i;
 scanf("%s", word);
 for ( i = 0; i < 10; i++)
 {
  if (!(( word[i] >= 'a' && word[i] <= 'z') || ( word[i] >= 'A' && word[i] <= 'Z')))
   break;
 }
 printf("%d\n", i);
}

 

 

 

20. 영어단어를 입력하면, 그 단어에서 중복된 알파벳이 있는가를 검사하는 프로그램을 작성하시오. 예를 들어 'korea'는 '중복이 없습니다."라고 출력하고, 'robot'은 '중복이 있습니다."라고 출력합니다.(왜냐면 'o'가 중복사용되었기 때문입니다.) 


 

 

 

#include<stdio.h>
void main()
{
 int i, j;
 char in[20], tm;
 int cnt=0;
 scanf("%s",in);
 for(i=0; i<20; i++)
 {
  tm=in[i];
  if(in[i]=='\0')
  {
   break;
  }
  for ( j = i+1; j<20;j++)
  {
   if ( tm==in[j])
    cnt++;
  }
 }
 if ( cnt==0)
  printf("중복없음\n");
 else
  printf("중복이있습니다.\n");
}

 

 

[난이도 *****]

21. 영어단어를 입력하면, 그 단어에서 사용된 알파벳 종류수를 출력하는 프로그램을 작성하시오. 예를 들어 'korea'는 5개의 알바벳문자가 사용되고, 'robot'은 4개의 알파벳문자가 사용된다. 

 

 

 


#include<stdio.h>
void main()
{
 char str[20];
 int ind[128]={0,};
 int i, cnt=0;
 scanf("%s", str);
 for ( i = 0; i < 10; i++)
 {
  if ( str[i] != '\0')
   ind[str[i]]++;
  else
   break;
 }
 for ( i = 0; i < 128; i++)
 {
  if ( ind[i] != 0)
   cnt++;
 }
 printf("%d\n", cnt);
}

 

 

 


22. 두개의 영어단어를 입력하고, 두 단어를 비교하여, 같은 문자의 갯수를 세는 프로그램을 작성하시오. 예를 들어 첫번째 'korea'를 입력하고, 두번째 'robot'를 입력하면, '2개가 같습니다.'라고 출력합니다.(왜냐하면, 'o'와 'r'이 같이 사용됬기 때문입니다.)

 

 

 

#include<stdio.h>
void main()
{
 char first[10], second[10];
 int i, j;
 int cnt = 0;
 scanf("%s %s", first, second);

 for ( i = 0; i < 10; i++)
 {
  for ( j = 0; j < 10; j++)
  {
   if ( first[i] == '\0')
    break;
   if ( second[j] == '\0')
    j = 10;
   else
   {
    if ( first[i] == second[j])
    {
     cnt++;
     j = 10;
    }
   }
  }
 }
 printf("%d\n", cnt);
}

반응형

'공부 > c언어 예제' 카테고리의 다른 글

C언어 기본예제  (1) 2009.02.08
기본적인 C언어 예  (0) 2009.02.07

댓글