[난이도 *]
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 |
댓글