[C언어로 쉽게 풀어쓴 자료구조]3장. 배열, 구조체, 포인터 프로그램 및 연습문제 답안.
*주*
다운로드
장바구니
소개글
[C언어로 쉽게 풀어쓴 자료구조] 3장. 배열, 구조체, 포인터 프로그램 및 연습문제 답안.3장의 주요 연습문제의 상세한 풀이와 주요 프로그램 2개가 동본되어있습니다.
[프로그램]
프로그램 1. swap 을 이용한 struct 바꾸기.
프로그램 2. 동적 메모리 할당을 이용한 학생 이름과 생일 받기
(3장 관련 프로그램을 컴파일된 소스와 따로 묶어서도 올려놓았습니다)
[연습문제]
문제 1. 문제 3. 문제 4. 문제 5. 문제 6. 문제 7. 문제 8. 문제 9. 문제 10.
문제 11. 문제 12. 문제 15. 문제 16. 문제 17. 문제 18. 문제 19. 문제 22.
문제 23. 문제 28. 문제 29. person 이라는 구조체를 만들어보자. 이 구조체에는 문자 배열로 된 이름, 사람의 나이를 나타내는 정수 값, 각 개인의 월급을 나타내는 float 값 등이 변수로 들어가야 한다.
정말 열심히 한 레포트 입니다.
좋은 정보 되셨으면 좋겠습니다.
목차
[프로그램]프로그램 1. swap 함수를 이용한 struct 바꾸기
프로그램 2. 동적 메모리 할당을 이용한 학생 이름과 생일 받기
[3장. 배열 구조체 포인터]
문제 1. C 언어에서의 배열에 대하여 다음 중 맞는 것은?
문제 3. float a[100] 으로 선언된 배열의 시작주소를 1000번지라고 할 때, 배열의 10번째 요소의 주소는 몇 번지 인가?
문제 4. 구조체에 관한 내용 중 틀린것은?
문제 5. int i=10; int *p; p=&i; *p=8; 의 문장이 수행되면 i값은 얼마인가?
문제 6. int i=10; int *p; p=&i; (*p)--; 의 문장이 수행되면 i값은 얼마인가?
문제 7. int a[10]; int *p; p=a; *p++=5;의 문장이 수행되면 변경되는 배열의 요소는?
문제 8. int a[10]; int *p; p=a; *++p=5;의 문장이 수행되면 변경되는 배열의 요소는?
문제 9. int a[10]; int *p; p=a; (*p)++;의 문장이 수행되면 변경되는 배열의 요소는?
문제 10. int a[10]; int *p; p=a; *(p+1)++;의 문장이 수행되면 변경되는 배열의 요소는?
문제 11. int a[10]; int *p; p=a; (*(p+1))++;의 문장이 수행되면 변경되는 배열의 요소는?
문제 12 struct { int fa ; int fb; } a; int *p=&a; 라고 할때 fa 를 수정하는 문장으로 맞는것은?
문제 15. 다음과 같은 문장을 수행하고 난 뒤의 a.field1 의 값은?
문제 16. 다음의 코드에서 잘못된 곳을 찾아라.
문제 17. 다음과 같이 정의된 배열의 10번째 요소의 주소는?
단 배열의 시작 주소는 1000번지로 한다.
문제 18. 크기가 5인 정수 배열을 생성하고 { 1,2,3,4,5 } 로 초기화 하는 문장을 쓰시오.
문제 19. 구조체 배열을 만들어 보자. 정수 항목인 number 와 문자열 항목인 name 을 가지는 구조체를 정의하고 크기가 100인 이 구조체의 배열을 생성해 보라.
문제 22. 다음의 각각의 문장들을 수행한 다음에 변수들와 포인터들이 서로 연결된 모습을 그림으로 그려라.
문제 23. 포인터 p1 과 p2 가 선언되어 있을 때 다음의 문장의 의미를 구별하여 설명하여 보라.
문제 28. C언어의 typedef을 이용하여 complex 라고 하는 새로운 자료형을 정의하라. complex 자료형은 구조체로서 float 형인 real변수와역시 float 형인 imaginary 변수를 갖는다. complex 자료형으로 변수 c1 과 c2 를 선언하여 보라.
문제 29. person 이라는 구조체를 만들어보자. 이 구조체에는 문자 배열로 된 이름, 사람의 나이를 나타내는 정수 값, 각 개인의 월급을 나타내는 float 값 등이 변수로 들어가야 한다.
본문내용
3장. EXERCISES문제 1. C 언어에서의 배열에 대하여 다음 중 맞는 것은?
정답 (2) 번 배열의 이름은 포인터와 같은 역할을 한다.
풀이
(1) 3차원 이상의 배열은 가능하다. ex) int a[2][3][4][5];
(3) 배열의 인덱스는 0에서부터 시작한다.
ex) int a[10] ... a[0] , a[1], a[2], a[3], ... a[8], a[9]
(4) 선언한 다음, 실행 도중에 배열의 크기를 변경하는것은 불가능하다.
(정적 메모리 할당.. 변경하려면 동적 메모리 할당을 이용해야 한다.)
문제 3. float a[100] 으로 선언된 배열의 시작주소를 1000번지라고 할 때, 배열의 10번째 요소의 주소는 몇 번지 인가?
정답 (4) 1040번지
풀이
base + sizeof(float)*10 = 1000 + 4*10 = 1040 (번지)
문제 4. 구조체에 관한 내용 중 틀린것은?
정답 (2) 구조체 변수에 대하여 비교연산이나 산술연산을 할 수...