정보처리기사 실기 준비(programming part)

J·2022년 7월 7일
0

7월 24일에 정처기 실기 시험을 접수해놨다.(공부한지 이틀됨..)

발등에 불 떨어져서 이제 공부를 시작해볼까 한다..

20년도부터 실기 유형이 변화했는데 가장 중요한건 기출을 분석하여 출제 성향을 파악하는 것이라 생각했다.

프로그래밍 언어 활용 출제빈도가 매 회 증가하고 있으며, 저번 22-1회차에서는 무려 7문제 가 출제되었다 하여, 따라서 해당 부분만 보기 쉽게 따로 정리하였다.
정처기가 개편된 20년을 기준으로 지금까지 나온 문제를 정리하였다.


<출처 : q.fran.kr>


다음은 C언어로 작성된 코드이다. 코드의 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)

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

다음은 C언어로 작성된 코드이다. 코드의 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)

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

다음은 Java언어로 작성된 코드이다. 코드의 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)

public class Test {
    static int[ ] arr( ) {
      int a[ ] = new int[4];
      int b = a.length;
      for(int i = 0; i < b; i++)
         a[i] = i;
      return a;
   }

   
   public static void main(String[ ] args) {
      int a[ ] = arr( );
      for(int i = 0; i < a.length; i++)
         System.out.print(a[i] + " ");
   }
 }

다음 파이썬(Python) 스크립트의 실행 결과를 적으시오.

>>> asia={"한국", "중국", "일본"}
>>> asia.add("베트남")
>>> asia.add("중국")
>>> asia.remove("일본")
>>> asia.update(["홍콩", "한국", "태국"])
>>> print(asia)

다음에 제시된 자바(Java) 프로그램이 [처리 결과]와 같은 결과를 출력할 때, 자바 프로그램의 ( ? )에 들어갈 표현을 대소문자를 구별하여 쓰시오.

[처리결과]
Child

class Parent {
    void show() {
        System.out.println("Parent");
    }
}
class Child extends Parent {
    void show() {
        System.out.println("Child");
    }
}
public class Exam {
    public static void main(String[] args) {
        Parent pa = (  ?  ) Child();
        pa.show();
    }
}

다음 자바(Java) 프로그램을 실행한 출력 결과를 쓰시오.

class A {
    int a;
    public A(int n) {
        a = b;
    }
    public void println("a="+a);
}
class B extends A {
    public B(int n) {
        super(n);
        super.print();
    }
}
public class Exam {
    public static void main(String[] args) {
        B obj = new B(10);
    }
}

다음의 출력 결과를 쓰시오.

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

다음은 C언어 소스 코드이다. 출력 결과를 쓰시오.

#include <studio.h>
int r1(){
	return 4;
}
int r10(){
	return (30+r1());
}
int r100(){
	return (200+r10());
}
int main(){
	printf("%dn", r100());
    return 0;
}

다음은 자바(Java) 코드이다. 출력 결과를 쓰시오.

abstract class vehicle{
    private String name;
    abstract public String getName(String val);
    public String getName(){
    	return "vehicle name:" + name;
    }
	public void setName(String val){
    	name = val;
    }
}

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

public class good {
	public Static void main(String[] args){
    Vehicle obj = new Car("Spark");
    System.out.print(obj.getName());
    }
}

다음은 자바(Java) 코드이다. 출력 결과를 쓰시오.

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

다음은 n이 10일 때, 10을 2진수로 변환하는 자바 소스 코드이다. A, B 괄호 안에 알맞은 값을 적으시오.

class good {
    public static void main (String[] args) {
    	int[]a = new int[8];
        int i=0; int n=10;
        while (   괄호 A    ) {
          a[i++] = (    괄호 B    );
          n /= 2;
       }
      for(i=7; i>=0; i--){
          System.out.print(a[i]);
      }
   }
}

다음은 자바 소스 코드이다. 출력 결과를 보고 괄호 A, B에 알맞은 값을 적으시오.

public class good {
    public static void main(String[] args) {
    int[][]a = new int[( 괄호A )][( 괄호B )];
    for(int i = 0; i < 3; i++){
        for(int j=0; j < 5; j++){
        a[i][j] = j*3+(i+1);
        System.out.print(a[i][j]+"");
      }
      System.out.println();
      }
   }
} 


[출력 결과] 
1 4 7 10 13
2 5 8 11 14
3 6 9 12 15

다음은 파이썬 소스 코드이다. 출력 결과를 쓰시오.

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()

다음은 C언어 소스 코드이다. 출력 값을 쓰시오.

#include <stdio.h>
void main(){
  char *p = "KOREA"
  printf("%sn" , p);
  printf("%sn" , p+3);
  printf("%cn" , *p);
  printf("%cn" , *(p+3));
  printf("%cn" , p+2);
}

다음은 자바(Java) 소스 코드이다. 출력 결과를 쓰시오.

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

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

class Good {
  public static void main (String[] args){
    parent obj = new Child();
    System.out.print(obj.compute(4));
  }
}

다음은 파이썬 코드이다. 출력 결과를 쓰시오.

class good :
	li = ["seoul", "kyeonggi","inchon","daejeon","daegu","pusan"]

