본문 바로가기

정보처리기사[실기]

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

[20년 1회]

#include <stdio.h>

main() {
	int c=1;
    switch(3) {
    	case 1:c+=3;
        case 2:c++;
        case 3:c=0;
        case 4:c+=3;
        case 5:c-=10;
        default : c--;
	}
	printf("%d", c);
}

 

더보기

정답 : -8

switch문에서 break가 없기 때문에 case 3 이후의 모든 케이스가 실행된다.

 

void align(int a[]) {
    int temp;
    for(int i = 0; i < 4; i++) {
        for(int j = 0; j < 4 - i; j++) {
            if(a[j] > a[j+1]) {
                temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
        }
    }
}

int main() {
    int a[] = {85, 75, 50, 100, 95};
    align(a);
    for(int i = 0; i < 5; i++)
        printf("%d ", a[i]);
}

 

더보기

정답 

50 75 85 95 100

 

* 버블정렬 (Bubble Sort)

  1. 배열의 첫 번째 요소부터 두 번째 요소와 비교하여, 더 큰 값을 뒤로 보내고, 작은 값을 앞으로 보냅니다.
  2. 배열 끝까지 비교를 반복하면서, 한 번의 **패스(pass)**가 끝날 때마다 가장 큰 값이 배열의 마지막 위치로 "떠오르게(bubble)" 됩니다.
  3. 두 번째 패스에서는 그 다음으로 큰 값을 두 번째 마지막 위치로 보내는 식으로 진행됩니다.
  4. 이런 식으로 배열 전체를 정렬할 때까지 반복합니다.

* 출처는 chat GPT ㅋ

 

 ⚠️ 주의사항 "%d " 인지 "%d" 인지 제대로 보고 띄어쓰기를 해야하는지 말아야하는지 확실하게 확인하기


[20년 3회]

#include <stdio.h>

int r1(){
	return 4;
}
int r10() {
	return(30+r1());
}
int r100(){
	return(200+r10());
}
int main(){
	printf("%d\n",r100());
}

 

더보기

정답 : 234

 

그냥 계산하면 됨

 

#include <stdio.h>

void main() {
	int c=0;
    int i=0;
    
    while(i<10) {
    	i++;
        c *= i;
    }
    printf("%d", c);
}

 

더보기

정답 : 0

 

c가 0이라 그냥 무족권 0이 나옴


[20년 4회]

#include <stdio.h>

 main() {
   char *p="KOREA";
   printf("%s\n",p);
   printf("%s\n",p+3);
   printf("%c\n",*p);
   printf("%c\n",*(p+3));
   printf("%c\n",*p+2);
}

 

더보기

정답 

KOREA

EA

K

E

M

 

풀이는 흥달쌤 강의 참고하쇼 (16번 문제)

https://www.youtube.com/watch?v=HSzzhhhnAZg