정보처리기사 실기) 2020-2021 프로그래밍 문제 모음
본문 바로가기
정보처리기사/정보처리기사 실기 대비 문제

정보처리기사 실기) 2020-2021 프로그래밍 문제 모음

by 코딩하는 핑가 2021. 9. 13.
반응형

* 공단에서 실기 문제와 답은 공개하지 않습니다. 포스팅한 자료는 응시하신 분들의 기억으로 복원된 문제와 가답안이므로 실제 문제 순서나 정답과 다를 수 있습니다.

* 본 포스팅을 무단 복제하거나 배포하지 마시기 바랍니다. ( 게시글 최상단에 본 블로그 출처 밝히시면 포스팅 가능합니다. )

* 2020년부터 2021년까지 프로그래밍 문제만 모았습니다.

* JAVA (12문제) - C (8문제) - Python  (4문제) - SQL (12문제) 순서로 모았습니다.

 

1탄 - 정보처리기사 실기) 2017-2019 프로그래밍 문제 모음

2탄 - 정보처리기사 실기) 2020-2021 프로그래밍 문제 모음


[JAVA]

1. 배열 결과 입력

public class Test {
		static int nSize = 4;
    
    public static void main(String[] args) {
    	int[] arr = new int[nSize];
        makeArray(arr);
        
        for(int i=0; i<nSize; i++) {
        	System.out.print(arr[i] + " ");
        }
    }
    
    public static void makeArray(int[] arr) {
    	for(int i=0; i<nSize; i++) {
        	arr[i] = i;
        }
    }
}
더보기

답안 : 0 1 2 3

 

2. 자바 객체 생성 (   ) 채우기 ( 2020년 2회 )

class Parent{
    void show(){
        System.out.println(""Parent"");
    }
}

class Child extends Parent{
    void show(){
        System.out.println(""Child"");
    }
}

public class Main{
    public static void main(String[] args) {
        Parent pa = (       ) Child();
        pa.show();
    }
}

출력결과
Child
"
더보기

답안 : new

 

3.  자바 상속, super 키워드 이용 결과값 묻는 문제 ( 2020년 2회 )

class A {
    int a;

    A(int a) {
        this.a = a;
    }

    void display() {
        System.out.println(""a=""+a);
    }
}
class B extends A {
    B(int a) {
        super(a);
        super.display();
    }
}
public class Main {
    public static void main(String[] args){
        B obj = new B(10);
    }
}
더보기

답안 : a=10

 

4. 다음의 출력 결과를 쓰시오. ( 2020년 3회 )

public class Test{

    public static void main(String []args){
        int i=0;
        int sum=0;
        while (i<10){
            i++;
            if(i%2==1)
              continue;
        sum += i;
        }
    System.out.print(sum);
    }
}
더보기

답안 : 30

 

5. 다음의 출력 결과를 쓰시오. ( 2020년 3회 )

abstract class Vehicle{
 String name;
 abstract public String getName(String val); 

 public String getName(){
 return "Vehicle name :" + name;
 }
} 

 

class Car extends Vehicle{
 public Car(String val){
 name = super.name = val;
 }
 public String getName(String val){
 return "Car name :" + val;
 }
 public String getName(byte val[]){
 return "Car name :" + val;
 }
}


public class Test{
 public static void main(String[] args){
 Vehicle obj = new Car("Spark");
 System.out.printf(obj.getName());
 }
}
더보기

답안 : Vehicle name :Spark

 

6. 다음 빈 칸에 알맞은 답을 쓰시오. ( 10을 2진수로 변환 ) ( 2020년 4,5회 )

public class Test { 
   public static void main(String[] args) {   
      int a[] = new int[8];
      int i = 0, n = 10;
      while ( ① ) {  
         a[i++] = ②; 
         n /= 2; 
      } 
      for (i=7; i>=0; i--)
         System.out.printf("%d", a[i]);
      }
}
더보기

답안 : ① n > 0 ② n % 2

답안 외의 실행 결과가 동일하면 대부분 정답으로 인정

 

7. 3행 5열 배열 출력 시 배열 크기 지정하는 문제 (int [][]) ( 2020년 4,5회 )

