자격증/정보처리기사 실기

정보처리기사[실기] 기출문제_C언어(2020년도)

김엉배 2023. 9. 19. 23:14
728x90
반응형

※  참고(printf 서식 문자)

  • %c : 문자 표기
  • %s : 문자열 표기
  • %f, %lf : 실수 표기
  • %u : 10진 정수 (부호 없음)
  • %d : 10진 정수 (부호 있음)
  • %o : 8진 정수 (부호 없음)
  • %x : 16진 정수 (부호 없음)
  • %lu : long 타입 (부호 없음)
  • %ld : long 타입 (부호 있음)
  • %llu : long long 타입 (부호 없음)
  • %lld : long long 타입 (부호 있음)
  • %p : 메모리 주소 표기
  • %% : 기호 % 표기

 

◎  2020년 1회 12번

#include <stdio.h>
void main() {
	int i, j;
    int temp;
    int a[5] = {75, 95, 85, 100, 50};
    
    for(i=0; i<4; i++) {
    	for(j=0; j<4-i; j++) {
            if(a[j] > a[j+1]) {
            	temp = a[j];
             	a[j] = a[j+1];
             	a[j+1] = temp;
            }
        }
    }
    
    for(i=0; i<5; i++) {
    	printf("%d ", a[i]);
    }
}
더보기

* 거품 정렬(Bubble Sort): 두 인접한 원소를 검사하여 정렬하는 방법

 

1) i는 3만큼 반복 / j는 4-i 만큼 반복

2) 현재 요소의 값과 다음 요소 값을 비교하여 큰값을 다음 요소로 보냄

3) 0~4번째까지의 값을 출력

 

♣ 정답  -> 50 75 85 95 100

 

◎  2020년 3회 02번

#include <stdio.h>
void main() {
    int i = 0, c = 0;
    while(i < 10) {
    	i++;
        c*=i;
    }
    printf("%d", c);
}
더보기

1) while이 10이므로 i < 10 일때까지 계속 반복

2) while 안에 c *= i => c = c*i가 있는데 c는  이미 0으로 선언되어있으므로 while이 끝나고 c는 0이 된다.

 

♣ 정답  -> 0

 

◎  2020년 3회 13번

#include <stido.h>
int r1() {
	return 4;
}
int r10() {
	return (30 + r1());
}
int r100() {
	return (200 + r10());
}
int main() {
    printf("%d\n", r100());
    return 0;
}
더보기

1) r100() => 200 + r10()

2) 200 + r10() => 200 + 30 + r1()

3)200 + 30 + r1() => 200 + 30 + 4

 

♣ 정답  -> 234

 

◎  2020년 4회 18번

#include <stdio.h>

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

1) char *p = "KOREA"라고 선언되면 p라는 포인터에 KOREA라는 저장 공간이 할당된 곳을 가리키게 된다.

주솟값
K (p)
O (p+1)
R (p+2)
E (p+3)
A (p+4)
NULL(자동으로 마지막 Null)

2) printf("%s \n", *p+2); 을 보면 *p는 K인데 여기에 +2를 하니 다다음 스펠링 M이 나온다.

 

♣ 정답  ->

KOREA

EA

K

E

A

728x90
반응형