본문으로 바로가기
728x90
반응형

299p


Exercise


7. int a[100]과 같이 선언되었다고 하자. 다음 중 배열 원소를 잘못 참조하고 있는 것을 모두 선택하여라.  답 : ①, ③, 

① int a[index+1];

② a[100] = 0;

③ a[1..2] = 0;

④ a[0] = a[1];

⑤ x = a[  ];    // x는 정수형 변수 


8. 배열에 대한 설명 중 잘못된 것을 모두 고르라.   답 : 

① a[x+1] 과 같이 변수를 인덱스로 하여 배열을 참조할 수는 없다.

② 배열의 인덱스는 1부터시작한다.

③ 배열을 함수의 매개 변수로 전달하는 경우에 원본이 전달된다.

④ 배열 원소를 함수의 매개 변수로 전달하는 경우에는 복사본이 전달된다.

⑤ 배열은 크기가 커서 지역 변수로 만들 수 없다.

 

9. 배열에 대한 설명 중 잘못된 것을 모두 고르라  답 : ①, 

① 4차원  이상의 배열은 불가능하다.

② 배열은 초기화하지 않고 사용하면 오류이다.

③ a[  ] 와 b[  ] 의 전체 원소를 더하려면 a+b 하면 된다.

④ 배열의 원소들의 개수보다 큰 배열 번호를 사용하면 컴파일 오류이다.


10. int a[10]과 같이 선언된 배열을 a[20] 과 같이 경계를 넘어가는 인덱스를 사용하면 어떤 일이 발생하는가?  답 : 

① 컴파일 오류로 보고된다.

② 링크 단계에서 문제가 발생한다.

③ 컴파일은 되지만 실행이 중지될 수 있다.

④ 아무런 일도 발생하지 않는다. 

 

11. 다음 프로그램의  오류를 전부  수정하여라.


 #define MAX_SIZE 3

 int main(void)

 {

        int a[MAX_SIZE] = { 0, 1, 2, 3 };

        int b[3.0];


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

            b[i] = a[i];


        return 0;

 }

 #define MAX_SIZE 3

 int main(void)

 {

        int a[MAX_SIZE] = { 0, 1, 2 };

        int b[3];

        for (int i = 0; i <= MAX_SIZE; i++)

        b[i] = a[i];

        return 0;

 }

728x90
반응형