public class Test { 
   public static void main(String[] args) {   

     int[][] array = new int[①][②];

    int n = 1;

    for(int i = 0; i < 3; i++) {

      for(int j = 0; j < 5; j++) {

        array[i][j] = j*3 + (i+1);

        System.out.print(array[i][j] + "");

      }

      System.out.println();

    }

  }

}
더보기

문제유형 : 프로그래밍(JAVA) / 2018년 2회차 기출

답안 : ① 3 ② 5

 

8. 실행 결과를 쓰시오. ( 2020년 4, 5회 )

class Parent{
 int compute(int num) {
  if( num <= 1) return num;
  return compute(num-1) + compute(num-2);
 }
}

class Child extends Parent {
 int compute(int num) {
  if( num <= 1) return num;
  return compute(num-1) + compute(num-3);
 }
}

Class Test{
 public static void main (String[] args){
  Parent obj = new Child();
  System.out.print(obj.compute(4));
 }
}"
더보기

답안 : 1

 

9. JAVA 문제  ( 부분점수 없음 ) ( 2021년 1회 )

public class ssoTest{

     public static void main(String []args){
        int a[][] = {{45, 50, 75}, {89}};
        System.out.println(a[0].length);
        System.out.println(a[1].length);
        System.out.println(a[0][0]);
        System.out.println(a[0][1]);
        System.out.println(a[1][0]);
     }
}
더보기

답안

3

1

45

50

89

 

10. JAVA 문제 ( 부분점수 없음 ) ( 2021년 1회 )

public class ssoTest {
    public static void main(String[] args) {
        int j, i;
        for (j = 0, i = 0; i <= 5; i++) {
            j += i;
            System.out.print(i);
            if (i == 5) {
                System.out.print("=");
                System.out.print(j);
            } else {
                System.out.print("+");
            }
        }
    }
}
더보기
 

답안 : 0+1+2+3+4+5=15

 

11. JAVA - 이것은 클래스 내에서 객체 생성 없이 사용할 수 있는 메소드이다. 다음의 출력 결과를 보고 괄호안에 알맞은 답안을 작성하시오. ( 2021년 2회 )

public class Test {

	public static void main(String[] args) {

		System.out.print(check(1));

	}	

	(           ) String check(int num) {

		return (num >= 0) ? "positive" : "negative";

	}

}

[결과]
positive
더보기

답안 : static 

 

12. JAVA 상속, 오버라이딩 ( 2021년 2회 )

 public class ovr1 {

	public static void main(String[] args) {

		ovr1 a1 = new ovr1();

		ovr2 a2 = new ovr2();

		System.out.println(a1.sun(3,2) + a2.sun(3,2));

	}

	int sun(int x, int y) {

		return x + y;

	}

}

class ovr2 extends ovr1 {

	int sun(int x, int y) {

		return x - y + super.sun(x, y);

	}

}
더보기

답안 : 11 

 

[C언어]

1. 버블 정렬 오름차순 문제 ( 2020년 1회 )

#include <stdio.h>
#define SIZE 5

int main(void) {
	int arr[SIZE] = {75, 100, 95, 50, 85};
    int i, j, temp;
    for(i = 1; i < SIZE; i++) {
    		for(j=0; j < SIZE-i; j++) {
            		if(arr[j] > arr[j+1]) {
                    		temp = arr[j];
                            	arr[j] arr[j+1];
                            	arr[j+1] = temp;
                    }
            }
    }
    for(i=0; i<SIZE; i++) {
    	printf("%d", arr[i]);
    }
}
더보기

답안 : 50 75 85 95 100

 

2. switch ~ case 결과 입력 ( 2020년 1회 )

public class Test {

	public static void main(String[] args) {
    
		int i=3, k=1;
		
        switch(i){
			case 0: 
			case 1: 
			case 2: 
			case 3: k=0;
			case 4: k+=3;
			case 5: k-=10;
			default: k--;
		}
        
		System.out.println(k);
	}
    
}
더보기

답안 : -8

해설

break문 생략 : 일치하는 실행문부터 switch문이 종료될 때 까지 모든 문장 실행

 

