프로그래밍 기출 문제 정리 (2017년~2022년)
- 정보처리기사 실기 기출 문제 중에서 프로그래밍(C, Java, Python)과 관련된 문제를 정리해 본다.
- 이 문제들은 복원을 한 것으로, 실제 출제된 문제와 다를 수 있다.
2017년 1회
문제 1
Q. 다음 Java 언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
public class Test001 {
public static void main(String[] args) {
int[] a = {3, 4, 10, 2, 5};
int temp;
for (int i = 0; i <= 3; i++) {
for (int j = i + 1; j <= 4; j++) {
if (a[i] < a[j]) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
for (int i = 0; i < 5; i++) {
System.out.println(a[i]);
}
}
}
10
5
4
3
2
문제 2
Q. 다음 C 언어로 구현된 프로그램에서 괄호 (1)에 해당하는 가장 적합한 변수(Variable)나 조건식을 C 언어 코드 형식으로 쓰시오.
#include <stdio.h>
main() {
int num[10];
int min = 9999;
int i;
for (i = 0; i < 10; i++) {
scanf("%d", &num[i]);
}
for (i = 0; i < 10; i++) {
if (min > ( ( 1 ) )) {
min = num[i];
}
}
print("가장 작은 값은 %d이다.", min);
}
num[i]
2017년 2회
문제 1
Q. 다음 C 언어로 구현된 100을 넘지 않는 소수와 개수를 구하는 프로그램에서 괄호 (1)에 해당하는 가장 적합한 변수(Variable)나 조건식을 C 언어 코드 형식으로 쓰시오.
#include <stdio.h>
int isprime(int number) {
int i;
for (i = 2; i < number; i++) {
if ( ( 1 ) )
return 0;
}
return 1;
}
int main() {
int number = 100, cnt = 0, i;
for (i = 2; i < number; i++) {
cnt = cnt + isprime(i);
}
printf("%d를 넘지 않는 소수는 %d개입니다.\n", number, cnt);
return 0;
}
number % i == 0
문제 2
Q. 다음 Java 언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
public class Test001 {
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
2017년 3회
문제 1
Q. 다음 C 언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
#include <stdio.h>
int res10() {
return 4;
}
int res30() {
return 30 + res10();
}
int res200() {
return 200 + res30();
}
int main() {
int result;
result = res200();
printf("%d\n", result);
}
문제 2
Q. 다음은 배열에 저장된 5개의 자료 중 가장 큰 값과 가장 작은 값을 찾아 출력하는 프로그램을 Java 언어로 구현한 것이다. 프로그램을 분석하여 괄호에 해당하는 답안을 <답란>에 쓰시오.
public class Test02 {
public static void main(String[] args) {
int a[] = {10, 30, 50, 70, 90};
int i, max, min;
max = a[0];
min = a[0];
for (i = 0; i < 5; i++) {
if ( ( ) > max) {
max = a[i];
}
if ( ( ) < min) {
min = a[i];
}
}
System.out.printf("%d\n", max);
System.out.printf("%d\n", min);
}
}
a[i]
문제 3
Q. 다음 C 언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
#include <stdio.h>
int power(int data, int exp) {
int i, result = 1;
for (i = 0; i < exp; i++) {
result = result * data;
}
return result;
}
int main() {
printf("%d\n", power(2, 10));
return 0;
}
1024
2018년 1회
문제 1
Q. 다음 C 언어의 <출력>과 <코드>를 보고 괄호 (1), (2), (3), (4)에 적용될 수 있는 가장 적합한 답을 쓰시오.
<출력>
statck's status
value = 40
value = 30
value = 20
<코드>
#include <stdio.h>
#define MAX_STACK_SIZE 10
int stack[MAX_STACK_SIZE];
int top = -1;
void push(int item)
{
if (top >= ( 1 ))
{
printf("stack is full\n");
}
stack[++top] = ( 2 );
}
int pop()
{
if (top == ( 3 ))
{
printf("stack is empty\n");
}
return stack[( 4 )];
}
int isempty()
{
if (top == ( 3 ))
{
return 1;
}
else
{
return 0;
}
}
int isfull()
{
if (top >= ( 1 ))
{
return 1;
}
else
{
return 0;
}
}
int main()
{
int e;
push(20); push(30); push(40);
printf("stack's status\n");
while (!isempty())
{
e = pop();
printf("value = %d\n", e);
}
}
① MAX_STACK_SIZE - 1 또는 9
② item
③ -1
④ top--
문제 2
Q. 다음 Java 언어의 <처리 조건>과 <코드>를 보고 괄호 (1), (2)에 적용될 수 있는 가장 적합한 답을 쓰시오.
<처리 조건>
- 배열에는 95, 75, 85, 100, 50이 차례대로 저장된다.
- 배열에 저장된 값을 오름차순으로 정렬하여 출력한다.
<코드>
public class Test1 {
public static void main(String[] args) {
int E[] = { ( 2 ) };
int i = 0;
int Temp = 0;
do
{
int j = i;
do
{
int j = i;
do{
if (E(i) > ( 2 ))
{
Temp = E[i];
E[i] = E[j];
E[j] = Temp;
}
j++;
} while (j < 5);
i++;
} while (i < 4);
}
for (int a = 0; a < 5; a++)
{
System.out.printf(E[a] + "\t");
}
System.out.println();
}
}
① 95, 75, 85, 100, 50
② E[j]
2018년 2회
문제 1
Q. 다음은 5개의 정수를 입력 받아 그 중 홀수의 개수를 구하여 출력하는 알고리즘을 C 언어로 구현한 <코드>이다. 프로그램을 분석하여 괄호 (1)에 가장 적합한 답을 쓰시오.
#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 ( 1 ) 0) {
cnt = cnt + 1;
}
}
printf("홀수의 개수 : %d개", cnt);
}
!= 또는 >
문제 2
Q. 다음 Java 언어로 <출력>과 <코드>를 보고 괄호 (1), (2)에 가장 적합한 답을 쓰시오.
<출력>
0 1 2 3 4
1 2 3 4 5
2 3 4 5 6
<코드>
public class Problem {
public static void main(String[] args) {
int[][] a = new int[( 1 )][( 2 )];
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 5; j++) {
a[i][j] = i + j;
System.out.println("%d ", a[i][j]);
}
System.out.println();
}
}
}
① 3
② 5
문제 3
Q. 다음 C 언어로 <출력>과 <코드>를 보고 괄호 (1)에 가장 적합한 답을 쓰시오.
<출력>
1의 약수 : 1
2의 약수 : 1 2
3의 약수 : 1 3
4의 약수 : 1 2 4
5의 약수 : 1 5
<코드>
#include <stdio.h>
main() {
int i, j;
for (i = 1; i <= 5; i++) {
printf("%d의 약수 : ", i);
for (j = 1; j <= 5; j++) {
if ( ( 1 )) {
printf("%d ", j);
}
}
printf("\n");
}
return 0;
}
i % j == 0
2018년 3회
문제 1
Q. 다음은 피보나치 수열의 합계를 구하는 프로그램을 Java 언어로 구현한 것이다. 프로그램을 분석하여 그 실행 결과를 쓰시오.
public class Problem {
public static void main(String[] args) {
int a, b, c, sum;
a = b = 1;
sum = a + b;
for (int i = 3; i <= 5; i++) {
c = a + b;
sum += c;
a = b;
b = c;
}
System.out.println(sum);
}
}
문제 2
Q. 다음은 6면 주사위를 100번 굴려서 나온 각 면의 수를 배열에 저장하여 출력하는 알고리즘을 C 언어로 구현한 <코드>이다. 프로그램을 분석하여 괄호 (1), (2)에 가장 적합한 답을 쓰시오.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main() {
int hist[6] = { 0, };
int n, i = 0;
srand(time(NULL));
do {
i++;
n = rand() % 6 + 1;
hist[( 1 )] += 1;
} while (i < 100);
for (i = 0; i < 6; i++) {
printf("[%d] = %d\n", i + 1, ( 2 ));
}
}
① n - 1
② hist[i]
문제 3
Q. 다음은 연결 리스트를 활용하여 스택 구조를 C 언어로 구현한 것이다. <출력>과 <코드>를 보고 괄호 (1), (2)에 가장 적합한 답을 쓰시오.
<출력>
30
20
10
<코드>
#include <stdio.h>
#include <stdlib.h>
struct NODE {
int data;
struct NODE *Next;
};
struct NODE *head;
void Push(int data) {
struct NODE *end = malloc(sizeof(struct NODE));
end->( 1 ) = head->( 1 );
end->data = data;
head->( 1 ) = end;
}
int Pop() {
int a;
struct NODE *del = head->( 1 );
head->( 1 ) = del->( 1 );
a = del->data;
free(del);
return a;
}
main() {
int r;
head = malloc(sizeof(struct NODE));
head->( 1 ) = NULL;
Push(10);
Push(20);
Push(30);
r = ( 2 );
printf("%d\n", r);
r = ( 2 );
printf("%d\n", r);
r = ( 2 );
printf("%d\n", r);
}
① Next
② Pop()
2019년 1회
문제 1
Q. 다음 Java 언어로 구현한 프로그램을 분석하여 그 실행 결과를 쓰시오.
class SuperObject {
public void paint() {
draw();
}
public void draw() {
draw();
System.out.println("Super Object");
}
}
class SubObject extends SuperObject {
public void paint() {
super.draw();
}
public void draw() {
System.out.println("Sub Object");
}
}
public class Test {
public static void main(String[] args) {
SuperObject a = new SubObject;
a.paint();
}
}
Super Object
문제 2
Q. 다음 Java 언어로 구현한 프로그램을 분석하여 그 실행 결과를 쓰시오.
public class Test {
public static void main(String[] args) {
int i, sum = 0;
for (i = 1; i <= 110; i++) {
if (i % 4 == 0) {
sum = sum + 1;
}
}
System.out.println("%d", sum);
}
}
27
문제 3
Q. 다음 C 언어로 구현된 프로그램을 분석하여 괄호 (1), (2)에 가장 적합한 답을 쓰시오.
예) 1234567을 입력받으면 결과는 1+2+3+4+5+6+7 = 28 출력
#include <stdio.h>
main() {
int input, num = 0;
scanf("%d", &input);
while (1) {
if ( ( 1 ) == 0) {
break;
}
sum = sum + input % 10;
input = input / ( 2 );
}
printf("%d\n", sum);
}
① input
② 10
2019년 2회
문제 1
Q. 다음 Java 언어로 구현한 프로그램을 분석하여 그 실행 결과를 쓰시오.
public class Test {
public static void main(String[] args) {
int numAry[] = new int[5];
int result = 0;
for (int i = 0; i < 5; i++) {
numAry[i] = i + 1;
}
for (int i : numAry) {
result += i;
}
System.out.printf("%d", result);
}
}
문제 2
Q. 다음 Java 언어로 구현한 프로그램을 분석하여 그 실행 결과를 쓰시오.
public class Test {
public static int[] arr(int[] a) {
int i, j, sw, temp, n = 5;
if (a[0] == 0 || a[0] < 1) {
return a;
}
for (i = 0; i < n - 1; i++) {
sw = i;
for (j = i + 1; j < n; j++) {
if (a[j] > a[sw]) {
sw = j;
}
}
temp = a[i];
a[i] = a[sw];
a[sw] = temp;
}
return a;
}
public static void main(String[] args) {
int i;
int n[] = {4, 3, 5, 2, 10};
arr(n);
for (i = 0; i < 5; i++) {
System.out.println(n[i]);
}
}
}
10
5
4
3
2
문제 3
Q. 다음 C 언어로 구현된 프로그램을 분석하여 괄호에 가장 적합한 답을 쓰시오.
<실행 결과>
54321000
<코드>
#include <stdio.h>
main()
{
char ch, str[] = "12345000";
int i, j;
for (i = 0; i < 8; i++) {
ch = str[i];
if ( ( ) ) {
break;
}
}
i--;
for (j = 0; j < i; j++) {
ch = str[j];
str[j] = str[i];
str[i] = ch;
i--;
}
printf("%s", str);
}
2020년 1회
문제 1
Q. 다음 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] + " ");
}
}
}
문제 2
Q. 다음 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
문제 3
Q. 다음 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]);
}
}
2020년 2회
문제 1
Q. 다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
asia = {'한국', '중국', '일본'}
asia.add('베트남')
asia.add('중국')
asia.remove('일본')
asia.update({'한국', '홍콩', '태국'})
print(asia)
문제 2
Q. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
class Parent {
void show() { System.out.println("parent"); }
}
class Child extends Parent {
void show() { System.out.println("child"); }
}
public class Test {
public static void main(String[] args) {
Parent pa = ( ) Child();
pa.show();
}
}
new
문제 3
Q. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
class A {
int a;
public A(int a) { this.a = a; }
void display() { System.out.println("a=" + a); }
}
class B extends A {
public B(int a) {
super(a);
super.display();
}
}
public class Test {
public static void main(String[] args) {
B obj = new B(10);
}
}
2020년 3회
문제 1
Q. 다음 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);
}
}
문제 2
Q. 다음 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
Q. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
abstract class Vehicle {
String name;
abstract public String getName(String val);
public String getName() {
return "Vehicle name : " + name;
}
}
class Car extends Vehicle {
private String name;
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.print(obj.getName());
}
}
문제 4
Q. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
public class Test {
public static void main(String[] args) {
int a = 0, num = 0;
while (a < 10) {
a++;
if (a % 2 == 1) {
continue;
}
sum += a;
}
System.out.println(sum);
}
}
2020년 4,5회
문제 1
Q. 다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
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()
7
1 2 3
4 5
6 7 8 9
문제 2
Q. 다음은 변수 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 >= 0; i--) {
System.out.print(a[i]);
}
}
}
① n > 0
② n % 2
문제 3
Q. 다음 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();
}
}
}
② 5
문제 4
Q. 다음 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);
}
EA
K
E
M
문제 5
Q. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
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);
}
}
public class Test {
public static void main(String[] args) {
Parent obj = new Child();
System.out.print(obj.compute(4));
}
}
2021년 1회
문제 1
Q. 다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
class CharClass:
a = ['Seoul', 'Kyeongi', 'Incheon', 'Daejeon', 'Daegu', 'Pusan']
myVar = CharClass()
str01 = ' '
for i in myVar.a;
str01 = str01 + i[0]
print(str01)
문제 2
Q. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
public class Test {
public static void main(String[] args) {
int aa[][] = { {45, 50, 75},
{89} };
System.out.println(aa[0].length);
System.out.println(aa[1].length);
System.out.println(aa[0][0]);
System.out.println(aa[0][1]);
System.out.println(aa[1][0]);
}
}
3
1
45
50
89
문제 3
Q. 다음 C 언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
#include <stdio.h>
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);)
}
38
문제 4
Q. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
public class Test {
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("+");
}
}
}
}
2021년 2회
문제 1
Q. 다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
a = 100
result = 0
for i in range(1, 3):
result = a >> i
result = result + 1
print(result)
문제 2
Q. 다음 C 언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
#include <stdio.h>
main() {
int res = mp(2, 10);
printf("%d", res);
}
int mp(int base, int exp) {
int res = 1;
for (int i = 0; i < exp; i++) {
res *= base;
}
return res;
}
1024
문제 3
Q. 다음 Java로 구현된 프로그램을 분석하여 괄호에 들어갈 알맞은 예약어를 쓰시오.
public class Test {
public static void main(String[] args) {
System.out.print(Test.check(1));
}
( ) String check(int num) {
return (num >= 0) ? "positive" : "negative";
}
}
*static은 클래스 이름으로 메소드에 접근하기 위해 사용하는 예약어이다. 메소드를 사용하기 위해서는 메소드가 포함된 클래스의 객체 변수를 선언한 후 [객체 변수].[메소드] 방식으로 접근해야 하지만, static을 이용하면 객체 변수 없이 [클래스 이름].[메소드]의 방식으로 접근하는 것이 가능해진다.
문제 4
Q. 다음 C 언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
#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);
}
문제 5
Q. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
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) {
retun x + y;
}
}
class ovr2 extends ovr1 {
int sun(int x, int y) {
return x - y + super.sun(x, y);
}
}
11
2021년 3회
문제 1
Q. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
class Connection {
private static Connection _inst = null;
private int count = 0;
public static Connection get() {
if (_inst == null) {
_inst = new Connection();
return _inst;
}
return _inst;
}
public void count() { count++; }
public int getCount() { return count; }
}
public class Test {
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.println(conn1.getCount());
}
}
문제 2
Q. 다음 C 언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
#include <stdio.h>
struct jsu {
char nae[12];
int os, db, hab, hhab;
};
int main() {
struct jsu st[3] = { {"데이터1", 95, 88}, {"데이터2", 84, 91}, {"데이터", 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", (p + 1)->hab + (p + 1)->hhab);
}
501
문제 3
Q. 다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
x, y = 100, 200
print(x==y)
문제 4
Q. 다음 C 언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
#include <stdio.h>
int main() {
int* array[3];
int a = 12, b = 24, c = 36;
array[0] = &a;
array[1] = &b;
array[2] = &c;
printf("%d", *array[1] + **array + 1);
}
문제 5
Q. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
public class Test {
public static void main(String[] args) {
int w = 3, x = 4, y = 3, z = 5;
if ((w == 2 | w == y) & !(y > z) & (1 == x ^ y != z)) {
w = x + y;
if (7 == x ^ y != w) {
System.out.println(w);
}
else {
System.out.println(x);
}
}
else {
w = y + z;
if (7 == y ^ z != w) {
System.out.println(w);
}
else {
System.out.println(z);
}
}
}
}
7
2022년 1회
문제 1
Q. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
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);
}
}
2000
문제 2
Q. 다음 Java로 구현된 프로그램을 분석하여 괄호에 들어갈 알맞은 답을 쓰시오.
class Car implements Runnable {
int a;
public void run() {
try {
while (++a < 100) {
System.out.println("miles travled : " + a);
Thread.sleep(100);
}
} catch(Exception E) { }
}
}
public class Test {
public static void main(String args[]) {
Thread t1 = new Thread(new ( )());
t1.start();
}
}
Car
문제 3
Q. 다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
def func(num1, num2 = 2):
print('a =', num1, 'b = ', num2)
func(20)
a = 20 b = 2
문제 4
Q. 다음은 Python의 리스트 객체에 속한 메소드들에 대한 설명이다. 각 괄호(① ~ ③)에 해당하는 메소드의 이름을 <보기>에서 찾아 쓰시오.
Python에서는 여러 요소들을 한 개의 이름으로 처리할 때 리스트(List)를 사용하며, 각 요소에는 정수, 실수, 문자열 등 다양한 자료형을 섞어 저장할 수 있다. 또한 리스트는 메소드를 활용하여 요소를 추가 및 삭제할 수 있을 뿐만 아니라 정렬하거나 다른 리스트와 병합하는 등의 다양한 작업을 손쉽게 수행할 수 있다.
- ( 1 ) : 기존 리스트에 인수의 요소들을 추가하여 확장하는 메소드로, 여러 값을 한 번에 추가할 수 있다.
- ( 2 ) : 리스트에서 맨 마지막 또는 인수의 값에 해당하는 위치의 요소를 삭제한 후 반환한다.
- ( 3 ) : 리스트에 저장된 각 요소들의 순서를 역순으로 뒤집어 저장하는 메소드이다.
<보기>
(ㄱ) pop() (ㄴ) push() (ㄷ) reverse() (ㄹ) index() (ㅁ) write() (ㅂ) sort() (ㅅ) extend()
(ㅇ) copy()
(2) (ㄱ)
(3) (ㄷ)
문제 5
Q. 다음 C언어로 구현된 프로그램을 분석하여 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));
}
120
문제 6
Q. 다음은 정수를 역순으로 출력하는 C언어 프로그램이다. 예를 들어 1234의 역순은 4321이다. 단, 1230처럼 0으로 끝나는 정수는 고려하지 않는다. 프로그램을 분석하여 괄호(① ~ ③)에 들어갈 알맞은 연산자를 쓰시오.
#include <stdio.h>
int main() {
int number = 1234;
int div = 10, result = 0;
while (number ( 1 ) 0) {
result = result * div;
result = result + number ( 2 ) div;
number = number ( 3 ) div;
}
printf("%d", result);
}
(2) @%@
(3) @/@
문제 7
Q. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
#include <stdio.h>
int isPrime(int number) {
for (int i = 2; i < number; i++) {
if (number % i == 0) return 0;
}
return 1;
}
int main() {
int number = 13195;
int max_div = 0;
for (int i = 2; i < number; i++) {
if (isPrime(i) == 1 && number % i == 0) max_div = i;
}
printf("%d", max_div);
}
29
2022년 2회
문제 1
Q. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
public class Test {
public static void main(String[] args) {
int i = 3, k = 1;
switch(i) {
case 1: k++;
case 2: k -= 3;
case 3: k = 0;
case 4: k += 3;
case 5: k -= 10;
default: k--;
}
System.out.print(k);
}
}
-8
문제 2
Q. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
#include <stdio.h>
struct A {
int n;
int g;
}
main() {
struct A st[2];
for (int i = 0; i < 2; i++) {
st[i].n = i;
st[i].g = i + 1;
}
printf("%d", st[0].n + st[1].g);
}
2
문제 3
Q. 다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
a = "REMEMBER NOVEMBER"
b = a[0:3] + a[12:16]
c = "R AND %s" % "STR"
print(b + c)
REMEMBER AND STR
문제 4
Q. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
#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;
}
10
문제 5
Q. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
#include <stdio.h>
int main() {
int a[4] = { 0, 2, 4, 8 };
int b[3];
int* p;
int sum = 0;
for (int i = 1; i < 4; i++) {
p = a + i;
b[i - 1] = *p - a[i - 1];
sum = sum + b[i - 1] + a[i];
}
printf("%d", sum);
}
22
문제 6
Q. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
class Test {
public static void main(String args[]) {
cond obj = new cond(3);
obj.a = 5;
int b = obj.func();
System.out.print(obj.a + b);
}
}
class cond {
int a;
public cond(int a) {
this.a = a;
}
public int func() {
int b = 1;
for (int i = 1; i < a; i++) {
b += a * i;
}
return a + b;
}
}
61
2022년 3회
문제 1
Q. 다음 C언어로 구현된 프로그램을 분석하여 배열 <mines>의 각 칸에 들어갈 값을 쓰시오.
#include <stdio.h>
void main() {
int field[4][4] = { {0, 1, 0, 1}, {0, 0, 0, 1}, {1, 1, 1, 0}, {0, 1, 1, 1} };
int mines[4][4] = { {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0} };
int w = 4, h = 4;
for (int y = 0; y < h; y++) {
for (int x = 0; x < w; x++) {
if (field[x][y] == 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[i][j] += 1
}
}
}
}
}
}
int checkover(int w, int h, int j, int i) {
if (i >= 0 && i < w && j >= 0 && j < h) return 1;
return 0;
}
배열 <field>
0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1
배열 <mines>
1 | 1 | 3 | 2 |
3 | 4 | 5 | 3 |
3 | 5 | 6 | 4 |
3 | 5 | 5 | 3 |
문제 2
Q. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
public class Test {
public static void main(String[] args) {
int result[] = new int[5];
int arr[] = { 77, 32, 10, 99, 50 };
for (int i = 0; i < 5; i++) {
result[i] = 1;
for (int j = 0; j < 5; j++) {
if (arr[i] < arr[j]) {
result[i]++;
}
}
}
for (int k = 0; k < 5; k++) {
System.out.print(result[k]);
}
}
}
24513
문제 3
Q. 다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
a = [1, 2, 3, 4, 5]
a = list(map(lambda num : num + 100, a))
print(a)
[101, 102, 103, 104, 105]
문제 4
Q. 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
#include <stdio.h>
void 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);
}
2
문제 5
Q. 다음 JAVA로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
public class Test {
static int[] mkarr() {
int[] tmpArr = new int[4];
for (int i = 0; i < tmpArr.length; i++) {
tmpArr[i] = i;
}
return tmpArr;
}
public static void main(String[] args) {
itn[] arr;
arr = mkarr();
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
}
}
}
0123
문제 6
Q. 다음 JAVA로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
public class Test {
public static void main(String[] args) {
int r = 0;
for (int i = 1; i < 999; i++) {
if (i % 3 == 0 && i % 2 == 0) {
r = i
}
}
System.out.print(r);
}
}
996
'Certificate > DPE' 카테고리의 다른 글
[정보처리기사 실기] 단원별 핵심 키워드 정리 (0) | 2022.05.05 |
---|---|
[정보처리기사 실기] 예상 문제 모음 ① (최신 경향) (6) | 2022.05.04 |
[정보처리기사 실기] 단답형/약술형 문제 모음 (7) | 2022.05.02 |
[정보처리기사 실기] 데이터베이스 기출 문제 정리 (2017년~2022년) (5) | 2022.04.26 |
[정보처리기사 실기] 개념 암기 (2) | 2022.03.26 |
[정보처리기사 실기] 시험 대비 (0) | 2022.03.06 |
[정보처리기사 실기] 12. 제품 소프트웨어 패키징 (2) | 2022.03.06 |
[정보처리기사 실기] 11. 응용 SW 기초 기술 활용 (1) | 2022.03.05 |