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

시나공 정보처리기사 실기 10장 프로그래밍 언어 활용 문제 풀이

by 리드민 2021. 10. 10.
반응형

문제 1. 헝가리안 표기법(Hungarian Notation)에 대해 간략히 서술하시오.

답 : 변수명 작성시 변수의 자료형을 알 수 있도록 자료형을 의미하는 문자를 포함하여 작성하는 방법

문제 2. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

#include <stdio.h>
main()
{
        int i = 10, j =10, k =30;
        i /= j;
        j -= i;
        k %= j;
        printf("%d, %d, %d\n", i, j, k);
}

답 : 

1, 9, 3

문제 3. 다음은 2개의 정수를 입력받아 합을 출력하는 Java 프로그램이다. 괄호에 공통으로 들어갈 가장 적합할 코드를 쓰시오.

import java.util.(     );

public class Test {
      public static void main(String args[]) {
            (     ) scan = new (     ) (system.in);
            int a = scan.nextInt();
            int b = scan.nextInt();
            System.out.printf("%d", a + b);
            scan.close();
      }
}

답 : Scanner

 

문제 4. 다음 C언어로 구현된 프로그램을 분석하여 그 결과를 쓰시오.

#include <stdio.h>
main()
{
        int result, a = 100, b = 200, c =300;
        result = a < b ? b++ : --c;
        printf("%d, %d, %d\n", result, b, c);
}

답 : 200, 201, 300

 

문제 5. 다음 C언어의 <코드>와 <입력>을 보고 프로그램을 분석하여 그 실행 결과를 쓰시오.

<코드>

#include <stdio.h>
main( ) {
       int i, j;
       scanf("%o#%x", &i, &j);
       printf("%d %d", i, j);
}

<입력>

15#22

답 : 13 34

 

문제 6. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

#include <stdio.h>
main()
{
       int j = 024, k = 24, L = 0x24, hap;
       hap = j + k + L;
       printf("%d, %d, %d, %d\n", j, k, L, hap);
}

답 : 

20, 24, 36, 80

 

문제 7. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

#include <stdio.h>
main()
{
        int i = 5, j = 4, k = 1, L, m;
        L = i > 5 || j != 0;
        m = j <= 4 && k < 1;
        printf("%d, %d\n", L, m);
}

답 : 1, 0

 

문제 8. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

public class Test {
       public static void main(String args[]) {
              int a = 12, b = 5, sum = 2;
              b *= a /= 4;
              sum += ++a * b-- / 4;
              System.out.printf("%d", sum);
       }
}

답 : 

17

문제 9. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

public class Test {
      public static void main(String args[]) {
             int a = 5, b = 9, c;
             c = b % 5 < 5 ? 1 : 0;
             c = c | << 3;
             c = a < 5 || c >= 10 ? c - a : c + a;
             System.out.printf("%d", c);
      }
}

답 : 14

 

문제 10. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

#include <stdio.h>
main( )
{
        int a = 5, b = 10, c = 15, d = 30, result;
        result = a * 3 + b > d || c - b / a <= d && 1;
        printf("%d\n", result);
}

답 : 1

 

SECTION 150 제어문

문제 1. 다음은 변수 n에 저장된 10진수를 2진수로 변환하여 출력하는 Java 프로그램이다. 프로그램을 분석하여 괄호 (1, 2)에 들어갈 알맞은 답을 쓰시오.

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

(1) : n > 0

(2) : n % 2

 

문제 2. 다음 Java로 구현된 프로그램을 분석하여 괄호((1) ~ (2))에 들어갈 알맞은 답을 쓰시오.