3. 다음의 출력 결과를 쓰시오. ( 2020년 3회 )

#include <stdio.h>

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

답안 : 0

 

4. 다음의 출력 결과를 쓰시오. ( 2020년 3회 )

int r1( ){
    return 4;
}

int r10( ){
    return (30+r1( ));
}

int r100( ){
    return (200+r10( ));
}

int main( ){
    printf("%d ", r100( ));
    return 0;
}
더보기

답안 : 234

 

5. 실행결과를 쓰시오. ( 2020년 4, 5회 )

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

 

6. C언어

int main() {

    struct insa {

        char name[10];

        int age;

    } a[] = {"Kim", 28, "Lee", 38, "Park", 41, "Choi", 30};

    struct insa *p;

    p = a;

    p++;

    printf("%s ", p->name);

    printf("%d ", p->age);

}
더보기

답안 :  

Lee

38

 

7. C언어 ( 2021년 2회 )

int mp(int base, int exp);

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 = res * base;

	}

	return res;

}
더보기

답안 : 1024

 

8. C언어 ( 2021년 2회 )

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 

 

[Python]

1. 파이썬 문제 ( 2020년 2회 )

"a={'일본', '중국', '한국'}
a.add('베트남')
a.add('중국')
a.remove('일본')
a.update({'홍콩','한국','태국'})
print(a)"
더보기

답안 : {'중국', '한국', '베트남', '홍콩', '태국'} {'한국', '중국', '베트남', '홍콩', '태국'} , {'베트남', '중국', '한국', '홍콩', '태국'}, ... 등 (순서 상관없이 집합 요소만 포함) 

 

* 애매한 문제

 

2. 다음의 출력 결과를 쓰시오. ( 2020년 4,5회 )

lol = [[1,2,3], [4,5], [6,7,8,9]]

print(lol[0])

print(lol[2][1])

for sub in lol;

for item in sub;

print(item, end="")

print()
더보기

문제 유형 : 프로그래밍 ( 파이썬 )

답안

[1,2,3]

7

1 2 3

4 5

6 7 8 9

 

3. 파이썬 문제 ( 부분점수 없음 ) ( 2021년 1회 )

class arr:
    a = ["Seoul","Kyeonggi","Inchon","Daejoen","Deagu","Pusan"]
str01=' '
for i in arr.a:
    str01 = str01 + i[0]
print(str01)
더보기

답안 : SKIDDP

 

4. 파이썬 문제 ( 2021년 2회 )

a = 100
result = 0
for i in range(1,3):
        result = a >> i
        result = result +1
print(result)
더보기

답안 : 26

 

[SQL]

1. 학생(Student) 테이블에 컴퓨터과 학생 50명, 인터넷과 학생 100명, 사무자동화과 학생 50명에 관한 데이터가 있다고 가정할 때 다음에 주어지는 SQL문을 각각 실행시키면 결과 튜플 수는 각각 몇 개인가?(단, DEPT는 학과 컬럼명임) ( 2020년 1회 )

SELECT DEPT FROM STUDENT;
SELECT DISTINCT DEPT FROM STUDENT;
SELECT COUNT(DISTINCT DEPT) FROM STUDENT WHERE DEPT = '컴퓨터과'
더보기

답안 : 200, 3, 1

 

2. SQL SELECT 작성 ( in 사용 )  ( 2020년 2회 )

- 학번, 이름을 학생 테이블에서 3, 4학년인 학생을 검색

- IN 함수 사용

더보기

답안 : SELECT 학번, 이름 FROM 학생 WHERE 학년 IN(3,4);

 

3. SQL 인덱스 작성 - student 테이블의 name 속성에 idx_name 이름의 인덱스 생성 ( 2020년 2회 )

더보기

답안 : CREATE INDEX idx_name ON student(name);

 

4. 다음 학생 테이블에서 이름이 민수인 튜플을 삭제하도록 결과를 작성하시오. ( 2020년 3회 )

- 대,소문자는 구분하지 않습니다.

- 세미콜론(;)은 생략가능합니다.

- 속성명에 작은 따옴표(' ')를 사용합니다.

더보기

답안 : DELETE FROM 학생 WHERE 이름 = '민수'

 

