[C언어] 21년 기출 문제 풀이 (1회 ~ 4회)

2024. 9. 12. 10:23·정보처리기사[실기]

[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회)  (1) 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
'정보처리기사[실기]' 카테고리의 다른 글
  • [C언어] 23년 기출 문제 풀이 (1회 ~ 4회)
  • [C언어] 22년 기출 문제 풀이 (1회 ~ 4회)
  • [6과목_프로그래밍 언어 활용] 아스키코드 ASCII
  • [C언어] 20년 기출 문제 풀이 (1회 ~ 4회)
microsaurs
microsaurs
개발 스터디로그입니다. 공부한 내용을 정리해서 올립니다 ㅇ-ㅇ
  • microsaurs
    microsaurs.devlog
    microsaurs
  • 전체
    오늘
    어제
    • 분류 전체보기 (140) N
      • Side Project (2) N
      • Algorithm Study (39)
      • JAVA (8)
      • Swift (11)
      • Python (21)
      • CS (5)
      • React (3)
      • 리얼클래스 studylog (27)
      • 정보처리기사[실기] (23)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스위프트기초
    Python
    The Office
    study
    정보처리기사실기
    타일러영어
    프로그래머스
    ios프로그래밍
    영어회화
    파이썬기초
    ios프로그래밍을위한스위프트기초
    자바알고리즘
    정보처리기사
    ios개발
    알고리즘
    javaalgorithm
    정보처리기사프로그래밍언어
    영어독학
    더오피스
    Java
    javaStudy
    리얼학습일기
    나도코딩
    SWIFT
    파이썬
    프로그래밍언어
    리얼클래스
    파이썬문법
    Algorithm
    정처기실기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
microsaurs
[C언어] 21년 기출 문제 풀이 (1회 ~ 4회)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.