public class Test {
      public static void main(String[ ] args) {
            int ary[ ][ ] = new int [(   (1)   )][(   (2)   )];
            int n = 1;
            for(int i = 0; i < 3; i++) {
                  for(int j = 0; j < 5; j++) {
                      ary[i][j] = j * 3 + i + 1;
                      System.out.print(ary[i][j] + " ");
                  }
                  System.out.println();
             }
       }

답 : 

1. 3

2. 5

 

문제 3. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

public class Test {
     public static void main(String[ ] args) {
          int i = 0, c = 0;
          while (i < 10) {
                i++;
                c *= i;
          }
          System.out.println(c);
     }
}

답 : 0

 

문제 4. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

public class Test{
      public static void main(String[ ] args) {
            int a = 0, sum = 0;
            while ( a < 10) {
                 a++;
                 if (a % 2 == 1)
                     continue;
                 sum += a;
            }
            System.out.println(sum);
      }
}

답 : 30

 

문제 5. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

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

답 : -8

 

문제 6. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

#include <stdio.h>
main( ) {
       int a = 3, b = 10;
       if (b > 5)
             printf("%x\n", a + b);
       else
             printf("%x\n", b - a);
}

답 : d

 

문제 7. 다음 C언어로 구현된 프로그램을 실행했을 때 반복문 수행 후 마지막으로 출력되는 결과를 쓰시오.

#include <stdio.h>
main( ) {
       int n = 0, t = 0;
       do {
            t += n;
            printf("%d, %d\n", n++, t);
       } while (n < 10);

답 : 9 45

 

문제 8. 다음 C언어의 <코드>와 <출력>을 보고 괄호((1), (2))에 들어갈 적합한 코드를 쓰시오.

#include <stdio.h>

int main(void) {
     int i, j, n;
     n = (   (1)   );
     for (i = 1; i <= (   (2)   ); i++) {
          for (j = 1; j <= i; j++)
               printf("%3d", j);
          printf("\n");
     }
}

<출력>

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7

1 : 7

2 : n

 

문제 9. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

#include <stdio.h>
main()
{
       int i = 10, hap = 0;
       while (i > 1)
       {
             i--;
             if (i % 3 == 1)
                 hap += i;
       }
       printf("%d\n", hap);
}

답 : 12

문제 10. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

public class Problem {
     public static void main(String[] args){
          int i, hap = 0;
          for(i = 1; i <= 10; ++i)
              hap += i;
          System.out.printf("%d, %d\n", i, hap);
     }
}

답 : 11, 55

 

문제 11. 다음은 5개의 정수를 입력받아 그 중 홀수의 개수를 구하여 출력하는 알고리즘을 C언어로 구현한 코드이다. 프로그램을 분석하여 괄호에 들어갈 가장 적합한 코드를 쓰시오.

#include <stdio.h>

main() {
       int i, a[5], cnt = 0;

       for (i = 0; i < 5; i++)
            scanf("%d", &a[i]);

       for(i = 0; i < 5; i++)
            if (a[i] % 2 (     ) 0)
                 cnt = cnt + 1;
       }

       printf("홀수의 개수 " %d개", cnt);
       scan.close();
}

답 : != 또는 >

 

문제 12. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

public class Problem {
      public static void main(String[ ] args) {
            int [ ] [ ] a = { {11, 12, 13, 14}, {21, 22, 23, 24},
                             }
            int hap = 0;
            for (int i[ ] : a)
            {
                  for (int j : i)
                        hap = hap + j;
            }
            System.out.printf("%d", hap);
       }
}

답 : 140

 

문제 13. 다음 Java로 구현된 프로그램을 분석하여 a, b에 각각 8과 3을 입력했을 때 그 실행 결과를 쓰시오.

import java.util.Scanner;
public class Test {
      public static void main(String args[ ]) {
            Scanner scan = new Scanner(System.in);
            int a = scan.nextInt();
            int b = scan.nextInt();
            char c = 'G';
            
            if (a > 10 && b < 10) {
                   if (a - b < 5 || a > 15)
                        c = 'X';
            }
            else if (a > 5 && b < 5) {
                 if (a - b < 3 || b > 0)
                        c = 'Y';
            }
            else
                 c = 'Z';
            System.out.printf("%c", c);
            scan.close();
     }
}

답 : Y

문제 14. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

public class Problem {
     public static void main(String[ ] args) {
          String str = "Programming";
          int n = str.lenth();
          char[ ] st = new char [n];
          n--;
          for (int k = n; k >= 0; k--) {
                st[n-k] = str.charAt(k);
          }
          for (char k : st) {
               System.out.printf("%c", k);
          }
     }
}

답 : 

 

SECTION 151 포인터

문제 1. 다음 C 언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

#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

N

문제 2. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

#include <stdio.h>
main()
{
       char a[] = { 'A', 'B', 'C', 'D', 'E', 'F'};
       char *p;
       p = &a[2];
       printf("%c, %c\n", *p, *(p-2));
}

답 : 

C, A

문제 3. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

#include <stdio.h>
main() {
       int a[5], b = 1, sum = 0;
       for (int i = 0; i < 5; i++) {
             a[i] = b;
             b *= 2;
       }
       for (int i = 0; i < 5; i += 2)
             sum += *(a + i);
       printf("%d", sum);
}

답 : 21

 

문제 4. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

#include <stdio.h>
#include <string.h>
main( )
{
       int k, n;
       char st[ ] = "I am Tom!";
       char temp;
       n = strlen(st);
       n--;
       for (k = 0; k < n; k++)
       {
             temp = *(st + k);
             *(st + k) = *(st + n);
             *(st + n) = temp;
             n--;
       }
       printf("%s\n", st);
}

답 : 

!moT ma I

 

SECTION 152 사용자 정의 함수

문제 1. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

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

답 : 50, 75, 85, 95, 100

 

문제 2. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

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

답 : 234

 

문제 3. 다음은 12와 6을 입력받아 <출력>과 같은 결과를 나타내는 프로그램을 C언어로 구현한 것이다. 프로그램을 분석하여 괄호((1)~(4))에 들어갈 가장 적합한 코드를 쓰시오.

<코드>

#include <stdio.h>

int sub(int i, int j) {
    return i - j;
}

int add(int i, int j){
    return i + j;
}

main() {
    int i, j, result;
    int (*pf)(int, int);
    scanf("%d, %d", &i, &j);

    pf = (   (1)   );
    (   (2)   ) = pf(i, j);
    printf("%d, ", result);

    (   (3)   ) = sub;
    result = (   (4)   );
    printf("%d", result);

출력

18, 6

1 : add

2 : result

3 : pf

4 : pf(i, j)

 

문제 4. 다음은 피보나치 수를 구하는 알고리즘을 C언어 <코드>로 구현한 프로그램이다. 제시된 <피보나치 수>의 정의를 참고하여 <코드>의 미완성 로직을 면밀히 분석한 후 괄호((1), (2))에 들어갈 가장 적합한 코드를 쓰시오.

<피보나치 수>의 정의
Fibonacci(n)

- if n=0, 0

- if n=1, 1

- others, Fibonacci(n-2) + Fibonacci(n-1)

<코드>

#include <stdio.h>
int Fibonacci(int n) {
     if(n==0)
         return 0;
     else if(n==1)
         return (   (1)   );
     else
         return Fibonacci (   (2)   ) + Fibonacci(n-1);
}

int main(void) {
     int i = 0;
     for(i = 0; i  < 10; i++)
         printf("%d ", Fibonacci(i));
     return 0;
}

답 : 1, n-2

문제 5. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.

#include <stdio.h>
func(int *p) {
     printf("%d\n", *p);
     printf("%d\n", p[2]);
}

main( ) {
     int a[7] = { 1, 2, 3, 4, 5 };
     func(a);
     func(a + 2);
}

답 :

1

3

3

5

반응형