곽길문 ¶
ë³µìŠµê³¼ì œ
1.0ê³¼ 1000 사ì�´ì�˜ ì •ìˆ˜ë¥¼ ìž…ë ¥ë°›ì•„ ëª¨ë“ ìž�릿수를 ë�”하여 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ ì§œ 주세요.
#include<stdio.h>
int main()
{
{
int num =0;
int sum =0;
printf("0ê³¼ 1000사ì�´ì�˜ ì •ìˆ˜ë¥¼ ìž…ë ¥ :\n");
scanf("%d", &num);
do
{
printf("� �리수들� 합 : %d \n",sum);
return 0;
}int sum =0;
printf("0ê³¼ 1000사ì�´ì�˜ ì •ìˆ˜ë¥¼ ìž…ë ¥ :\n");
scanf("%d", &num);
do
{
sum += num %10;
num/=10;
}while(!(num == 0));num/=10;
printf("� �리수들� 합 : %d \n",sum);
return 0;
2.소문�를 대문�로 바꾸는 프로그램� 작성해 주세요.
#include <stdio.h>
int main()
{
{
char replace;
printf("소문� : ");
scanf("%c",&replace);
if( 97 <= replace && replace <= 129){
return 0;
}printf("소문� : ");
scanf("%c",&replace);
if( 97 <= replace && replace <= 129){
printf("대문�는 :%c\n", replace-32);
}else if( 65 <=replace && replace <= 90){printf("대문�는 :%c\n", replace+32);
}return 0;
3.다ì�Œ 모양ì�„ ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해 주세요.
한ìž�리 숫ìž�ì�´ë‹¤ê°€ 2ìž�리 숫ìž�ì�´ë©´ì„œ 깨지는 것ì�€ 예외처리해주셔ë�„ ë�˜ê³ 하지 않으셔ë�„ ë�©ë‹ˆë‹¤.
방법� if(10>x) printf(" ");입니다.
1
2 3
4 5 6
7 8 9 10
11 12 13 14 152 3
4 5 6
7 8 9 10
16 17 18 19 20 21
#include<stdio.h>
int main()
{
4.다ì�Œ 모양ì�„ ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해 주세요.
{
int i,j;
int num=1;
for(i=0;i<5;i++){
for(j=0;j<=i;j++){
printf("%d",num);
printf(" ");
num+=1;
}
printf("\n");
}
return 0;
}int num=1;
for(i=0;i<5;i++){
for(j=0;j<=i;j++){
printf("%d",num);
printf(" ");
num+=1;
printf("\n");
return 0;
4.다ì�Œ 모양ì�„ ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해 주세요.
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21#include<stdio.h>// ìž�리 못 ë§žì¶”ê² ì�Œ..
int main(void)
{
5.위 ë‘� 프로그램ì�„ ì�¼ë°˜í™” 시켜 ìž…ë ¥ë°›ì�€ 숫ìž�ë§Œí�¼ ì¶œë ¥í•´ì£¼ëŠ” 프로그램ì�„ 작성해주세요.(위 프로그램ì�€ 21ì�„ ìž…ë ¥)
//1.3.6.10 수열ì�´ 규칙ì�„ 찾아서 í–‰ì�„ 만들어 ì£¼ë ¤ê³ í•œë‹¤â€¦ 코딩 ìƒ�ê°� 하는ë�° 시간ì�´ 세시간 초과.. 그래서 6ì�„ ìž…ë ¥í•˜ë©´ í–‰ì�´ 6ì�´ ë�˜ëŠ” 삼ê°�형 만듬..
{
int a;
int b;
int num = 1;
for(a=1;a<6;a++){
}int b;
int num = 1;
for(a=1;a<6;a++){
for(b=6;b>a;b--){
for(b=1;b<=a;b++){
printf("\n");
}printf(" ");
}for(b=1;b<=a;b++){
printf("%d",num);
num+=1;
}num+=1;
printf("\n");
5.위 ë‘� 프로그램ì�„ ì�¼ë°˜í™” 시켜 ìž…ë ¥ë°›ì�€ 숫ìž�ë§Œí�¼ ì¶œë ¥í•´ì£¼ëŠ” 프로그램ì�„ 작성해주세요.(위 프로그램ì�€ 21ì�„ ìž…ë ¥)
//1.3.6.10 수열ì�´ 규칙ì�„ 찾아서 í–‰ì�„ 만들어 ì£¼ë ¤ê³ í•œë‹¤â€¦ 코딩 ìƒ�ê°� 하는ë�° 시간ì�´ 세시간 초과.. 그래서 6ì�„ ìž…ë ¥í•˜ë©´ í–‰ì�´ 6ì�´ ë�˜ëŠ” 삼ê°�형 만듬..
#include<stdio.h>
int main()
{
{
int i,j;
int num=1;
int a;
int k=0;
printf("ì •ìˆ˜ ìž…ë ¥:");
scanf("%d",&a);
for(i=0;i
for(j=0;j<=i;j++){
printf("%d",num);
printf(" ");
num+=1;
}
printf("\n");
}
return 0;
}int num=1;
int a;
int k=0;
printf("ì •ìˆ˜ ìž…ë ¥:");
scanf("%d",&a);
//규칙
for(i=0;i
for(j=0;j<=i;j++){
printf("%d",num);
printf(" ");
num+=1;
}
printf("\n");
return 0;
6.위 프로그램처럼 숫ìž�를 순서대로 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 피ë�¼ë¯¸ë“œ 형태로 작성해 주세요.
// 숫ìž�로 ëª»í•˜ê² ì–´ì„œ 별로 만들어 봤어요.
#include<stdio.h>
int main()
{
{
int i;
int star;
int blank;
int scan;
printf("행수 ìž…ë ¥:");
scanf("%d",&scan);
for(i=1;i<=scan;i++)
{
for(blank=scan; blank>i;blank--)
}
}int star;
int blank;
int scan;
printf("행수 ìž…ë ¥:");
scanf("%d",&scan);
for(i=1;i<=scan;i++)
{
for(blank=scan; blank>i;blank--)
printf(" ");
for(star=1;star<=2*i-1;star++)printf("*");
printf("\n");
printf("\n");
}
7.위 프로그램처럼 숫ìž�를 순서대로 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 다ì�´ì•„몬드 형태로 작성해 주세요.
// *로 해봤어요..
#include<stdio.h>
int diamond(int a);
int main()
{
int diamond(int a)
{
8.아래 프로그램ì�„ ì°¸ê³ í•˜ì—¬ 60ì � ì�´í•˜ëŠ” F, 61~70ì � D, 71~80 C, 81~90 B, 90~ Aì�¸ 프로그램ì�„ 작성해주세요.
int diamond(int a);
int main()
{
int i;
printf("행수 ìž…ë ¥-홀수: ");
scanf("%d",&i);
diamond(i);
return 0;
}printf("행수 ìž…ë ¥-홀수: ");
scanf("%d",&i);
diamond(i);
return 0;
int diamond(int a)
{
int i,j;
for(i=0;i<=a/2;i++){
}
for(i=0;i
}
return i,j;
}for(i=0;i<=a/2;i++){
for(j=a/2;j>i;j--){
for(j=0;j<=i;j++){
for(j=0;j
printf("\n");
printf(" ");
}for(j=0;j<=i;j++){
printf("*");
}for(j=0;j
printf("*");
}printf("\n");
}
for(i=0;i
for(j=0;j<=i;j++){
}
for(j=a/2;j>i;j--){
for(j=a/2;j>i+1;j--){
}
printf("\n");printf(" ");
}
for(j=a/2;j>i;j--){
printf("*");
}for(j=a/2;j>i+1;j--){
printf("*");
}
}
return i,j;
8.아래 프로그램ì�„ ì°¸ê³ í•˜ì—¬ 60ì � ì�´í•˜ëŠ” F, 61~70ì � D, 71~80 C, 81~90 B, 90~ Aì�¸ 프로그램ì�„ 작성해주세요.
#include <stdio.h>
int main(){
9.101부터200까지ì�˜ ëª¨ë“ ì •ìˆ˜ë¥¼ ë�”해서 반환하는 '함수'를 작성해주세요.(main문ì—�는 sum=Sum(); printf("%d",sum);ì�´ 있ë�„ë¡�해주세요)
#include<stdio.h>
int main(){
int num;
printf("성ì � ìž…ë ¥ : ");
scanf("%d", &num);
switch(num/10){
}printf("성ì � ìž…ë ¥ : ");
scanf("%d", &num);
switch(num/10){
case 10 :
case 9 :
}case 9 :
printf("A\n");
break;
case 8 :break;
printf("B\n");
break;
case 7 :break;
printf("C\n");
break;
case 6:break;
printf("D\n");
break;
default :break;
printf("F\n");
break;
break;
9.101부터200까지ì�˜ ëª¨ë“ ì •ìˆ˜ë¥¼ ë�”해서 반환하는 '함수'를 작성해주세요.(main문ì—�는 sum=Sum(); printf("%d",sum);ì�´ 있ë�„ë¡�해주세요)
#include<stdio.h>
int Sum(int x);
int main()
{
int main()
{
int su;
int sum;
sum=Sum(su);
printf("101부터 200까지� 합: %d\n",sum);
return 0;
}int sum;
sum=Sum(su);
printf("101부터 200까지� 합: %d\n",sum);
return 0;
int Sum(int x)
{
{
int sum=0;
for(x=100;x<201;x++)
}for(x=100;x<201;x++)
sum+=x;
return x,sum;10.재귀함수를 ì�´ìš©í•´ n!ì�„ ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해 주세요.
#include<stdio.h>
int factorial(int x);
int main()
{
int factorial(int x){
int main()
{
int n;
printf("수 ìž…ë ¥:");
scanf("%d",&n);
factorial(n);
printf("%d! = %d\n",n,factorial(n));
return 0;
}printf("수 ìž…ë ¥:");
scanf("%d",&n);
factorial(n);
printf("%d! = %d\n",n,factorial(n));
return 0;
int factorial(int x){
if(x==1)
}return 1;
else returnx*factorial(x-1);
11.n!ì�„ ì¶œë ¥í•˜ëŠ” 프로그램ì�„ for문으로 작성해주세요.
#include<stdio.h>
#include<stdio.h>
int main()
{
int j;
int a;
int factorial=1;
printf("factorial,input number:");
scanf("%d",&a);
if(a==1)
}
printf("%d\n",factorial);
}
int j;
int a;
int factorial=1;
printf("factorial,input number:");
scanf("%d",&a);
if(a==1)
return 1;
for(j=1;j<=a;j++){factorial *=j;
}
printf("%d\n",factorial);
return 0;
12.재귀함수를 �용해 1부터10까지를 �하는 프로그램� 작성해 주세요.
#include<stdio.h>
#include<stdio.h>
int self(int x);
int main(){
int result;
int a;
result =self(a);// 재귀 함수
printf("%d\n",result);
return 0;
}
int self(int x){
int main(){
int result;
int a;
result =self(a);// 재귀 함수
printf("%d\n",result);
return 0;
int self(int x){
int sum=0;
for(x=1;x<11;x++){
return x,sum;
}for(x=1;x<11;x++){
sum=x+sum;
}return x,sum;
13.ë°°ì—´ì—� {7,4,2,9,3,1,2}ê°€ 들어있습니다. ì�´ ë°°ì—´ì—�서 3ì�´ 있는지 없는지를 찾아서 ì¶œë ¥í•´ì£¼ëŠ” 프로그램ì�„ 작성해주세요.
#include<stdio.h>
int main()
{
{
}
14.ë°°ì—´ì—� {7,4,2,9,3,1,2}ê°€ 들어있습니다. ì�´ ë°°ì—´ì—�서 1ì�´ 몇번째ì—� 있는지를 찾아서 ì¶œë ¥í•´ì£¼ëŠ” 프로그램ì�„ 작성해주세요. (단, 7ì�€ 첫번째입니다)
14.ë°°ì—´ì—� {7,4,2,9,3,1,2}ê°€ 들어있습니다. ì�´ ë°°ì—´ì—�서 1ì�´ 몇번째ì—� 있는지를 찾아서 ì¶œë ¥í•´ì£¼ëŠ” 프로그램ì�„ 작성해주세요. (단, 7ì�€ 첫번째입니다)
#include<stdio.h>
int main()
{
{
}
15.ë°°ì—´ì—� {7,4,2,9,3,1,2}ê°€ 들어있습니다. ì�´ ë°°ì—´ì—�서 2ê°€ 있는지 없는지를 ê²€ì‚¬í•˜ê³ , 있다면 ì–´ë””ì—� 있는지 ì „ë¶€ ì¶œë ¥í•´ì£¼ëŠ” 프로그램ì�„ 작성해주세요.
15.ë°°ì—´ì—� {7,4,2,9,3,1,2}ê°€ 들어있습니다. ì�´ ë°°ì—´ì—�서 2ê°€ 있는지 없는지를 ê²€ì‚¬í•˜ê³ , 있다면 ì–´ë””ì—� 있는지 ì „ë¶€ ì¶œë ¥í•´ì£¼ëŠ” 프로그램ì�„ 작성해주세요.
// 몇번째 있는지는 if문ì�´ ë‘� 번ë�Œì•„서 3번째 7번째 뜨는ë�°.. 한번ì—� ì¶œë ¥í•˜ëŠ” 거는 잘 ëª»í•˜ê² ì–´ìš”â€¦
#include<stdio.h>int main()
{
{
}
16.ë°°ì—´ì—� {7,4,2,9,3,1,2}ê°€ 들어있습니다. ì�´ ë°°ì—´ì�„ ì •ë ¬(오름차순으로)í•˜ê³ , ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해주세요.
#include<stdio.h>
void sort(int a[], int n);
void main()
{
}
void main()
{
}
void sort(int a[], int n)
{
{
â€¢ì˜ˆìŠµê³¼ì œ
1.2ì°¨ì›� ë°°ì—´ì�´ 무엇ì�¸ì§€ ì“°ê³ , 어떻게 ì„ ì–¸í•˜ëŠ”ì§€ë�„ 작성한 ë’¤, ì�´ë¥¼ ì�´ìš©í•œ 간단한 프로그램ì�„ 작성해주세요.
-ë�™ì�¼í•œ ë�°ì�´í„°í˜•ì�˜ ë§Žì�€ 변수를 처리하기 위한 단수 변수를 사용하면 변수ì�´ë¦„ì�„ ê°�ê°� 다른 ì�´ë¦„으로 사용해야하기 때문ì—� ë§Žì�€ 불편ì�´ 따른다. ì�´ëŸ¬í•œ 불편함ì�„ ë�œê¸° 위하여 ê°™ì�€ ë�°ì�´í„°í˜•ì�¸ ì�¼ë ¨ì�˜ 기억장소를 표현한 변수를 '배열변수'ë�¼ 한다. 즉 ë°°ì—´ì�„ ì�´ìš©í•˜ë©´ 여러개ì�˜ 변수를 간단히 í‘œí˜„í• ìˆ˜ê°€ 있다. 2ì°¨ì›� ë°°ì—´ì�€ 'ë�°ì�´í„°í˜•,배열명,ê·¸ë¦¬ê³ í–‰ê³¼ì—´'ì�„ 나타내어 표현한다. 1ì°¨ì›� ë°°ì—´ì�€ ë°°ì—´ 요소ì�˜ í�¬ê¸°ì™€ ë�°ì�´í„°í˜•ì�´ ë�™ì�¼í•œ 기억장소를 1ê°œì�˜ ì°¨ì›�으로 ì„ ì–¸í•˜ì˜€ë‹¤ê³ ë§�하면 2ì°¨ì›� ë°°ì—´ì�€ 2ì°¨ì›�으로 ì„ ì–¸(행과열)한 것ì�´ë‹¤.
#include<stdio.h>
int main()
{
{
static int x23; //2í–‰ 3ì—´ì�˜ 2ì°¨ì›� ë°°ì—´ì„ ì–¸
int j,k,sum;
x00 = 1;
x01 = 2;
x02 = 3;
x10 = 4;
x11 = 5;
x12 = 6;
sum=0;
for(j=0;j<2;j++) //í–‰
printf("2차� 배열� 합=%d\n",sum);
}int j,k,sum;
x00 = 1;
x01 = 2;
x02 = 3;
x10 = 4;
x11 = 5;
x12 = 6;
sum=0;
for(j=0;j<2;j++) //í–‰
printf("2차� 배열� 합=%d\n",sum);
2.srand()함수가 무엇ì�¸ì§€ ì°¾ì•„ì“°ê³ , time()ì�„ ì�´ìš©í•´ ëžœë�¤ìœ¼ë¡œ 숫ìž�를 하나 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해주세요.
- 난수(random number)를 ìƒ�ì„±í• ë•Œ stdlib.hí—¤ë�”파ì�¼ì�„ 코드ì—� í�¬í•¨ì‹œí‚¤ê³ srand()를 사용한다.rand()함수는 매번 ê·¸ ê°’ì�´ ê°™ì�€ 반면ì—� 매실행때마다 난수를 다르게 ìƒ�성하기 위해서 srand()를 사용한다.
srandì—시 stdlib.hì—� í�¬í•¨ë�˜ì–´ 있다. srand는 시드값ì�„ 주어 사용하는 것ì�´ê³ ê·¸ 시드값으로부터 íŠ¹ì •í•œ 법칙으로 난수를 ìƒ�성하는 것ì�´ë‹¤.ë”°ë�¼ì„œ 매번 다른 난수를 ì–»ìœ¼ë ¤ë©´ 시드값ì�„ 계ì†� 바꾸어주어야 한다.
ì�´ëŸ¬í•œ ì½”ë“œê°œì„ ì�„ 위해서 time()함수를 사용해야 한다. ì�´ 함수를 사용하기 위해 time.h í—¤ë�” 파ì�¼ì�„ 코드ì—� í�¬í•¨ì‹œì¼œì•¼ 한다. ë˜�한 time함수는 1970ë…„ 1ì›” 1ì�¼ ì�´í›„ 경과ë�œ 시간ì�„ ì´ˆ 단위로 반환하는 함수 ì�´ë‹¤.
srandì—시 stdlib.hì—� í�¬í•¨ë�˜ì–´ 있다. srand는 시드값ì�„ 주어 사용하는 것ì�´ê³ ê·¸ 시드값으로부터 íŠ¹ì •í•œ 법칙으로 난수를 ìƒ�성하는 것ì�´ë‹¤.ë”°ë�¼ì„œ 매번 다른 난수를 ì–»ìœ¼ë ¤ë©´ 시드값ì�„ 계ì†� 바꾸어주어야 한다.
ì�´ëŸ¬í•œ ì½”ë“œê°œì„ ì�„ 위해서 time()함수를 사용해야 한다. ì�´ 함수를 사용하기 위해 time.h í—¤ë�” 파ì�¼ì�„ 코드ì—� í�¬í•¨ì‹œì¼œì•¼ 한다. ë˜�한 time함수는 1970ë…„ 1ì›” 1ì�¼ ì�´í›„ 경과ë�œ 시간ì�„ ì´ˆ 단위로 반환하는 함수 ì�´ë‹¤.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<stdlib.h>
#include<time.h>
int main()
{
{
int a=0;
printf("rand()함수를 사용,1개� random number 나타내기 \n");
srand(time(NULL)); //시드값 = 시간
printf("%d\n",rand());
return 0;
}printf("rand()함수를 사용,1개� random number 나타내기 \n");
printf("%d\n",rand());
return 0;
3.í�¬ì�¸í„°ê°€ 무엇ì�¸ì§€ ì“°ê³ , í�¬ì�¸í„°ë¥¼ ì„ ì–¸í•˜ëŠ” 방법ì�„ 쓰세요.
-í�¬ì�¸í„°ëŠ” 기억장소ì—� 있는 ì–´ë–¤ 변수ì�˜ 주소를 ë§�한다. 즉, 다른 기억장소 위치ì�˜ 주소를 ê°–ê³ ìžˆëŠ” 변수ì�´ë‹¤.í�¬ì�¸í„°ëŠ” ë‘�ê°œì�˜ 단ì�¼ ì—°ì‚°ìž�ì�¸ &와 *로서 ì •ì�˜í•œë‹¤. &ì—°ì‚°ìž�는 ì�¼ë°˜ì �ì�¸ 변수 ì�´ë¦„으로 사용ë�˜ê³ ê·¸ 변수ì�˜ 주소를 ì�˜ë¯¸í•œë‹¤. 즉 &a는 aì�˜ 주소를 ì�˜ë¯¸í•œë‹¤. *p는 p안ì—� 있는 주소 위치ì�˜ ë‚´ìš©ì�„ ì�˜ë¯¸í•œë‹¤. &는 주소 ì—°ì‚°ìž�ì�´ê³ , *는 ê°„ì ‘ ì—°ì‚°ìž�로 í�¬ì�¸í„°ì„ ì–¸ì�„ ì�˜ë¯¸í•œë‹¤. ì�¼ë°˜ì �ì�¸ í�¬ì�¸í„° ì„ ì–¸í˜•ì‹�: ë�°ì�´í„°í˜• *í�¬ì�¸í„°ë³€ìˆ˜ëª…; ì�´ë‹¤.
-í�¬ì�¸í„°ëŠ” 기억장소ì—� 있는 ì–´ë–¤ 변수ì�˜ 주소를 ë§�한다. 즉, 다른 기억장소 위치ì�˜ 주소를 ê°–ê³ ìžˆëŠ” 변수ì�´ë‹¤.í�¬ì�¸í„°ëŠ” ë‘�ê°œì�˜ 단ì�¼ ì—°ì‚°ìž�ì�¸ &와 *로서 ì •ì�˜í•œë‹¤. &ì—°ì‚°ìž�는 ì�¼ë°˜ì �ì�¸ 변수 ì�´ë¦„으로 사용ë�˜ê³ ê·¸ 변수ì�˜ 주소를 ì�˜ë¯¸í•œë‹¤. 즉 &a는 aì�˜ 주소를 ì�˜ë¯¸í•œë‹¤. *p는 p안ì—� 있는 주소 위치ì�˜ ë‚´ìš©ì�„ ì�˜ë¯¸í•œë‹¤. &는 주소 ì—°ì‚°ìž�ì�´ê³ , *는 ê°„ì ‘ ì—°ì‚°ìž�로 í�¬ì�¸í„°ì„ ì–¸ì�„ ì�˜ë¯¸í•œë‹¤. ì�¼ë°˜ì �ì�¸ í�¬ì�¸í„° ì„ ì–¸í˜•ì‹�: ë�°ì�´í„°í˜• *í�¬ì�¸í„°ë³€ìˆ˜ëª…; ì�´ë‹¤.
4.ë°°ì—´ê³¼ í�¬ì�¸í„°ì�˜ 공통ì �ê³¼ ì°¨ì�´ì �ì�„ ì°¾ì•„ë³´ê³ , ì�¨ë³´ë�„ë¡� 하세요.
-공통ì �ì�¸ 부분ì�€ ë°°ì—´ì�´ 첨ìž�ì—� ì�˜í•´ì„œ 행해지는 ì¡°ìž‘ì�€ í�¬ì�¸í„°ë¡œì„œ 모ë‘� í‘œí˜„í• ìˆ˜ 있다는 것ì�´ë‹¤.
예를 들어
ì„ ì–¸ë¬¸ ---> int a3, int *ptr =a;
ë°°ì—´ê³¼ ì„ ì–´ë¬¸ ---> a0 == *ptr
위와 ê°™ì�€ 표현 가능하다.(í�¬ì�¸í„°ëª…ì—� *ì�„ 사용하는 것ì�€ 지시하는 ê³³ì—� ì €ìž¥ë�œ ê°’ì�„ 나타내는 것ì�´ë‹¤.)
예를 들어
ì„ ì–¸ë¬¸ ---> int a3, int *ptr =a;
ë°°ì—´ê³¼ ì„ ì–´ë¬¸ ---> a0 == *ptr
위와 ê°™ì�€ 표현 가능하다.(í�¬ì�¸í„°ëª…ì—� *ì�„ 사용하는 것ì�€ 지시하는 ê³³ì—� ì €ìž¥ë�œ ê°’ì�„ 나타내는 것ì�´ë‹¤.)
ì°¨ì�´ì �으로는 í�¬ì�¸í„°ëŠ” 변수ì�¸ë�° 비해 ë°°ì—´ì�€ ìƒ�수ì�´ê³ í�¬ì�¸í„°ëŠ” ì–¸ì œë“ ì§€ 다른 대ìƒ�ì�„ 가리킬수 있지만 ë°°ì—´ì�€ ì„ ì–¸ë� 때 ê·¸ 위치가 ì�´ë¯¸ ê³ ì •ë�˜ì–´ 다른 대ìƒ�ì�„ 가리킬 수 없다.ë˜�한 í�¬ì�¸í„°ëŠ” ë�™ì �으로 ê²°ì •í• ìˆ˜ 있지만 ë°°ì—´ì�´ 가리키는 ë°°ì—´ì�˜ í�¬ê¸°ëŠ” ì„ ì–¸í• ë•Œë¶€í„° ì •ì �으로 ê²°ì •ë�˜ì–´ìžˆë‹¤. 배열로 []ì—°ì‚°ìž�를 ì�´ìš©í•´ ê·¸ ê°’ì�„ ì�½ëŠ” 것과 í�¬ì�¸í„° ê°„ì ‘ 참조 연산으로 ê·¸ ê°’ì�„ ì�½ëŠ” 것ì�˜ ì†�ë�„ ì°¨ì�´ê°€ 있다.
ë�„ìƒ�í�¬ ¶
ë³µìŠµê³¼ì œ
1. 0ê³¼ 1000 사ì�´ì�˜ ì •ìˆ˜ë¥¼ ìž…ë ¥ë°›ì•„ ëª¨ë“ ìž�릿수를 ë�”하여 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ ì§œ 주세요.
/10, %10 등� �용해서 해 보세요.
#include <stdio.h>
int main(){
1. 0ê³¼ 1000 사ì�´ì�˜ ì •ìˆ˜ë¥¼ ìž…ë ¥ë°›ì•„ ëª¨ë“ ìž�릿수를 ë�”하여 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ ì§œ 주세요.
/10, %10 등� �용해서 해 보세요.
#include <stdio.h>
int main(){
int num;
int temp1, temp2, temp3;
int sum=0;
printf("0-1000사ì�´ì�˜ 수 ìž…ë ¥: ");
scanf("%d", &num);
if(num>=0 && num<=1000)
{
return 0;
}//01.cint temp1, temp2, temp3;
int sum=0;
scanf("%d", &num);
if(num>=0 && num<=1000)
{
temp1=num/1000;
temp2=num%1000;
sum=temp1;
temp1=temp2/100;
temp3=temp2%100;
sum+=temp1;
temp1=temp3/10;
temp2=temp3%10;
sum+=temp1;
sum+=temp2;
printf("%d\n",sum);
}else printf("0-1000사�� 숫� 아님\n");temp2=num%1000;
sum=temp1;
temp1=temp2/100;
temp3=temp2%100;
sum+=temp1;
temp1=temp3/10;
temp2=temp3%10;
sum+=temp1;
sum+=temp2;
printf("%d\n",sum);
return 0;
2. 소문�를 대문�로 바꾸는 프로그램� 작성해 주세요.
#include <stdio.h>
int main(){
#include <stdio.h>
int main(){
char al1,al2 ;
printf("ìž…ë ¥: ");
scanf("%c",&al1);
if(al1>='a' && al1<='z') //소문�� 경우
return 0;
}//ì�¸í„°ë„· 참조했ì�Œ! 02.cprintf("ìž…ë ¥: ");
scanf("%c",&al1);
if(al1>='a' && al1<='z') //소문�� 경우
al2=al1-32; //아스키코드�서 32빼서 소문�로 변환
else if(al1>'A' && al1<='Z') //대문�� 경우al2=al1+32; //아스키코드�서 32를 �해서 대문�로 변환
printf("%c\n",al2);return 0;
3. 다ì�Œ 모양ì�„ ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해 주세요.
한ìž�리 숫ìž�ì�´ë‹¤ê°€ 2ìž�리 숫ìž�ì�´ë©´ì„œ 깨지는 것ì�€ 예외처리해주셔ë�„ ë�˜ê³ 하지 않으셔ë�„ ë�©ë‹ˆë‹¤.
방법� if(10>x) printf(" ");입니다.
1
16 17 18 19 20 21
한ìž�리 숫ìž�ì�´ë‹¤ê°€ 2ìž�리 숫ìž�ì�´ë©´ì„œ 깨지는 것ì�€ 예외처리해주셔ë�„ ë�˜ê³ 하지 않으셔ë�„ ë�©ë‹ˆë‹¤.
방법� if(10>x) printf(" ");입니다.
1
2 3
4 5 6
7 8 9 10
11 12 13 14 154 5 6
7 8 9 10
16 17 18 19 20 21
#include <stdio.h>
int main(){
int main(){
int i, j;
int num=1;
for(i=1 ; i<=6 ; i++){
return 0;
}//03.cint num=1;
for(i=1 ; i<=6 ; i++){
for(j=1 ; j
printf("\n");
}printf("%3d",num);
num+=1;
}num+=1;
printf("\n");
return 0;
4. 다ì�Œ 모양ì�„ ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해 주세요.
1
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21#include <stdio.h>
int main(){
int main(){
int i, j, k;
int num=1;
for(i=1 ; i<=6 ; i++){
return 0;
}//04.cint num=1;
for(i=1 ; i<=6 ; i++){
for(j=5 ; j>=i ; j--){
for(k=1 ; k
printf("\n");
}printf(" ");
}for(k=1 ; k
printf("%3d",num);
num+=1;
}num+=1;
printf("\n");
return 0;
5. 위 ë‘� 프로그램ì�„ ì�¼ë°˜í™” 시켜 ìž…ë ¥ë°›ì�€ 숫ìž�ë§Œí�¼ ì¶œë ¥í•´ì£¼ëŠ” 프로그램ì�„ 작성해주세요.(위 프로그램ì�€ 21ì�„ ìž…ë ¥)
#include <stdio.h>
int main(){
int i, j, n;
int num=1;
scanf("%d",&n);
for(i=1 ; ; i++){
return 0;
}//05.c int num=1;
scanf("%d",&n);
for(i=1 ; ; i++){
for(j=1 ; j
printf("\n");
}if(n==num){
printf("%3d",num);
num+=1;
}printf("%3d",num);
printf("\n");
return 0;
}printf("\n");
return 0;
printf("%3d",num);
num+=1;
printf("\n");
return 0;
6. 위 프로그램처럼 숫ìž�를 순서대로 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 피ë�¼ë¯¸ë“œ 형태로 작성해 주세요.
#include <stdio.h>
int main(){
#include <stdio.h>
int main(){
int i, j, k, n;
int num=1;
scanf("%d",&n);
for(i=0;i
return 0;
}int num=1;
scanf("%d",&n);
for(i=0;i
for(j=1 ; j
for(k=0 ; k<2*i+1 ; k++){
printf("\n");
}printf(" ");
}for(k=0 ; k<2*i+1 ; k++){
printf("%3d",num);
num++;
}num++;
printf("\n");
return 0;
7. 위 프로그램처럼 숫ìž�를 순서대로 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 다ì�´ì•„몬드 형태로 작성해 주세요.
8.아래 프로그램ì�„ ì°¸ê³ í•˜ì—¬ 60ì � ì�´í•˜ëŠ” F, 61~70ì � D, 71~80 C, 81~90 B, 90~ Aì�¸ 프로그램ì�„ 작성해주세요.
#include <stdio.h>
int main(){
#include <stdio.h>
int main(){
int num;
printf("성ì � ìž…ë ¥ : ");
scanf("%d", &num);
switch((num-1)/10){
}//08.c ì�¸í„°ë„·ì°¸ì¡°!printf("성ì � ìž…ë ¥ : ");
scanf("%d", &num);
switch((num-1)/10){
case 9 :
} printf("A\n");
break;
case 8 :break;
printf("B\n");
break;
case 7 :break;
printf("C\n");
break;
case 6 :break;
printf("D\n");
break;
default :break;
printf("F\n");
break;
break;
9. 101부터 200까지ì�˜ ëª¨ë“ ì •ìˆ˜ë¥¼ ë�”해서 반환하는 '함수'를 작성해주세요.
(main문�는 sum=Sum(); printf("%d",sum);� 있��해주세요)
#include <stdio.h>
int Sum(void);
int main(){
int Sum(void){
(main문�는 sum=Sum(); printf("%d",sum);� 있��해주세요)
#include <stdio.h>
int Sum(void);
int main(){
int sum;
sum = Sum();
printf("%d\n",sum);
return 0;
}sum = Sum();
printf("%d\n",sum);
return 0;
int Sum(void){
int x=101;
int sum=0;
for(x=101 ; x<=200 ; x++)
return sum;
}//09.cint sum=0;
for(x=101 ; x<=200 ; x++)
sum+=x;
return sum;
10. 재귀함수를 ì�´ìš©í•´ n!ì�„ ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해 주세요.
#include <stdio.h>
#include <stdio.h>
int fac(int);
int main(){
int main(){
int num;
printf("숫ìž� ìž…ë ¥ : ");
scanf("%d", &num);
printf("%d! = %d\n",num, fac(num));
return 0;
}printf("숫ìž� ìž…ë ¥ : ");
scanf("%d", &num);
printf("%d! = %d\n",num, fac(num));
return 0;
int fac(int x){
if(x==1)
}//10.creturn 1;
elsereturn x*fac(x-1);
11. n!ì�„ ì¶œë ¥í•˜ëŠ” 프로그램ì�„ for문으로 작성해주세요.
#include <stdio.h>
int main(){
#include <stdio.h>
int main(){
int i, num;
int fac=1;
printf("숫ìž� ìž…ë ¥ : ");
scanf("%d", &num);
for(i=1 ; i<=num ; i++){
printf("%d! = %d\n",num, fac);
return 0;
}//11.cint fac=1;
printf("숫ìž� ìž…ë ¥ : ");
scanf("%d", &num);
for(i=1 ; i<=num ; i++){
fac *= i;
}printf("%d! = %d\n",num, fac);
return 0;
12. 재귀함수를 �용해 1부터10까지를 �하는 프로그램� 작성해 주세요.
#include <stdio.h>
int sum(int);
int main(){
#include <stdio.h>
int sum(int);
int main(){
printf("1부터 10까지 합 : %d\n", sum(10));
return 0;
}return 0;
int sum(int x){
if(x>0) return (x+sum(x-1));
else return 0;
}
13. ë°°ì—´ì—� {7,4,2,9,3,1,2}ê°€ 들어있습니다. ì�´ ë°°ì—´ì—�서 3ì�´ 있는지 없는지를 찾아서 ì¶œë ¥í•´ì£¼ëŠ” 프로그램ì�„ 작성해주세요.
#include <stdio.h>
int main(){
if(x>0) return (x+sum(x-1));
else return 0;
13. ë°°ì—´ì—� {7,4,2,9,3,1,2}ê°€ 들어있습니다. ì�´ ë°°ì—´ì—�서 3ì�´ 있는지 없는지를 찾아서 ì¶œë ¥í•´ì£¼ëŠ” 프로그램ì�„ 작성해주세요.
#include <stdio.h>
int main(){
int arr[] = {7,4,2,9,3,1,2};
int i;
int k=0;
for(i=0 ; i<7 ; i++){
if(k!=0)
}//13.cint i;
int k=0;
for(i=0 ; i<7 ; i++){
if(arri==3) k++;
}if(k!=0)
printf("3 존재\n");
elseprintf("3 없�\n");
return 0;14. ë°°ì—´ì—� {7,4,2,9,3,1,2}ê°€ 들어있습니다. ì�´ ë°°ì—´ì—�서 1ì�´ 몇번째ì—� 있는지를 찾아서 ì¶œë ¥í•´ì£¼ëŠ” 프로그램ì�„ 작성해주세요. (단, 7ì�€ 첫번째입니다)
#include <stdio.h>
int main(){
#include <stdio.h>
int main(){
int arr[]={7,4,2,9,3,1,2};
int i;
for(i=0 ; i<7 ; i++){
}
return 0;
}//14.cint i;
for(i=0 ; i<7 ; i++){
}
return 0;
15. ë°°ì—´ì—� {7,4,2,9,3,1,2}ê°€ 들어있습니다. ì�´ ë°°ì—´ì—�서 2ê°€ 있는지 없는지를 ê²€ì‚¬í•˜ê³ , 있다면 ì–´ë””ì—� 있는지 ì „ë¶€ ì¶œë ¥í•´ì£¼ëŠ” 프로그램ì�„ 작성해주세요.
#include <stdio.h>
int main(){
#include <stdio.h>
int main(){
int i;
int c=0;
int arr[]={7,4,2,9,3,1,2};
for(i=0 ; i<7 ; i++){
if(c!=0){
}else printf("2 없�\n");
return 0;
}//15.cint c=0;
int arr[]={7,4,2,9,3,1,2};
for(i=0 ; i<7 ; i++){
if(arri==2) c++;
}if(c!=0){
}else printf("2 없�\n");
return 0;
16. ë°°ì—´ì—� {7,4,2,9,3,1,2}ê°€ 들어있습니다. ì�´ ë°°ì—´ì�„ ì •ë ¬(오름차순으로)í•˜ê³ , ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해주세요.
#include <stdio.h>
int main(){
#include <stdio.h>
int main(){
int arr[]={7,4,2,9,3,1,2};
int temp;
int i,j;
for(i=0 ; i<7 ;i++) printf("%d ",arri);
printf("\n");
for(i=0 ; i<6 ; i++){
}
for(i=0 ; i<7 ;i++) printf("%d ",arri);
printf("\n");
return 0;
}//16.cint temp;
int i,j;
for(i=0 ; i<7 ;i++) printf("%d ",arri);
printf("\n");
for(i=0 ; i<6 ; i++){
}
for(i=0 ; i<7 ;i++) printf("%d ",arri);
printf("\n");
return 0;
ì˜ˆìŠµê³¼ì œ
1. 2ì°¨ì›� ë°°ì—´ì�´ 무엇ì�¸ì§€ ì“°ê³ , 어떻게 ì„ ì–¸í•˜ëŠ”ì§€ë�„ 작성한 ë’¤, ì�´ë¥¼ ì�´ìš©í•œ 간단한 프로그램ì�„ 작성해주세요.
int arrij;
길�가 i� int형 배열� j개 모아 놓� 배열.
첫번째 ì�¸ë�±ìФ ê°’(i)ì�´ ì�˜ë¯¸í•˜ëŠ” 바는 세로줄(ì—´)ì�˜ 길ì�´ì�´ê³ , ë‘�번째 ì�¸ë�±ìФ ê°’(j)ì�´ ì�˜ë¯¸í•˜ëŠ” 바는 가로줄(í–‰)ì�˜ 길ì�´.
1. 2ì°¨ì›� ë°°ì—´ì�´ 무엇ì�¸ì§€ ì“°ê³ , 어떻게 ì„ ì–¸í•˜ëŠ”ì§€ë�„ 작성한 ë’¤, ì�´ë¥¼ ì�´ìš©í•œ 간단한 프로그램ì�„ 작성해주세요.
int arrij;
길�가 i� int형 배열� j개 모아 놓� 배열.
첫번째 ì�¸ë�±ìФ ê°’(i)ì�´ ì�˜ë¯¸í•˜ëŠ” 바는 세로줄(ì—´)ì�˜ 길ì�´ì�´ê³ , ë‘�번째 ì�¸ë�±ìФ ê°’(j)ì�´ ì�˜ë¯¸í•˜ëŠ” 바는 가로줄(í–‰)ì�˜ 길ì�´.
#include <stdio.h>
int main(){
}
2. srand()함수가 무엇ì�¸ì§€ ì°¾ì•„ì“°ê³ , time()ì�„ ì�´ìš©í•´ ëžœë�¤ìœ¼ë¡œ 숫ìž�를 하나 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해주세요.
seedê°’ì�„ ìž…ë ¥ë°›ì•„ 난수를 ìƒ�성하는 함수.
rand()%a+b : a부터 b까지 수 ëžœë�¤ ì¶œë ¥
#include <stdio.h>
#include <stdlib.h> //rand함수 사용
#include <time.h> //time함수 사용
int main(){
}
2. srand()함수가 무엇ì�¸ì§€ ì°¾ì•„ì“°ê³ , time()ì�„ ì�´ìš©í•´ ëžœë�¤ìœ¼ë¡œ 숫ìž�를 하나 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해주세요.
seedê°’ì�„ ìž…ë ¥ë°›ì•„ 난수를 ìƒ�성하는 함수.
rand()%a+b : a부터 b까지 수 ëžœë�¤ ì¶œë ¥
#include <stdio.h>
#include <stdlib.h> //rand함수 사용
#include <time.h> //time함수 사용
int main(){
srand(time(NULL));
printf("%d\n",rand()%100+1); //1-100중 하나 ì¶œë ¥
return 0;
}//1_02.cprintf("%d\n",rand()%100+1); //1-100중 하나 ì¶œë ¥
return 0;
3. í�¬ì�¸í„°ê°€ 무엇ì�¸ì§€ ì“°ê³ , í�¬ì�¸í„°ë¥¼ ì„ ì–¸í•˜ëŠ” 방법ì�„ 쓰세요.
í�¬ì�¸í„°ëž€ 메모리ì�˜ 주소 ê°’ì�„ ì €ìž¥í•˜ê¸° 위한 변수. 타입ì—� ìƒ�관없ì�´ í�¬ê¸°ëŠ” 4ë°”ì�´íЏ(컴퓨터 주소 체계가 4ë°”ì�´íŠ¸ë¡œ 표현ë�œë‹¤ëŠ” 것ì�„ ì�˜ë¯¸)
í�¬ì�¸í„°ëž€ 메모리ì�˜ 주소 ê°’ì�„ ì €ìž¥í•˜ê¸° 위한 변수. 타입ì—� ìƒ�관없ì�´ í�¬ê¸°ëŠ” 4ë°”ì�´íЏ(컴퓨터 주소 체계가 4ë°”ì�´íŠ¸ë¡œ 표현ë�œë‹¤ëŠ” 것ì�„ ì�˜ë¯¸)
int *a; //int형 변수� 주소 값� 지� 수 있는 int형 ��터.
char *b; // char형 변수� 주소 값� 지� 수 있는 char형 ��터.
double *c; // double형 변수� 주소 값� 지� 수 있는 double형 ��터.
char *b; // char형 변수� 주소 값� 지� 수 있는 char형 ��터.
double *c; // double형 변수� 주소 값� 지� 수 있는 double형 ��터.
4. ë°°ì—´ê³¼ í�¬ì�¸í„°ì�˜ 공통ì �ê³¼ ì°¨ì�´ì �ì�„ ì°¾ì•„ë³´ê³ , ì�¨ë³´ë�„ë¡� 하세요.
ë°°ì—´ arrê°€ ì„ ì–¸ë�˜ì–´ ìžˆê³ , í�¬ì�¸í„° pì�´ ë°°ì—´ì�˜ 시작주소를 ê°€ë¦¬í‚¤ê³ ìžˆë‹¤ë©´!
ë°°ì—´ arrê°€ ì„ ì–¸ë�˜ì–´ ìžˆê³ , í�¬ì�¸í„° pì�´ ë°°ì—´ì�˜ 시작주소를 ê°€ë¦¬í‚¤ê³ ìžˆë‹¤ë©´!
<ë°°ì—´ê³¼ í�¬ì�¸í„°ì�˜ 공통ì �>
- arr와 p� 주소를 나타냄
- arri와 *(p+i)는 같�
- arri와 pi는 같�
- *arr 혹� *p� 가능함
- *(arr+i) 혹� *(p+i)가 가능
<ë°°ì—´ê³¼ í�¬ì�¸í„°ì�˜ ì°¨ì�´ì �>
- 배열명ì�€ ìƒ�수ì�´ê³ í�¬ì�¸í„°ëŠ” 변수
- 배열명ì—� 주소를 ëŒ€ìž…í• ìˆ˜ 없다.
- 배열명� ��연산�(array++, array--)를 쓸 수 없다
- arri와 *(p+i)는 같�
- arri와 pi는 같�
- *arr 혹� *p� 가능함
- *(arr+i) 혹� *(p+i)가 가능
<ë°°ì—´ê³¼ í�¬ì�¸í„°ì�˜ ì°¨ì�´ì �>
- 배열명ì�€ ìƒ�수ì�´ê³ í�¬ì�¸í„°ëŠ” 변수
- 배열명ì—� 주소를 ëŒ€ìž…í• ìˆ˜ 없다.
- 배열명� ��연산�(array++, array--)를 쓸 수 없다
한송ì�´ ¶
ë³µìŠµê³¼ì œ
1. 0ê³¼ 1000 사ì�´ì�˜ ì •ìˆ˜ë¥¼ ìž…ë ¥ë°›ì•„ ëª¨ë“ ìž�릿수를 ë�”하여 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ ì§œ 주세요.(/10, %10 등ì�„ ì�´ìš©í•´ì„œ í•´ 보세요.)
#include <stdio.h>
1. 0ê³¼ 1000 사ì�´ì�˜ ì •ìˆ˜ë¥¼ ìž…ë ¥ë°›ì•„ ëª¨ë“ ìž�릿수를 ë�”하여 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ ì§œ 주세요.(/10, %10 등ì�„ ì�´ìš©í•´ì„œ í•´ 보세요.)
#include <stdio.h>
int main()
{
{
int num,a,b,c,d;
printf("숫ìž�를 ìž…ë ¥í•˜ì„¸ìš” : â€�);
scanf("%d",&num);
if(99
{
else if(num<100)
{
}printf("숫ìž�를 ìž…ë ¥í•˜ì„¸ìš” : â€�);
scanf("%d",&num);
if(99
{
a=num/100;
b=num%100;
c=b/10;
d=b%10;
printf("%d� �리수� 합� %d입니다.\n",num,a+c+d);
}b=num%100;
c=b/10;
d=b%10;
printf("%d� �리수� 합� %d입니다.\n",num,a+c+d);
else if(num<100)
{
a=num/10;
b=num%10;
printf("%d� �리수� 합� %d입니다.\n",num,a+b);
}b=num%10;
printf("%d� �리수� 합� %d입니다.\n",num,a+b);
2. 소문�를 대문�로 바꾸는 프로그램� 작성해 주세요.
#include<stdio.h>
#include<string.h>
#include<stdio.h>
#include<string.h>
int main()
{
////ì±…ì—�서 ì°¸ê³
3. 다ì�Œ 모양ì�„ ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해 주세요.
o 한ìž�리 숫ìž�ì�´ë‹¤ê°€ 2ìž�리 숫ìž�ì�´ë©´ì„œ 깨지는 것ì�€ 예외처리해주셔ë�„ ë�˜ê³ 하지 않으셔ë�„ ë�©ë‹ˆë‹¤.
o 방법� if(10>x) printf(" ");입니다.
16 17 18 19 20 21
{
char in50,out50;
int i,len;
int diff='a'-'A';
printf("문ìž� ìž…ë ¥ : ");
gets(in);
len = strlen(in);
for(i=0;i
{
}
outi = '\0';
printf("변환� 문� : %s \n", out);
}int i,len;
int diff='a'-'A';
printf("문ìž� ìž…ë ¥ : ");
gets(in);
len = strlen(in);
for(i=0;i
{
}
outi = '\0';
printf("변환� 문� : %s \n", out);
////ì±…ì—�서 ì°¸ê³
3. 다ì�Œ 모양ì�„ ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해 주세요.
o 한ìž�리 숫ìž�ì�´ë‹¤ê°€ 2ìž�리 숫ìž�ì�´ë©´ì„œ 깨지는 것ì�€ 예외처리해주셔ë�„ ë�˜ê³ 하지 않으셔ë�„ ë�©ë‹ˆë‹¤.
o 방법� if(10>x) printf(" ");입니다.
1
2 3
4 5 6
7 8 9 10
11 12 13 14 152 3
4 5 6
7 8 9 10
16 17 18 19 20 21
4. 다ì�Œ 모양ì�„ ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해 주세요.
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 215. 위 ë‘� 프로그램ì�„ ì�¼ë°˜í™” 시켜 ìž…ë ¥ë°›ì�€ 숫ìž�ë§Œí�¼ ì¶œë ¥í•´ì£¼ëŠ” 프로그램ì�„ 작성해주세요.(위 프로그램ì�€ 21ì�„ ìž…ë ¥)
6. 위 프로그램처럼 숫ìž�를 순서대로 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 피ë�¼ë¯¸ë“œ 형태로 작성해 주세요.
7. 위 프로그램처럼 숫ìž�를 순서대로 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 다ì�´ì•„몬드 형태로 작성해 주세요.
8. 아래 프로그램ì�„ ì°¸ê³ í•˜ì—¬ 60ì � ì�´í•˜ëŠ” F, 61~70ì � D, 71~80 C, 81~90 B, 90~ Aì�¸ 프로그램ì�„ 작성해주세요.
#include <stdio.h>
int main()
{
#include <stdio.h>
int main()
{
int num;
char grade;
printf("성ù¨¬ì �u ìž…Oë ¥Â¤A : ");
scanf("%d", &num);
switch(num/10){
}char grade;
printf("성ù¨¬ì �u ìž…Oë ¥Â¤A : ");
scanf("%d", &num);
switch(num/10){
case 10 :
printf("A\n");
}break;
case 9 :printf("A\n");
break;
case 8 :break;
printf("B\n");
break;
case 7 :break;
printf("C\n");
break;
case 6 :break;
printf("D\n");
break;
default :break;
printf("F\n");
break;
break;
9. 101부터200까지ì�˜ ëª¨ë“ ì •ìˆ˜ë¥¼ ë�”해서 반환하는 '함수'를 작성해주세요.(main문ì—�는 sum=Sum(); printf("%d",sum);ì�´ 있ë�„ë¡�해주세요)
#include <stdio.h>
int Sum(int n);
int main()
{
int Sum(int n)
{
{
int sum;
sum=Sum(200);
printf("101~200까¾i지o�C 합O�¨¬ %d\n",Sum);
return 0;
}sum=Sum(200);
printf("101~200까¾i지o�C 합O�¨¬ %d\n",Sum);
return 0;
int Sum(int n)
{
if(n==101)
return n+Sum(n-1);
}return 0;
else return n+Sum(n-1);
10. 재귀함수를 ì�´ìš©í•´ n!ì�„ ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해 주세요.
#include <stdio.h>
#include <stdio.h>
int fact(int n);
int main()
{
{
int n;
printf("숫ìž�를 ìž…ë ¥í•˜ì„¸ìš” : ");
scanf("%d",&n);
printf("fact(%d) = %1d입니다. \n",n,fact(n));
}printf("숫ìž�를 ìž…ë ¥í•˜ì„¸ìš” : ");
scanf("%d",&n);
printf("fact(%d) = %1d입니다. \n",n,fact(n));
int fact(int n)
{
{
if(n==0)
}return 1;
else return n*fact(n-1);
11. n!ì�„ ì¶œë ¥í•˜ëŠ” 프로그램ì�„ for문으로 작성해주세요.
#include <stdio.h>
#include <stdio.h>
int main()
{
{
int n,i;
int fact=1;
printf("숫ìž�를 ìž…ë ¥í•˜ì„¸ìš” : ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
return 0;
}int fact=1;
printf("숫ìž�를 ìž…ë ¥í•˜ì„¸ìš” : ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
fact =i*fact;
}
printf("%d! = %d\n",n,fact);}
12. 재귀함수를 �용해 1부터10까지를 �하는 프로그램� 작성해 주세요.
.#include <stdio.h>
.#include <stdio.h>
int hap(int n);
int main()
{
int hap(int n)
{
{
printf("1~10까지� 합� %d\n",hap(10));
return 0;
}return 0;
int hap(int n)
{
if(n==0)
return n+hap(n-1);
}return 0;
else return n+hap(n-1);
13. ë°°ì—´ì—� {7,4,2,9,3,1,2}ê°€ 들어있습니다. ì�´ ë°°ì—´ì—�서 3ì�´ 있는지 없는지를 찾아서 ì¶œë ¥í•´ì£¼ëŠ” 프로그램ì�„ 작성해주세요.
#include<stdio.h>
int main()
{
//////For문 안ì—� 어떻게 í•´ì•¼í• ì§€ 잘 ëª¨ë¥´ê² ì–´ìš”
{
int arr[] = {7,4,2,9,3,1,2};
int i;
for(i=0;i<=7;i++ )
{
}
printf("3� 있습니다.");
}int i;
for(i=0;i<=7;i++ )
{
}
printf("3� 있습니다.");
14. ë°°ì—´ì—� {7,4,2,9,3,1,2}ê°€ 들어있습니다. ì�´ ë°°ì—´ì—�서 1ì�´ 몇번째ì—� 있는지를 찾아서 ì¶œë ¥í•´ì£¼ëŠ” 프로그램ì�„ 작성해주세요. (단, 7ì�€ 첫번째입니다)
15. ë°°ì—´ì—� {7,4,2,9,3,1,2}ê°€ 들어있습니다. ì�´ ë°°ì—´ì—�서 2ê°€ 있는지 없는지를 ê²€ì‚¬í•˜ê³ , 있다면 ì–´ë””ì—� 있는지 ì „ë¶€ ì¶œë ¥í•´ì£¼ëŠ” 프로그램ì�„ 작성해주세요.
16. ë°°ì—´ì—� {7,4,2,9,3,1,2}ê°€ 들어있습니다. ì�´ ë°°ì—´ì�„ ì •ë ¬(오름차순으로)í•˜ê³ , ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해주세요.
• ì˜ˆìŠµê³¼ì œ
1. 2ì°¨ì›� ë°°ì—´ì�´ 무엇ì�¸ì§€ ì“°ê³ , 어떻게 ì„ ì–¸í•˜ëŠ”ì§€ë�„ 작성한 ë’¤, ì�´ë¥¼ ì�´ìš©í•œ 간단한 프로그램ì�„ 작성해주세요.
배열� 첨�가 � 개� 배열
�소 �료형 배열�름배열�기1배열�기2;
#include<stdio.h>
1. 2ì°¨ì›� ë°°ì—´ì�´ 무엇ì�¸ì§€ ì“°ê³ , 어떻게 ì„ ì–¸í•˜ëŠ”ì§€ë�„ 작성한 ë’¤, ì�´ë¥¼ ì�´ìš©í•œ 간단한 프로그램ì�„ 작성해주세요.
배열� 첨�가 � 개� 배열
�소 �료형 배열�름배열�기1배열�기2;
#include<stdio.h>
int main()
{
{
int arr33;
int i,j;
int k=1;
for(i=0;i<3;i++)
{
}
printf("arr00부¬Ií„°I arr33까지 ì¶œë ¥\n");
for(i=0;i<3;i++)
{
}
}int i,j;
int k=1;
for(i=0;i<3;i++)
{
}
printf("arr00부¬Ií„°I arr33까지 ì¶œë ¥\n");
for(i=0;i<3;i++)
{
}
2. srand()함수가 무엇ì�¸ì§€ ì°¾ì•„ì“°ê³ , time()ì�„ ì�´ìš©í•´ ëžœë�¤ìœ¼ë¡œ 숫ìž�를 하나 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해주세요.
Void srand(unsigned int SEED);
Rand가 �성하는 초기 난수를 변경함. SEED는 초기 난수를 변경하는� 사용�지만 SEED�체가 초기난수가 �는 것� 아님
헤�파� : <stdlib.h>
Void srand(unsigned int SEED);
Rand가 �성하는 초기 난수를 변경함. SEED는 초기 난수를 변경하는� 사용�지만 SEED�체가 초기난수가 �는 것� 아님
헤�파� : <stdlib.h>
3. í�¬ì�¸í„°ê°€ 무엇ì�¸ì§€ ì“°ê³ , í�¬ì�¸í„°ë¥¼ ì„ ì–¸í•˜ëŠ” 방법ì�„ 쓰세요.
í�¬ì�¸í„° – 메모리ì—� 부여ë�œ 주소 주소‘값’ì�„ 나타낼 때는 í�¬ì�¸í„° ìƒ�수ë�¼ í•˜ê³ , 주소를 ì €ìž¥í• ìˆ˜ 있는 ‘변수’를 나타내는 í�¬ì�¸í„° 변수ë�¼ 한다.
�료형*��터 변수;
4. ë°°ì—´ê³¼ í�¬ì�¸í„°ì�˜ 공통ì �ê³¼ ì°¨ì�´ì �ì�„ ì°¾ì•„ë³´ê³ , ì�¨ë³´ë�„ë¡� 하세요.
***공통ì �
배열과 ��터 둘다 메모리 주소값� 나타낸다.
*** ì°¨ì�´ì �
1)��터는 변수�� 비해 배열� �수�다.
2)í�¬ì�¸í„°ê°€ 가르키는 ë°°ì—´ì�˜ í�¬í‚¤ëŠ” ë�™ì �으로 ê²°ì •í• ìˆ˜ 있지만 ë°°ì—´ì�˜ í�¬ê¸°ëŠ” ì„ ì–¸í• ë•Œ ì •ì �으로 ê²°ì •ë�œë‹¤.
3)ë°°ì—´ì�€ ê·¸ ìž�ì²´ê°€ í�¬ê¸° 때문ì—� 함수ì�˜ ì�¸ìˆ˜ë¡œ ì „ë‹¬í• ìˆ˜ 없지만 í�¬ì�¸í„°ëŠ” 대ìƒ�ì²´ê°€ 무엇ì�´ë“ ê°„ì—� 4ë°”ì�´íŠ¸ì™€ í�¬ê¸°ë°–ì—� 차지하지 않으므로 함수로 ì „ë‹¬í• ìˆ˜ 있다.
4)배열로 요소를 �는 것과 ��터로 대�체를 �는 �작� �� 차�가 있다.
í�¬ì�¸í„° – 메모리ì—� 부여ë�œ 주소 주소‘값’ì�„ 나타낼 때는 í�¬ì�¸í„° ìƒ�수ë�¼ í•˜ê³ , 주소를 ì €ìž¥í• ìˆ˜ 있는 ‘변수’를 나타내는 í�¬ì�¸í„° 변수ë�¼ 한다.
�료형*��터 변수;
4. ë°°ì—´ê³¼ í�¬ì�¸í„°ì�˜ 공통ì �ê³¼ ì°¨ì�´ì �ì�„ ì°¾ì•„ë³´ê³ , ì�¨ë³´ë�„ë¡� 하세요.
***공통ì �
배열과 ��터 둘다 메모리 주소값� 나타낸다.
*** ì°¨ì�´ì �
1)��터는 변수�� 비해 배열� �수�다.
2)í�¬ì�¸í„°ê°€ 가르키는 ë°°ì—´ì�˜ í�¬í‚¤ëŠ” ë�™ì �으로 ê²°ì •í• ìˆ˜ 있지만 ë°°ì—´ì�˜ í�¬ê¸°ëŠ” ì„ ì–¸í• ë•Œ ì •ì �으로 ê²°ì •ë�œë‹¤.
3)ë°°ì—´ì�€ ê·¸ ìž�ì²´ê°€ í�¬ê¸° 때문ì—� 함수ì�˜ ì�¸ìˆ˜ë¡œ ì „ë‹¬í• ìˆ˜ 없지만 í�¬ì�¸í„°ëŠ” 대ìƒ�ì²´ê°€ 무엇ì�´ë“ ê°„ì—� 4ë°”ì�´íŠ¸ì™€ í�¬ê¸°ë°–ì—� 차지하지 않으므로 함수로 ì „ë‹¬í• ìˆ˜ 있다.
4)배열로 요소를 �는 것과 ��터로 대�체를 �는 �작� �� 차�가 있다.
ì™„ì „ížˆ ëª»í‘¼ë¬¸ì œ
:3,4,5,6,7,14,15,16
황혜림 ¶
ì˜ˆìŠµê³¼ì œ
1. 2ì°¨ì›� ë°°ì—´ì�´ 무엇ì�¸ì§€ ì“°ê³ , 어떻게 ì„ ì–¸í•˜ëŠ”ì§€ë�„ 작성한 ë’¤, ì�´ë¥¼ ì�´ìš©í•œ 간단한 프로그램ì�„ 작성해주세요.
- 배열� 첨�가 � 개� 배열�다.
int a23; // 2행 3열� 2차� 배열
2. srand()함수가 무엇ì�¸ì§€ ì°¾ì•„ì“°ê³ , time()ì�„ ì�´ìš©í•´ ëžœë�¤ìœ¼ë¡œ 숫ìž�를 하나 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해주세요.
-srand함수는 여러 ê°œì�˜ 난수표 중 하나를 ì„ íƒ�하는 것ì�´ê³ , rand 함수는 ì„ íƒ�ë�œ 난수표로부터 ê°’ì�„ 꺼내오는 것ì�´ë‹¤. srand함수ì—�는 ì�¸ìž�ê°€ 하나 들어가는ë�°, 그것ì�„ seedê°’ì�´ë�¼ê³ 한다.
3. í�¬ì�¸í„°ê°€ 무엇ì�¸ì§€ ì“°ê³ , í�¬ì�¸í„°ë¥¼ ì„ ì–¸í•˜ëŠ” 방법ì�„ 쓰세요.
- ��터는 가리키는 변수� 시작주소(메모리� 위치)를 기호화 한 것
int a;
int *pa; // a� ��터변수
pa=&a; // ��터 변수� 초기화
4. ë°°ì—´ê³¼ í�¬ì�¸í„°ì�˜ 공통ì �ê³¼ ì°¨ì�´ì �ì�„ ì°¾ì•„ë³´ê³ , ì�¨ë³´ë�„ë¡� 하세요.
공통ì � : ë°°ì—´ì�´ë¦„ë§Œ ì“°ë©´ 주소를 가리킨다.
ì°¨ì�´ì � : í�¬ì�¸í„°ëŠ” ì–¸ì œë“ ì§€ 다른 대ìƒ�ì�„ 가리킬 수 있지만 ë°°ì—´ì�€ ê°’ì�´ ê³ ì •ë�˜ì–´ 있다.
1. 2ì°¨ì›� ë°°ì—´ì�´ 무엇ì�¸ì§€ ì“°ê³ , 어떻게 ì„ ì–¸í•˜ëŠ”ì§€ë�„ 작성한 ë’¤, ì�´ë¥¼ ì�´ìš©í•œ 간단한 프로그램ì�„ 작성해주세요.
- 배열� 첨�가 � 개� 배열�다.
int a23; // 2행 3열� 2차� 배열
2. srand()함수가 무엇ì�¸ì§€ ì°¾ì•„ì“°ê³ , time()ì�„ ì�´ìš©í•´ ëžœë�¤ìœ¼ë¡œ 숫ìž�를 하나 ì¶œë ¥í•˜ëŠ” 프로그램ì�„ 작성해주세요.
-srand함수는 여러 ê°œì�˜ 난수표 중 하나를 ì„ íƒ�하는 것ì�´ê³ , rand 함수는 ì„ íƒ�ë�œ 난수표로부터 ê°’ì�„ 꺼내오는 것ì�´ë‹¤. srand함수ì—�는 ì�¸ìž�ê°€ 하나 들어가는ë�°, 그것ì�„ seedê°’ì�´ë�¼ê³ 한다.
3. í�¬ì�¸í„°ê°€ 무엇ì�¸ì§€ ì“°ê³ , í�¬ì�¸í„°ë¥¼ ì„ ì–¸í•˜ëŠ” 방법ì�„ 쓰세요.
- ��터는 가리키는 변수� 시작주소(메모리� 위치)를 기호화 한 것
int a;
int *pa; // a� ��터변수
pa=&a; // ��터 변수� 초기화
4. ë°°ì—´ê³¼ í�¬ì�¸í„°ì�˜ 공통ì �ê³¼ ì°¨ì�´ì �ì�„ ì°¾ì•„ë³´ê³ , ì�¨ë³´ë�„ë¡� 하세요.
공통ì � : ë°°ì—´ì�´ë¦„ë§Œ ì“°ë©´ 주소를 가리킨다.
ì°¨ì�´ì � : í�¬ì�¸í„°ëŠ” ì–¸ì œë“ ì§€ 다른 대ìƒ�ì�„ 가리킬 수 있지만 ë°°ì—´ì�€ ê°’ì�´ ê³ ì •ë�˜ì–´ 있다.










