본문 바로가기
자격증/정보처리기사 실기

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

by 김엉배 2023. 9. 23.
728x90
반응형

◎  2023년 1회 02번

#include <stdio.h>

int main() {
 char a[] = "Art";
 char *p = NULL;
 p = a;
 int i = 0;
 
 printf("%s\n", a);
 printf("%c\n", *p);
 printf("%c\n", *a);
 printf("%s\n", p);
 
 for(int i=0; a[i] != '\0'; i++)
 printf("%c", a[i]);
}
더보기

1)  a[] 에 Art 선언

A a[0]
r a[1]
t a[2]
NULL a[3]

2) *p 는 NULL로 선언

3) p와 a는 같다 즉,

A a[0] p[0]
r a[1] p[1]
t a[2] p[2]
NULL a[3] p[3]

 

♣ 정답  ->  

Art

A

A

Art

Art

 

◎  2023년 1회 03번

#include <stdio.h>
 
int main(){
 
    char* a = "qwer";
    char* b = "qwtety";
    int i, j;
 
    for(int i = 0; a[i] != '\0' ; i++){
        for(int j = 0; b[j] != '\0'; j++){
            if(a[i] == b[j]) printf("%c", a[i]);
        }
    }
}
더보기

1) char *a

a[0] q
a[1] w
a[2] e
a[3] r
a[4] null

 2) char *b

b[0] q
b[1] w
b[2] e
b[3] t
b[4] y
b[5] null

3) for문을 보면 !='\0' 널이 아닐 때 값이 출력된다. 

4) if문에서 서로 값이 같을 때 출력

 

♣ 정답  ->  qwe

 

◎  2023년 1회 09

이진수를 십진수로 변환하는 코드에 대해 괄호 (a) (b)의 적합한 답을 작성하시오.
___________________________________________________________________________
#include <stdio.h>
 
int main() {
    int input = 101110;
    int di = 1;
    int sum = 0;
 
    while (1) {
        if (input == 0) break
        else {
          sum = sum + (input (a)(b)) * di;
          di = di * 2;
          input = input / 10;
        }
    }
    printf("%d", sum);
}
더보기

♣ 정답  -> (a) %  ,(b) 10

 

 

◎  2023년 2회 01번

입력값이 54321일 경우 출력값이 43215로 출력되어야 한다.
_____________________________________________

#include <stdio.h>

int main(void) {
 int n[5];
 int i;
 
 for(i=0; i<5; i++) {
  printf("숫자를 입력해주세요. : ");
  scanf("%d", &n[i]);
 }
 
 for(i=0; i<5; i++) {
  printf("%d", (     ) );
 }
 
 return 0;
}
더보기

♣ 정답  -> n[(i+1)%5]

 

◎  2023년 2회 03번

입력값 홍길동, 김철수, 박영희 순서로 주어진다.
______________________________________

#include <stdio.h>

char n[30];
char *test() {
 printf(입력하세요 : );
 gets(n);
 return n;
}

int main() {
 char *test1;
 char *test2;
 char *test3;
 
 test1 = test();
 test2 = test();
 test3 = test();
 
 printf(%s\n, test1);
 printf(%s\n, test2);
 printf(%s\s, test3);
}
더보기

1) test1 , test2, test3을 실행하면서 배열의 위치를 바꿔주지 않는다.

2) 마지막 test3 = test(); 을 실행하면 박영희가 return이 된다.

* 입력값 순으로 출력되게 하려면 각 test 실행 다음 printf을 실행해야한다.

 

♣ 정답  -> 

박영희

박영희

박영희

 

◎  2023년 2회 05번

#include <stido.h>

int n[3] = [73, 95, 82]
sum = 0

for(i=0; i<3; i++) {
 sum += n[i];
}

switch(sum/30) {
 case 10:
 case 9: printf("A");
 case 8: printf("B");
 case 7:
 case 6: printf("C");
 default:  printf("D");
}
더보기

1) for문을 돌려보면 n[3]의 값을 모두 합치는 값을 sum에 저장

2) sum은 250이 된다.

3) switch(250/30) 은 case 8에 들어 들어간다. 그러나 break가 없으므로 계속 실행

 

♣ 정답  ->  BCD

 

◎  2023년 2회 07번

#include <stdio.h>

int main() {
 int c = 0;
 
 for(int=i; i<=2023; i++) {
  if(i%4 == 0) c++;
 }
 printf("%d", c);
}
더보기

1) c의 초기값을 0으로 설정

2) for문을 i가 0부터 시작해 2023일 때까지 반복

3) if문에서  i가 4로 나눌 때 나머지가 0일 때 c의 값 1씩 증가

 

♣ 정답  ->  505

 

◎  2023년 2회 09번

#include <stdio.h>
#define MAX_SIZE 10

int isWhat[MAX_SIZE];
int point = -1;

void into(int num) {
 if(point >= 10) printf("FUll");
 isWhat[++point] = num;
}

int take() {
 if(isEmpty() == 1) printf("Empty");
 return isWhat[point--];
}

int isEmpty() {
 if(point == -1) return 1;
 return 0;
}

inf isFull() {
 if(point == 10) return 1;
 return 0;
}

int main(int argc, char const *argv[]) {
 int e;
 into(5); into(2);
 while(!isEmpty()) {
  printf("%d", take());
  into(4); into(1); printf("%d", take());
  into(3); printf("%d", take()); printf("%d", take());
  into(6); printf("%d", take()); printf("%d", take());
 }
 return 0;
}
더보기

♣ 정답  ->  213465

 

◎  2023년 2회 18번

#include <stdio.h>

int main() {
 int E[] = {64, 25, 12, 22, 11};
 int n = sizeof(E) / sizeof(E[0]);
 int i = 0;
 do {
      int j = i+1;
      do {
          if(E[i] (     ) E[j]) {
           int temp = E[i];
           E[i] =E[j];
           E[j] = temp;
          }
          j++;
         } while (j < n);]
        i++;
       } while(j<n);
       i++;
      } while(i<n-1);
     for(int i=0; i<=4; i++)
      printf("%d " , E[i]);
}
더보기

♣ 정답  ->  ( >) 

728x90
반응형