[21년 1회]
#include <stdio.h>
void main(){
struct insa {
char name[10];
int age;
}a[] = {"Kim",28,"Lee",38,"Park",42,"Choi",31};
struct insa *p;
p = a;
p++;
printf("%s\n", p-> name);
printf("%d\n", p-> age);
}
[정답]
Lee
38
[풀이]
p = a 는 a의 주소값 즉, a[0]을 가리키기 때문에 a의 첫번째 요소
→ "Kim", 28
p++ 는 포인터를 1 증가시키기 때문에 a[1]을 가리키게됨
→ "Lee", 38
* 구조체 Struct
하나 이상의 변수를 묶어 그룹화하는 사용자 정의 자료형
배열 = 같은 자료형으로만 구성 / 구조체 = 여러 가지 자료형으로 구성 가능
[21년 2회]
#include <stdio.h>
int main() {
int res;
res = mp(2,10);
printf("%d",res);
return 0;
}
int mp(int base, int exp){
int res = 1;
for(int i=0; i < exp; i++){
res *= base;
}
return res;
}
정답 : 1024
그냥 계산하면 됨
#include <stdio.h>
int main() {
int ary[3];
int s = 0;
*(ary+0) = 1;
ary[1] = *(ary+0)+2;
ary[2] = *ary+3;
for(int i=0; i<3; i++){
s = s+ary[i];
}
printf("%d",s);
}
정답 : 8
[풀이]
*(ary + 0) = 1
→ ary[]의 주소값을 뜻하는데 배열의 주소값은 첫번째 요소의 값이기 때문에 배열 ary[0]이 1이라는 의미
ary[1] = *(ary+0) + 2
→ *(ary+0)=1 이기 때문에 1+2 =3 / ary[]의 두 번째 요소는 3
ary[2] = *ary+3
→ *ary도 ary 배열의 주소값을 의미하기 때문에 1, 1+3 =4
➡️ ary[] = {1, 3, 4}
배열을 적용해서 for문을 돌리면 8 출력
[21년 3회]
#include <stdio.h>
int main() {
int *arr[3];
int a = 12, b = 24, c = 36;
arr[0] = &a;
arr[1] = &b;
arr[2] = &c;
printf("%d\n", *arr[1] + **arr + 1);
}
정답 : 37
[풀이]
arr[0] = &a;
arr[1] = &b;
arr[2] = &c;
→ 배열의 각 인덱스에 a, b, c의 주소가 저장됨
결국 각각 a,b,c의 값을 가리킴
*arr[1] = b의 값을 참조 = 24
**arr = *arr[0] = a = 12
24 + 12 + 1 = 37
#include <stdio.h>
struct jsu {
char name[12];
int os, db, hab, hhab;
};
int main() {
struct jsu st[3] = {{"데이터1", 95, 88},
{"데이터2", 84, 91},
{"데이터3", 86, 75}};
struct jsu *p;
p = &st[0];
(p + 1) -> hab = (p + 1) -> os + (p + 2) -> db;
(p + 1)-> hhab = (p + 1) -> hab + p -> os + p -> db;
printf("%d\n", (p + 1) -> hab + (p + 1) -> hhab);
}
정답 : 501
[풀이]
(p + 1) = st[1]
(p + 1)의 hab = st[1]의 os + st[2]의 db = 84 + 75 = 159
(p + 1)의 hhab = st[1]의 hab + st[0]의 os + st[0]의 db = 159 + 95 + 88 = 342
159 + 342 = 501
'정보처리기사[실기]' 카테고리의 다른 글
[C언어] 24년 기출 문제 풀이 (1회, 2회) (1) | 2024.10.01 |
---|---|
[C언어] 23년 기출 문제 풀이 (1회 ~ 4회) (0) | 2024.10.01 |
[C언어] 22년 기출 문제 풀이 (1회 ~ 4회) (0) | 2024.09.19 |
[6과목_프로그래밍 언어 활용] 아스키코드 ASCII (0) | 2024.09.12 |
[C언어] 20년 기출 문제 풀이 (1회 ~ 4회) (2) | 2024.09.09 |