2023 정보처리기사 실기 예상 문제 모음

 

C언어 기출문제 모음

JAVA 기출문제 모음

Python 기출문제 모음

정보처리기사 실기 SQL 기출문제 모음

 

정보처리산업기사(정처산기) 실기 C언어 기출문제 모음

정보처리산업기사(정처산기) 실기 Java 기출문제 모음

정보처리산업기사(정처산기) 실기 Python 기출문제 모음

정보처리산업기사(정처산기) 실기 SQL 기출문제 모음


20년 1회

14번 출력 결과

#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);
  }

20년 1회

20번 출력 결과8

#include <stdio.h>
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;
      }
}
 main() {
   int a[]={85, 75, 50, 100, 95};
   align(a);
   for(int i=0;i<5;i++)
     printf("%d",a[i]);
}
더보기

50758595100


20년 3회

10번 출력 결과-8

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

20년 4회

10번 출력 결과-8

#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


21년 1회

15번  출력 결과 : -8

#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


21년 2회

16번 출력 결과

#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


21년 2회

18번 출력 결과 8

#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);

}

21년 3회

12번 출력 결과-8

#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);
 
}

21년 3회

17번 출력 결과

#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);
}

22년 1회

12번 5를 입력받았을 때 출력 결과 -8

#include <stdio.h>
 
int func(int a) {
 if(a<=1) return 1;
 return a*func(a-1);
}

int main(){
 int a;
 scanf("%d",&a);
 printf("%d",func(a));
}

22년 1회

15번 아래 프로그램은 정수를 역순으로 출력하는데 (1)(2)(3)에 들어갈 연산자를 쓰시오

#include <stdio.h>
int main() {
 
  int number = 1234;
  int div = 10;
  int result = 0;
 
  while (number ( 1 ) 0) {
  
    result = result * div;
    result = result + number ( 2 ) div;
    number = number ( 3 ) div;
  
  }
 
  printf("%d", result);
return 0;
 
}
더보기

(1) : >

(2) : %

(3) : /


22년 2회

8번 출력결과 

#include <stdio.h>
struct A{
  int n;
  int g;
  };

int main() { 
struct A a[2];
  for(int i=0;i<2;i++){
    a[i].n=i, a[i].g=i+1;
  }
  printf("%d",a[0].n+a[1].g);
}

22년 2회

15번 출력결과 

#include <stdio.h>
 
int len(char*p);
 
int main(){
 
  char*p1 = "2022";
  char*p2 = "202207";  
  
  int a = len(p1);
  int b = len(p2);
  
  printf("%d", a+b);
 
}
 
int len(char*p){
  int r = 0;
  while(*p != '\0'){
    p++;
    r++;
  }
return r;
}

22년 2회

16번 출력결과 

#include <stdio.h>

int main(int argc, char*argv[]) {
  int a[4]={0,2,4,8};
  int b[3]={};
  int i=1;
  int sum=0;
  int *p1;

  for(i;i<4;i++){
    p1=a+i;
    b[i-1]=*p1-a[i-1];
    sum=sum+b[i-1]+a[i];
  }
  printf("%d",sum);

  return 0;
}

22년 3회

1. 아래는 C언어의 2차원 배열 형태이다. field의 경우 2차원 배열 형태는 예시처럼 출력되므로, 이를 참고하여 mines의 2차원 배열 형태를 작성하시오. 

(이 문제는 mine이 지뢰라는 뜻인지 몰랐다면 사실 풀기 힘든 문제였다)

#include <stdio.h>
void main(){

int mines[4][4] = {{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};
int field[4][4] = {{0,1,0,1},{0,0,0,1},{1,1,1,0},{0,1,1,1}};
 
int w = 4, h = 4;

  for(int y=0; y<h; y++) {
      for(int x=0;x<w;x++) {  
        if(field[y][x] == 0) continue;
        for(int j=y-1;j<=y+1;j++) {
          for(int i=x-1;i<=x+1;i++) {
                  if(chkover(w,h,j,i) == 1) 
                     mines[j][i] += 1;
          }
        }
      }
    }
 }
 
int chkover(int w,int h,int j,int i) {
  if (i >= 0 && i < w && j >= 0 && j < h) return 1;
  return 0;
}

사진 출처  : [2022년 3회] 정보처리기사 실기 복원 문제 (tistory.com)

더보기
1 1 3 2
3 4 5 3
3 5 6 4
3 5 5 3

22년 3회

13번 출력결과

#include<stdio.h>
main(){
  int s, el =0;
  for(int i=6; i<=30; i++){
    s=0;
    for(int j=1; j<=i/2; j++){
      if(i%j==0){
        s=s+j;
      }
    }
    if(s==i){
    el++;
    }
  }
  printf("%d", el);
  }

23년 1회

2번 출력결과

#include <stdio.h>

int main(void) {
  char a[]="Art";
  char*p=NULL;
  p=a;
  printf("%s\n",a);
  printf("%c\n",*p);
  printf("%c\n",*a);
  printf("%s\n",a);

  for(int i=0;a[i]!='\0';i++){
    printf("%c",a[i]);
  }
}
더보기

Art

A

A

Art

Art


23년 1회

8번 출력결과

#include <stdio.h>

int main(void) {
  char *a = "qwer";
  char *b = "qwtety";
  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]);
    }
  }
}

