1. 다음 사항에 대해 조사하여 보시오.(1시간 소요)

  가. 함수를 만들때 입력에 대해 Call By Value 가 무엇인지 조사하시오. 50자 이내로 적으시오.

      Call By Value : 값에 의한 호출

      함수가 호출될 때, 메모리 공간 안에서는 함수를 위한 별도의 임시 공간이 생성된다.

      원래의 값이 보존된 채로 복사해 처리하기 때문에 안전하다.

      따라서 값을 담을 수 있는 모든 타입이 가능하다.

      정수형, 문자형, 문자열, 실수형 그리고 주소값까지 모두 값이 될 수 있다.

  나. int a = 10을 선언하고, 이 값을 입력으로 받는 함수를 만든뒤 그 함수에서는 제곱근을 출력하도록 해보시오. 이 값을 main함수에 있는 변수에 담은 뒤 출력해보시오

 

  다. 함수를 만들때 입력에 대해 Call By Reference 가 무엇인지 조사하시오. 50자 이내로 적으시오.

      Call By Reference : 참조에 의한 호출

      원본의 주소값을 전달하므로, 원본을 변경할 수 있다.

      이유는 주소값을 통해 원본에 접근하기 때문에 변경할 수 있다.

       주소값을 저장할 수 있는 자료형을 제공 해야 Call By reference를 사용할 수 있다.

  라. int* b = 20을 선언하고, 이 값의 주소를 입력으로 받는 함수를 만든뒤 그 함수에서는 제곱을 출력하도록 해보시오. 이 값을 main함수에 있는 변수에 담은 뒤 출력해보시오

  마. '나'와 '라'의 차이에 대해 설명해보시오.

     '나'는 원래의 값은 보존한 채로 함수내에서 복사하여 처리하므로 main함수 내 값은 변화가 없다.

     '라'는 원본의 주소값을 전달하므로, 원본을 변경할수 있다.(주소값을 통해 원본에 접근하여 변경할 수 있다).

      함수내에서 값을 바꾸면 main함수내에서도 값을 변경할 수 있게 된다.

 

2. 배열은 포인터로 취급할 수 있다. 이 사실을 이용하여 아래 문항을 해결하시오. (2시간 소요)

  가. 메인함수에서 행벡터 {1,4,2,3,5,7,6,8,9,10} 를 int* matrix로 선언하시오.

  나. matrix의 주소를 받는 새로운 함수를 선언하시오. 함수이름은 BubbleSort로 하시오.

  다. 함수 내용은 버블정렬을 이용하여 행벡터의 숫자를 차례대로 정렬하는 기능을 갖도록 하시오.

  라. 메인함수에서 BubbleSort를 호출한 후, 호출 전후의 행벡터의 모든 값을 출력해 보시오.

 

  마. matrix의 값 10개를 받는 새로운 함수를 선언하시오. 함수이름은 Selection Sort로 하시오. 10개의 입력은 일일이 직접 써서 넘기시오.

  바. 함수 내용은 선택정렬을 이용하여 행벡터의 숫자를 차례대로 정렬하는 기능을 갖도록 하시오.

  사. 메인함수에서 Selection Sort를 호출한 후, 호출 전후의 행벡터의 모든 값을 출력해 보시오.

  아. Call By Value와 Call By Referernce의 장단점을 100자 이내로 비교해보시오

    Call By Value : 원래의 값을 보존할 수 있는 장점이 있기 때문에 원래의 값은 건드리면 안되는 안전한 프로그램에

                       사용하면 좋다

    Call By Referernce : 본의 주소값을 전달하므로, 원본을 변경할수 있다.

                              (주소값을 통해 원본에 접근하여 변경할 수 있다).

                              그러기 때문에 원본의 값을 변경하기 때문에 위험 요소가 있다.

 

3. 이차정사각행렬도 포인터로 취급할 수 있다. 이 사실을 이용하여 아래 문항을 해결하시오. (2시간 소요)

  가. 메인함수에서 이차정사각행렬을 만들고 {1,2,3,4}를 넣으시오.

  나. 이차정사각행렬의 각 성분값을 받는 함수를 만드시오.

  다. 이차정사각행렬을 함수에 넣으면 그 역행렬이 만들어지도록 해보시오.  다음식을 참조하시오.

  라. 이차정사각행렬을 포인터를 이용하여 주소값을 넘기도록 해보시오.

  마. 이차정사각행렬을 함수에 넣으면 그 역행렬이 만들어지도록 해보시오.

'C언어' 카테고리의 다른 글

C언어 기초 13주차  (0) 2020.12.27
C언어 기초 9주차  (0) 2020.11.29
C언어 기초 8주차  (0) 2020.11.22
c언어 기초 7주차  (0) 2020.11.15
c언어 기초 6주차  (0) 2020.11.08
by 맑은소금 2020. 12. 21. 00:00