1-1 구조체 정의 및 사용
문제설명
구조체를 정의하고 변수 선언 및 초기화를 통해 기본 사용법을 연습하는 문제이다.
목표
- 구조체 정의
- 구조체 변수 선언 및 초기화
- 멤버 접근
요구사항
- struct point를 정의하시오 (멤버: xpos, ypos)
- 변수 p1을 선언하고 {10, 20}으로 초기화하시오
- xpos와 ypos를 출력하시오
출력예시
10 20
예상 코드
더보기
#include <stdio.h>
struct point {
int xpos;
int ypos;
};
int main(void) {
struct point p1 = {10, 20};
printf("%d %d\n", p1.xpos, p1.ypos);
return 0;
}
1-2 구조체 배열
문제설명
구조체 배열을 사용하여 여러 개의 구조체 데이터를 다루는 문제이다.
목표
- 구조체 배열 이해
- 배열 요소 접근
요구사항
- struct point를 정의하시오. (멤버: xpos, ypos)
- 구조체 배열 arr[2]를 선언하고
- (1,2), (3,4)로 초기화
- 배열의 모든 요소를 출력하시오
출력예시
1 2
3 4
예상 답안
더보기
#include <stdio.h>
struct point {
int xpos;
int ypos;
};
int main(void) {
struct point arr[2] = {{1,2}, {3,4}};
for(int i=0; i<2; i++) {
printf("%d %d\n", arr[i].xpos, arr[i].ypos);
}
return 0;
}
1-3 구조체 포인터와 -> 연산자
문제설명
구조체 포인터를 사용하여 멤버에 접근하는 방법을 연습하는 문제이다.
목표
- 구조체 포인터 이해
- (*p). vs -> 차이 이해
요구사항
- struct point를 정의하시오. (멤버: xpos, ypos)
- struct point p1 = {5, 6} 선언 하시오.
- 포인터 p가 p1을 가리키도록 설정
- 아래 두 방식으로 값을 출력하시오
- (*p).xpos
- p->xpos
출력예시
5 6
5 6
예상 답안
더보기
#include <stdio.h>
struct point {
int xpos;
int ypos;
};
int main(void) {
struct point p1 = {5, 6};
struct point *p = &p1;
printf("%d %d\n", (*p).xpos, (*p).ypos);
printf("%d %d\n", p->xpos, p->ypos);
return 0;
}
1-4 구조체 내부 포인터
문제설명
구조체 멤버로 포인터를 사용하는 구조를 이해하는 문제이다.
목표
- 구조체 안에 포인터 포함
- 포인터를 통한 접근
요구사항
struct point {
int xpos;
int ypos;
};
struct circle {
double radius;
struct point *center;
};
- point 변수 (3,4) 생성
- circle 변수 생성
- 중심 좌표 출력
출력예시
3 4
예상 답안
#include <stdio.h>
struct point {
int xpos;
int ypos;
};
struct circle {
double radius;
struct point *center;
};
int main(void) {
struct point p = {3,4};
struct circle c = {5.0, &p};
printf("%d %d\n", c.center->xpos, c.center->ypos);
return 0;
}
1-5 구조체 주소 개념
문제설명
구조체의 메모리 구조를 이해하는 문제이다.
목표
- 구조체 주소 이해
- 첫 번째 멤버 주소 관계 이해
요구사항
다음 코드를 작성하고 실행 결과를 관찰하시오.
struct point p = {10, 20};
printf("%p\n", &p);
printf("%p\n", &p.xpos);
질문) 두 값이 같은지 확인하고 이유를 설명하시오.
예상 답안 (설명)
더보기
두 주소는 동일하다
이유: 구조체의 시작 주소 = 첫 번째 멤버의 주소
1-6 typedef
문제설명
typedef를 사용하여 구조체를 간단하게 사용하는 문제이다.
목표
- typedef 이해
- struct 생략
요구사항
- 구조체 point를 정의하고 Point로 typedef
- 변수 선언 후 출력
출력예시
10 20
예상 답안
더보기
#include <stdio.h>
typedef struct {
int xpos;
int ypos;
} Point;
int main(void) {
Point p = {10, 20};
printf("%d %d\n", p.xpos, p.ypos);
return 0;
}
'[1] 프로그래밍1 및 실습(C언어) > 10주차. 구조체' 카테고리의 다른 글
| [10주차][구조체] 3단계 연습문제 - 응용 (0) | 2026.05.01 |
|---|---|
| [10주차][구조체] 2단계 연습문제 - 개념연습(새로운 구조체) (0) | 2026.05.01 |