23년 1회

10번 다음은 이진수에서 십진수로 변환하는 코드이다.  (가)는 연산자이고 (나)는 정수일 때 빈칸을 알맞게 쓰시오.

#include <stdio.h>

int main(void) {
int input = 101110;
int di = 1;
int sum = 0;

while (input > 0) {
sum = sum + (input (가)(나) * di);
di = di * 2;
input = input / 10;
}

printf("%d", sum);

return 0;
}
더보기

(가 ) : %

(나) : 10 또는 2


23년 1회

14번 (가) (나) 빈칸에 알맞은 변수를 쓰시오.

#include <stdio.h>

void swap(int* idx1, int* idx2) {
  
  int t = *idx1;
  *idx1 = *idx2;
  *( 가 ) = t;
}
void Usort(int a[], int len) {
  for (int i = 0; i < len - 1; i++) {
    for (int j = 0; j < len - i - 1; j++) {
      if (a[j] > a[j + 1])
        swap(&a[j], &a[j + 1]);
    }
  }

  for (int k = 0; k < 5; k++) {
    printf("%d ", a[k]);
  }
}

int main(void) {
  int arr[] = {64, 34, 25, 12, 40};
  int nx = 5;

  Usort(arr, (나));
  return 0;
}
더보기

(가) idx2

(나) nx


23년 2회

1번 입력값이 순서대로 5, 4, 3, 2, 1일 경우 출력값이 43215로 출력 되도록 빈칸(가)에 들어갈 코드를 작성하시오.

int main()
{
    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]


23년 2회

2번 a,b,c,d의 빈칸에 알맞은 식을 <보기>에서 찾아쓰는데 <보기>를 최소한으로 쓰시오.

<보기>
1000
500
100
10
%
/
+
-
#include<stdio.h> 

int main()
{
int m=4620;
int a,b,c,d;
a=(가)
b=(나)
c=(다)
d=(라)
printf("1000원 개수: %d",a);
printf("500원 개수: %d",b);
printf("100원 개수: %d",c);
printf("10원 개수: %d",d);
return 0;
}
더보기

(가) : m/1000

(나) : (m%1000)/500

(다) : (m%500)/100

(라) : (m%100)/10


23년 2회

3번 다음 문제에서 홍길동, 김철수, 박영희 순서대로 입력했다고 할 때 출력결과

#include<stdio.h> 
#include<stdlib.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",test3);
return 0;
}
더보기

박영희

박영희

박영희


23년 2회

5번 출력결과

#include<stdio.h>

int main(void)
{
    int n[3] = {73, 95, 82};
    int sum = 0;
    for(int 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");
}
    return 0;
}

23년 2회

7번 출력결과

#include<stdio.h>

int main(void){
    int c=0;
    for(int i = 1; i <=2023; i++) { 

      if(i%4 == 0) c++; 

}
   printf("%d", c);
    return 0;
}

23년 2회
9번 출력결과

#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;
}

int 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


23년 2회

18번 다음은 선택정렬을 하는 코드이다. (가)에 들어갈 기호를 쓰시오.

#include<stdio.h>
int main(void){
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 tmp = E[i];
                E[i] = E[j];
                E[j] = tmp;
            }
            j++;

       } while (j < n);
       
       i++;
    } while (i < n - 1);
    
return 0;
    
}
더보기

(가) : >


23년 3회

3번 출력결과(20년 4회 10번 문제와 거의 동일)

#include <stdio.h>
int main() {
	char* p = "KOREA";
	printf("%s\n", p);
	printf("%s\n", p+1);
	printf("%c\n", *p);
	printf("%c\n", *(p+3));
	printf("%c\n", *p+4);
}
더보기

KOREA
OREA
K

E

O


23년 3회

4번 C언어에서 구조체의 멤버에 접근하기 위한 기호를 쓰시오.


23년 3회

9번 출력 결과

#include<stdio.h>
int complete(int n) {
	int sum = 0;
	for(int j=1; j<=n/2; j++) {
		if(n%j == 0) {
			sum = sum+j;
		}
	}
	if(sum==n) {
		return 1;
	} else {
		return 0;
	}
}
int main() {
	int s = 0;
	for(int i=1; i<=100; i++) {
		if(complete(i))
			s += i;
	}
	printf("%d", s);
}

23년 3회

15번 출력결과

#include<stdio.h>
int f(int n) {
	if(n<=1) return 1;
	else return n*f(n-1);
}
int main() {
	printf("%d", f(7));
}
더보기
5040

 

2023 정보처리기사 실기 예상 문제 모음

 

C언어 기출문제 모음

JAVA 기출문제 모음

Python 기출문제 모음

정보처리기사 실기 SQL 기출문제 모음

 

정보처리산업기사(정처산기) 실기 C언어 기출문제 모음

정보처리산업기사(정처산기) 실기 Java 기출문제 모음

정보처리산업기사(정처산기) 실기 Python 기출문제 모음

정보처리산업기사(정처산기) 실기 SQL 기출문제 모음

 

 

+ Recent posts