5. 다음 성적 테이블에서 평균이 90이상인 과목 이름과 최소점수, 최대점수의 결과를 작성하시오. ( 2020년 3회 )

[성적]

- 3가지의 과목이름이 주어짐 ( 행도 여러 개 )

- .으로 표시된 것은 빈 값이 아닌 정확한 값이 기억이 나지 않아 .으로 표시한 것

과목코드 과목이름 학점 점수
. 컴퓨터과학 . .
. 운영체제 . .
. . . .

[결과] - 숫자는 정확하지 않음

과목이름 최소점수 최대점수
컴퓨터과학 83 95

- 대,소문자는 구분하지 않습니다.

- WHERE 구문은 사용하지 않습니다.

- GROUP BY, HAVING 구문은 필수로 사용해야합니다.

- 세미콜론(;)은 생략가능합니다.

- 별칭 ( AS ) 을 사용해야합니다.

- 속성명에 작은 따옴표(' ')를 사용합니다.

더보기

답안

SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수 FROM 성적 GROUP BY 과목이름 HAVING AVG(점수) >= 90

 

6. 다음 속성을 주소라고 하고 크기는 20으로 제한한다. 학생 테이블에 컬럼을 추가하는 결과를 작성하시오. ( 2020년 3회 )

(  ①  ) TABLE 학생 (  ②  ) 주소 VARCHAR(20);

더보기

답안 : ① ALTER  ② ADD

 

7. SQL: where 쓰지말 것, group by 쓸 것, 집계함수 사용할 것, AS(alias)사용할 것, 세미콜론(;) 생략 가능, 인용 필요시 ' 사용

( 2020년 4, 5회 )

- 결과 테이블:
학과 학과별튜플수
전기      1
컴퓨터   2
전자     2

더보기

답안

SELECT 학과, COUNT(학과) AS '학과별튜플수' FROM 학생 GROUP BY 학과

또는

- SELECT 학과, COUNT(*) AS '학과별튜플수' FROM 학생 GROUP BY 학과;

 

8. SQL 문제 ( 부분점수 없음 ) ( 2021년 1회 )

SELECT COUNT(*) FROM [TABLE] WHERE EMPNO > 100 AND SAL >= 3000 OR ENPNO = 200[TABLE]

EMPNO SAL
100 1000
200 3000
300 1500
더보기

답안 : 1 [테이블 그린 상태로] OR 1

 

9. [변형문제] 다음 테이블의 카디널리티와 차수의 갯수를 구하시오. (단, 학번, 학년은 숫자형, 이름과 학과는 문자형이다)

( 2021년 1회 )

student테이블

학번 이름 학과 학년
20191001 강은미 컴퓨터학과 2
20192002 김정미 정보통신학과 2
20183003 홍길동 정보보호학과 3
20201002 김철수 정보보호학과 2
20211003 김영희 정보통신학과 3

- 카디널리티 : (  ①  ) 

- 차수 : (  ②  )

더보기

답안 : ① 5 ② 4

해설

- 카디널리티(cardinality) : 하나의 릴레이션에서 투플(행)의 전체 개수를 릴레이션의 카디널리티라고 한다.

- 차수(degree) : 하나의 릴레이션에 속성(열)의 전체 개수를 릴레이션의 차수라고 한다.

 

10. SQL 문제 ( 부분점수 있음 ) ( 2021년 2회 )

- 튜플을 수정하는 문제

(     1   ) 테이블명 (      2     ) 컬럼=값 WHERE 점수 >= 90;

더보기

답안

(1) UPDATE

(2) SET

 

11. SQL 문제 ( 부분점수 있음 ) ( 2021년 2회 )

- JOIN 문제

SELECT ... FROM 학생정보 a JOIN 학과정보 b (    1    ) a.학과 = b.(    2     )

더보기

답안

(1) ON

(2) 학과

 

12. SQL 문제 ( 부분점수 있음 ) ( 2021년 2회 )

- 이씨 내림차순 문제

SELECT ... FROM ... WHERE 이름 LIKE (    1    ) ORDER  BY (    2     )

더보기

답안

(1) 이%

(2) DESC

 

반응형

댓글