= 곽길문 = 복습과제 1.0과 1000 사이의 정수를 입력받아 모든 자릿수를 더하여 출력하는 프로그램을 짜 주세요. #include int main() { int num =0; int sum =0; printf("0과 1000사이의 정수를 입력 :\n"); scanf("%d", &num); do { sum += num %10; num/=10; }while(!(num == 0)); printf("각 자리수들의 합 : %d \n",sum); return 0; } 2.소문자를 대문자로 바꾸는 프로그램을 작성해 주세요. #include int main() { char replace; 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 15 16 17 18 19 20 21 #include int main() { 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; } 4.다음 모양을 출력하는 프로그램을 작성해 주세요. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #include// 자리 못 맞추겠음.. int main(void) { int a; int b; int num = 1; for(a=1;a<6;a++){ for(b=6;b>a;b--){ printf(" "); } for(b=1;b<=a;b++){ printf("%d",num); num+=1; } printf("\n"); } } 5.위 두 프로그램을 일반화 시켜 입력받은 숫자만큼 출력해주는 프로그램을 작성해주세요.(위 프로그램은 21을 입력) //1.3.6.10 수열이 규칙을 찾아서 행을 만들어 주려고 한다… 코딩 생각 하는데 시간이 세시간 초과.. 그래서 6을 입력하면 행이 6이 되는 삼각형 만듬.. #include int main() { int i,j; int num=1; int a; int k=0; printf("정수 입력:"); scanf("%d",&a); //규칙 for(i=0;i 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--) printf(" "); for(star=1;star<=2*i-1;star++) printf("*"); printf("\n"); } } 7.위 프로그램처럼 숫자를 순서대로 출력하는 프로그램을 다이아몬드 형태로 작성해 주세요. // *로 해봤어요.. #include int diamond(int a); int main() { int i; printf("행수 입력-홀수: "); scanf("%d",&i); diamond(i); return 0; } int diamond(int a) { int i,j; for(i=0;i<=a/2;i++){ for(j=a/2;j>i;j--){ printf(" "); } for(j=0;j<=i;j++){ printf("*"); } for(j=0;ji;j--){ printf("*"); } for(j=a/2;j>i+1;j--){ printf("*"); } printf("\n"); } return i,j; } 8.아래 프로그램을 참고하여 60점 이하는 F, 61~70점 D, 71~80 C, 81~90 B, 90~ A인 프로그램을 작성해주세요. #include int main(){ int num; printf("성적 입력 : "); scanf("%d", &num); switch(num/10){ case 10 : case 9 : printf("A\n"); break; case 8 : printf("B\n"); break; case 7 : printf("C\n"); break; case 6: printf("D\n"); break; default : printf("F\n"); break; } } 9.101부터200까지의 모든 정수를 더해서 반환하는 '함수'를 작성해주세요.(main문에는 sum=Sum(); printf("%d",sum);이 있도록해주세요) #include int Sum(int x); int main() { int su; 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++) sum+=x; return x,sum; } 10.재귀함수를 이용해 n!을 출력하는 프로그램을 작성해 주세요. #include int factorial(int x); int main() { int n; 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 return x*factorial(x-1); } 11.n!을 출력하는 프로그램을 for문으로 작성해주세요. #include int main() { 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 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++){ sum=x+sum; } return x,sum; } 13.배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열에서 3이 있는지 없는지를 찾아서 출력해주는 프로그램을 작성해주세요. #include int main() { int a[7]= {7,4,2,9,3,1,2}; int i=0; for(i=0;i<7;i++){ if(a[i]==3) printf("3이 있습니다."); } return 0; } 14.배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열에서 1이 몇번째에 있는지를 찾아서 출력해주는 프로그램을 작성해주세요. (단, 7은 첫번째입니다) #include int main() { int a[7]= {7,4,2,9,3,1,2}; int i=0; int count=0; for(i=0;i<7;i++){ count+=1; if(a[i]==1){ printf("1이 %d번째에 있습니다.", count); } } } 15.배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열에서 2가 있는지 없는지를 검사하고, 있다면 어디에 있는지 전부 출력해주는 프로그램을 작성해주세요. // 몇번째 있는지는 if문이 두 번돌아서 3번째 7번째 뜨는데.. 한번에 출력하는 거는 잘 못하겠어요… #include int main() { int a[7]= {7,4,2,9,3,1,2}; int i=0; int count=0; for(i=0;i<7;i++){ count+=1; if(a[i]==2){ printf("2가 %d번째에 있습니다.\n", count); } } } 16.배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열을 정렬(오름차순으로)하고, 출력하는 프로그램을 작성해주세요. #include void sort(int a[], int n); void main() { int list[7]={7,4,2,9,3,1,2}; int n=sizeof(list)/sizeof(int); int i; sort(list,n); for(i=0;i<7;i++) printf("%d\n",list[i]); } void sort(int a[], int n) { int i,j,temp; for(i=0;ia[j]){ temp=a[i]; a[i]=a[j]; a[j]=temp; } } } } •예습과제 1.2차원 배열이 무엇인지 쓰고, 어떻게 선언하는지도 작성한 뒤, 이를 이용한 간단한 프로그램을 작성해주세요. -동일한 데이터형의 많은 변수를 처리하기 위한 단수 변수를 사용하면 변수이름을 각각 다른 이름으로 사용해야하기 때문에 많은 불편이 따른다. 이러한 불편함을 덜기 위하여 같은 데이터형인 일련의 기억장소를 표현한 변수를 '배열변수'라 한다. 즉 배열을 이용하면 여러개의 변수를 간단히 표현할 수가 있다. 2차원 배열은 '데이터형,배열명,그리고 [행]과[열]'을 나타내어 표현한다. 1차원 배열은 배열 요소의 크기와 데이터형이 동일한 기억장소를 1개의 차원으로 선언하였다고 말하면 2차원 배열은 2차원으로 선언(행과열)한 것이다. #include int main() { static int x[2][3]; //2행 3열의 2차원 배열선언 int j,k,sum; x[0][0] = 1; x[0][1] = 2; x[0][2] = 3; x[1][0] = 4; x[1][1] = 5; x[1][2] = 6; sum=0; for(j=0;j<2;j++) //행 for(k=0;k<3;k++) // 열 sum=sum+x[j][k]; 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일 이후 경과된 시간을 초 단위로 반환하는 함수 이다. #include #include #include int main() { int a=0; printf("rand()함수를 사용,1개의 random number 나타내기 \n"); srand(time(NULL)); //시드값 = 시간 printf("%d\n",rand()); return 0; } 3.포인터가 무엇인지 쓰고, 포인터를 선언하는 방법을 쓰세요. -포인터는 기억장소에 있는 어떤 변수의 주소를 말한다. 즉, 다른 기억장소 위치의 주소를 갖고 있는 변수이다.포인터는 두개의 단일 연산자인 &와 *로서 정의한다. &연산자는 일반적인 변수 이름으로 사용되고 그 변수의 주소를 의미한다. 즉 &a는 a의 주소를 의미한다. *p는 p안에 있는 주소 위치의 내용을 의미한다. &는 주소 연산자이고 , *는 간접 연산자로 포인터선언을 의미한다. 일반적인 포인터 선언형식: 데이터형 *포인터변수명; 이다. 4.배열과 포인터의 공통점과 차이점을 찾아보고, 써보도록 하세요. -공통적인 부분은 배열이 첨자에 의해서 행해지는 조작은 포인터로서 모두 표현할 수 있다는 것이다. 예를 들어 선언문 ---> int a[3], int *ptr =a; 배열과 선어문 ---> a[0] == *ptr a[1] == *(ptr+1) a[2] == *(ptr+2) 위와 같은 표현 가능하다.(포인터명에 *을 사용하는 것은 지시하는 곳에 저장된 값을 나타내는 것이다.) 차이점으로는 포인터는 변수인데 비해 배열은 상수이고 포인터는 언제든지 다른 대상을 가리킬수 있지만 배열은 선언될 때 그 위치가 이미 고정되어 다른 대상을 가리킬 수 없다.또한 포인터는 동적으로 결정할수 있지만 배열이 가리키는 배열의 크기는 선언할 때부터 정적으로 결정되어있다. 배열로 []연산자를 이용해 그 값을 읽는 것과 포인터 간접 참조 연산으로 그 값을 읽는 것의 속도 차이가 있다. = 도상희 = 복습과제 1. 0과 1000 사이의 정수를 입력받아 모든 자릿수를 더하여 출력하는 프로그램을 짜 주세요. /10, %10 등을 이용해서 해 보세요. #include int main(){ int num; int temp1, temp2, temp3; int sum=0; printf("0-1000사이의 수 입력: "); 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"); return 0; }//01.c 2. 소문자를 대문자로 바꾸는 프로그램을 작성해 주세요. #include int main(){ char al1,al2 ; printf("입력: "); 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; }//인터넷 참조했음! 02.c 3. 다음 모양을 출력하는 프로그램을 작성해 주세요. 한자리 숫자이다가 2자리 숫자이면서 깨지는 것은 예외처리해주셔도 되고 하지 않으셔도 됩니다. 방법은 if(10>x) printf(" ");입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #include int main(){ int i, j; int num=1; for(i=1 ; i<=6 ; i++){ for(j=1 ; j int main(){ int i, j, k; int num=1; for(i=1 ; i<=6 ; i++){ for(j=5 ; j>=i ; j--){ printf(" "); } for(k=1 ; k int main(){ int i, j, n; int num=1; scanf("%d",&n); for(i=1 ; ; i++){ for(j=1 ; j int main(){ int i, j, k, n; int num=1; scanf("%d",&n); for(i=0;i int main(){ int num; printf("성적 입력 : "); scanf("%d", &num); switch((num-1)/10){ case 9 : printf("A\n"); break; case 8 : printf("B\n"); break; case 7 : printf("C\n"); break; case 6 : printf("D\n"); break; default : printf("F\n"); break; } }//08.c 인터넷참조! 9. 101부터 200까지의 모든 정수를 더해서 반환하는 '함수'를 작성해주세요. (main문에는 sum=Sum(); printf("%d",sum);이 있도록해주세요) #include int Sum(void); int main(){ int sum; sum = Sum(); printf("%d\n",sum); return 0; } int Sum(void){ int x=101; int sum=0; for(x=101 ; x<=200 ; x++) sum+=x; return sum; }//09.c 10. 재귀함수를 이용해 n!을 출력하는 프로그램을 작성해 주세요. #include int fac(int); int main(){ int num; printf("숫자 입력 : "); scanf("%d", &num); printf("%d! = %d\n",num, fac(num)); return 0; } int fac(int x){ if(x==1) return 1; else return x*fac(x-1); }//10.c 11. n!을 출력하는 프로그램을 for문으로 작성해주세요. #include int main(){ int i, num; int fac=1; printf("숫자 입력 : "); scanf("%d", &num); for(i=1 ; i<=num ; i++){ fac *= i; } printf("%d! = %d\n",num, fac); return 0; }//11.c 12. 재귀함수를 이용해 1부터10까지를 더하는 프로그램을 작성해 주세요. #include int sum(int); int main(){ printf("1부터 10까지 합 : %d\n", sum(10)); 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 int main(){ int arr[] = {7,4,2,9,3,1,2}; int i; int k=0; for(i=0 ; i<7 ; i++){ if(arr[i]==3) k++; } if(k!=0) printf("3 존재\n"); else printf("3 없음\n"); return 0; }//13.c 14. 배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열에서 1이 몇번째에 있는지를 찾아서 출력해주는 프로그램을 작성해주세요. (단, 7은 첫번째입니다) #include int main(){ int arr[]={7,4,2,9,3,1,2}; int i; for(i=0 ; i<7 ; i++){ if(arr[i]==1) printf("%d 번째\n",i+1); } return 0; }//14.c 15. 배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열에서 2가 있는지 없는지를 검사하고, 있다면 어디에 있는지 전부 출력해주는 프로그램을 작성해주세요. #include int main(){ int i; int c=0; int arr[]={7,4,2,9,3,1,2}; for(i=0 ; i<7 ; i++){ if(arr[i]==2) c++; } if(c!=0){ printf("2 있음\n"); for(i=0 ; i<7 ; i++){ if(arr[i]==2) printf("%d번째 존재\n",i+1); } }else printf("2 없음\n"); return 0; }//15.c 16. 배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열을 정렬(오름차순으로)하고, 출력하는 프로그램을 작성해주세요. #include int main(){ int arr[]={7,4,2,9,3,1,2}; int temp; int i,j; for(i=0 ; i<7 ;i++) printf("%d ",arr[i]); printf("\n"); for(i=0 ; i<6 ; i++){ for(j=i+1 ; j<7 ; j++){ if(arr[i]>=arr[j]){ temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } for(i=0 ; i<7 ;i++) printf("%d ",arr[i]); printf("\n"); return 0; }//16.c 예습과제 1. 2차원 배열이 무엇인지 쓰고, 어떻게 선언하는지도 작성한 뒤, 이를 이용한 간단한 프로그램을 작성해주세요. int arr[i][j]; 길이가 i인 int형 배열을 j개 모아 놓은 배열. 첫번째 인덱스 값(i)이 의미하는 바는 세로줄(열)의 길이이고, 두번째 인덱스 값(j)이 의미하는 바는 가로줄(행)의 길이. #include int main(){ int arr[3][3] = { {1,2,3}, {4,5,6}, {7,8,9}, }; int i,j; for(i=0 ; i<3 ; i++){ for(j=0 ; j<3 ; j++){ printf("%d ",arr[i][j]); } printf("\n"); } return 0; } 2. srand()함수가 무엇인지 찾아쓰고, time()을 이용해 랜덤으로 숫자를 하나 출력하는 프로그램을 작성해주세요. seed값을 입력받아 난수를 생성하는 함수. rand()%a+b : a부터 b까지 수 랜덤 출력 #include #include //rand함수 사용 #include //time함수 사용 int main(){ srand(time(NULL)); printf("%d\n",rand()%100+1); //1-100중 하나 출력 return 0; }//1_02.c 3. 포인터가 무엇인지 쓰고, 포인터를 선언하는 방법을 쓰세요. 포인터란 메모리의 주소 값을 저장하기 위한 변수. 타입에 상관없이 크기는 4바이트(컴퓨터 주소 체계가 4바이트로 표현된다는 것을 의미) int *a; //int형 변수의 주소 값을 지닐 수 있는 int형 포인터. char *b; // char형 변수의 주소 값을 지닐 수 있는 char형 포인터. double *c; // double형 변수의 주소 값을 지닐 수 있는 double형 포인터. 4. 배열과 포인터의 공통점과 차이점을 찾아보고, 써보도록 하세요. 배열 arr가 선언되어 있고, 포인터 p이 배열의 시작주소를 가리키고 있다면! <배열과 포인터의 공통점> - arr와 p은 주소를 나타냄 - arr[i]와 *(p+i)는 같음 - arr[i]와 p[i]는 같음 - *arr 혹은 *p이 가능함 - *(arr+i) 혹은 *(p+i)가 가능 <배열과 포인터의 차이점> - 배열명은 상수이고 포인터는 변수 - 배열명에 주소를 대입할 수 없다. - 배열명에 증감연산자(array++, array--)를 쓸 수 없다 = 한송이 = 복습과제 1. 0과 1000 사이의 정수를 입력받아 모든 자릿수를 더하여 출력하는 프로그램을 짜 주세요.(/10, %10 등을 이용해서 해 보세요.) #include int main() { int num,a,b,c,d; printf("숫자를 입력하세요 : ”); scanf("%d",&num); if(99 #include int main() { char in[50],out[50]; int i,len; int diff='a'-'A'; printf("문자 입력 : "); gets(in); len = strlen(in); for(i=0;ix) printf(" ");입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 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 21 5. 위 두 프로그램을 일반화 시켜 입력받은 숫자만큼 출력해주는 프로그램을 작성해주세요.(위 프로그램은 21을 입력) 6. 위 프로그램처럼 숫자를 순서대로 출력하는 프로그램을 피라미드 형태로 작성해 주세요. 7. 위 프로그램처럼 숫자를 순서대로 출력하는 프로그램을 다이아몬드 형태로 작성해 주세요. 8. 아래 프로그램을 참고하여 60점 이하는 F, 61~70점 D, 71~80 C, 81~90 B, 90~ A인 프로그램을 작성해주세요. #include int main() { int num; 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 : printf("B\n"); break; case 7 : printf("C\n"); break; case 6 : printf("D\n"); break; default : printf("F\n"); break; } } 9. 101부터200까지의 모든 정수를 더해서 반환하는 '함수'를 작성해주세요.(main문에는 sum=Sum(); printf("%d",sum);이 있도록해주세요) #include int Sum(int n); int main() { int sum; sum=Sum(200); printf("101~200까¾i지o의C 합O은¨¬ %d\n",Sum); return 0; } int Sum(int n) { if(n==101) return 0; else return n+Sum(n-1); } 10. 재귀함수를 이용해 n!을 출력하는 프로그램을 작성해 주세요. #include int fact(int n); int main() { int 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 int main() { int n,i; int fact=1; printf("숫자를 입력하세요 : "); scanf("%d",&n); for(i=1;i<=n;i++) { fact =i*fact; } printf("%d! = %d\n",n,fact); return 0; } 12. 재귀함수를 이용해 1부터10까지를 더하는 프로그램을 작성해 주세요. .#include int hap(int n); int main() { printf("1~10까지의 합은 %d\n",hap(10)); return 0; } int hap(int n) { if(n==0) return 0; else return n+hap(n-1); } 13. 배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열에서 3이 있는지 없는지를 찾아서 출력해주는 프로그램을 작성해주세요. #include int main() { int arr[] = {7,4,2,9,3,1,2}; int i; for(i=0;i<=7;i++ ) { } printf("3이 있습니다."); } //////For문 안에 어떻게 해야할지 잘 모르겠어요 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 int main() { int arr[3][3]; int i,j; int k=1; for(i=0;i<3;i++) { for(j=0;j<3;j++) { arr[i][j]=k; k++; } } printf("arr[0][0]부¬I터I arr[3][3]까지 출력\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("%2d",arr[i][j]); } printf("\n"); } } 2. srand()함수가 무엇인지 찾아쓰고, time()을 이용해 랜덤으로 숫자를 하나 출력하는 프로그램을 작성해주세요. Void srand(unsigned int SEED); Rand가 생성하는 초기 난수를 변경함. SEED는 초기 난수를 변경하는데 사용되지만 SEED자체가 초기난수가 되는 것은 아님 헤더파일 : 3. 포인터가 무엇인지 쓰고, 포인터를 선언하는 방법을 쓰세요. 포인터 – 메모리에 부여된 주소 주소‘값’을 나타낼 때는 포인터 상수라 하고, 주소를 저장할 수 있는 ‘변수’를 나타내는 포인터 변수라 한다. 자료형*포인터 변수; 4. 배열과 포인터의 공통점과 차이점을 찾아보고, 써보도록 하세요. ***공통점 배열과 포인터 둘다 메모리 주소값을 나타낸다. *** 차이점 1)포인터는 변수인데 비해 배열은 상수이다. 2)포인터가 가르키는 배열의 크키는 동적으로 결정할 수 있지만 배열의 크기는 선언할 때 정적으로 결정된다. 3)배열은 그 자체가 크기 때문에 함수의 인수로 전달할 수 없지만 포인터는 대상체가 무엇이든간에 4바이트와 크기밖에 차지하지 않으므로 함수로 전달할 수 있다. 4)배열로 요소를 읽는 것과 포인터로 대상체를 읽는 동작의 속도 차이가 있다. 완전히 못푼문제 :3,4,5,6,7,14,15,16 = 황혜림 = 예습과제 1. 2차원 배열이 무엇인지 쓰고, 어떻게 선언하는지도 작성한 뒤, 이를 이용한 간단한 프로그램을 작성해주세요. - 배열의 첨자가 두 개인 배열이다. int a[2][3]; // 2행 3열의 2차원 배열 2. srand()함수가 무엇인지 찾아쓰고, time()을 이용해 랜덤으로 숫자를 하나 출력하는 프로그램을 작성해주세요. -srand함수는 여러 개의 난수표 중 하나를 선택하는 것이고, rand 함수는 선택된 난수표로부터 값을 꺼내오는 것이다. srand함수에는 인자가 하나 들어가는데, 그것을 seed값이라고 한다. 3. 포인터가 무엇인지 쓰고, 포인터를 선언하는 방법을 쓰세요. - 포인터는 가리키는 변수의 시작주소(메모리의 위치)를 기호화 한 것 int a; int *pa; // a의 포인터변수 pa=&a; // 포인터 변수의 초기화 4. 배열과 포인터의 공통점과 차이점을 찾아보고, 써보도록 하세요. 공통점 : 배열이름만 쓰면 주소를 가리킨다. 차이점 : 포인터는 언제든지 다른 대상을 가리킬 수 있지만 배열은 값이 고정되어 있다.