g = good()
str01 = ''
for i in g.li:
	str01 = str01 + i[0]
    
print(str01)

다음 Java 프로그램 결과를 쓰시오.

public class QfranTest{
     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]);
     }
}

다음은 C언어 프로그램이다. 실행 결과를 쓰시오.

#include 

struct good {
    char name[10];
    int age;
 };
 
 void main(){
 	struct good s[] = {"Kim",28,"Lee",38,"Seo",50,"Park",35};
    
    struct good *p;
    p = s;
    p++;
    printf("%sn", p-> name);
    printf("%sn", p-> age);
}

다음은 Java 프로그램이다. 실행 결과를 쓰시오.

public class good {
  public static void main(String[] args){
    int i, j;
    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("+");
	}
   }
  }
 }

다음 파이썬 코드의 결과를 적으시오.

 a = 100
 result = 0
 for i in range(1,3);
    result = a >> i
    result = result + 1
 pirnt(result)

다음은 C언어에 관한 소스코드이다. 실행 결과값을 작성하시오.

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

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

public class Test {
   public static void main(String[] args){
      system.out.print(Test.check(1));
   }
   
   (  괄호  )  String check (int num) {
      return (num >= 0) ? "positive" : "negative";
   }
}


[출력결과]
positive

다음은 C언어 코드의 실행 결과를 적으시오.

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

다음 JAVA 코드의 실행 결과를 적으시오.

public class over {
	public static void main(String[] args){
    	ovr a1 = new ovr1();
        ovr 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);
    }
}

다음 Java 코드에 대한 알맞는 출력값을 쓰시오.

class Connection {
    private static Connection _inst = null;
    private int count = 0;
      static public Connection get() {
        if(_inst == null) {
        _inst = new Connection();
        return _inst; 
        }
      return _inst;
      }
    public void count() { count ++; }
    public int getCount() { return count; }
  }
   
  public class testcon {
    public static void main(String[] args) {
      Connection conn1 = Connection.get();
      conn1.count();
      Connection conn2 = Connection.get();
      conn2.count();
      Connection conn3 = Connection.get();
      conn3.count();
      
      System.out.print(conn1.getCount());
    }
  }

다음 Java 코드에 대한 알맞는 출력값을 쓰시오.

  public class testco {
    public static void main(String[] args) {
     int a = 3, b = 4, c = 3, d = 5;
     if((a == 2 | a == c) & !(c > d) & (1 == b ^ c != d)) {
      a = b + c;
       if(7 == b ^ c != a) {
        System.out.println(a);
       } else {
       System.out.println(b);
       }
     } else {
       a = c + d;
       if(7 == c ^ d != a) {
       System.out.println(a);
       } else {
       System.out.println(d);
       }
     }
    }
   }

다음 C언어 코드에 대한 알맞는 출력값을 쓰시오.

   #include 
   int main(){
     int *arr[3];
     int a = 12, b = 24, c = 36;
     arr[0] = &a;
     arr[1] = &b;
     arr[2] = &c;
    
     printf("%dn", *arr[1] + **arr + 1);
   }

다음 파이썬 코드의 알맞는 출력값을 쓰시오.

a,b = 100, 200 
print(a==b)

다음 C언어 코드에 대한 알맞는 출력값을 쓰시오.

#include 
 
struct jsu {
  char nae[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("%dn", (p+1)->hab + (p+1)->hhab);
}

다음 자바 문법에 알맞는 출력 결과를 작성하시오.

class A {
    int a;
    int b;
  }
    
    public class Main {
    
    static void func1(A m){
     m.a *= 10;
    }
    
    static void func2(A m){
      m.a += m.b;
    }
    
    public static void main(String args[]){
    
    A m = new A();
    
    m.a = 100;
    func1(m);
    m.b = m.a;
    func2(m);
    
    System.out.printf("%d", m.a);
    
    }
  }

다음은 파이썬 코드에서 출력되는 a와 b의 값을 작성하시오.
```python
  def exam(num1, num2=2):
  print('a=', num1, 'b=', num2)
exam(20)

다음 Java 코드 중에서 밑줄에 들어갈 알맞는 코드를 작성하시오.

class Car implements Runnable{
    int a;
    
    public void run(){
       system.out.println("message")
    }
  }
    
  public class Main{
    public static void main(String args[]){
      Thread t1 = new Thread(new ___());
      t1.start();
    }
  }

다음 소스코드에서 입력값이 5가 들어왔을때 출력되는 값을 작성하시오.

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

다음 중, 설명에 대한 괄호 ( ) 안에 들어갈 알맞는 답을 작성하시오.

    #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);
         
        }
        Colored by Color Scripter

다음 소스코드가 실행할 때의 출력값을 작성하시오.

        #include <stdio.h> 
            int isPrime(int number) { 
              int i; 
              for (i=2; i<number; i++) { 
                if (number % i == 0) return 0; 
              } 
              return 1; 
            } 
             
            int main(void) { 
              int number = 13195, max_div=0, i; 
              for (i=2; i<number; i++) 
              if (isPrime(i) == 1 && number % i == 0) max_div = i; 
              printf("%d", max_div); 
              return 0; 
            }
profile
생각 끄적이는 공간

0개의 댓글