* 공단에서 실기 문제와 답은 공개하지 않습니다. 포스팅한 자료는 응시하신 분들의 기억으로 복원된 문제와 가답안이므로 실제 문제 순서나 정답과 다를 수 있습니다.
* 본 포스팅을 무단 복제하거나 배포하지 마시기 바랍니다. ( 게시글 최상단에 본 블로그 출처 밝히시면 포스팅 가능합니다. )
* 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
'정보처리기사 > 정보처리기사 실기 대비 문제' 카테고리의 다른 글
정보처리기사 실기 목차 - 정리, 예상문제, 문제 복원 수록 (25) | 2021.09.13 |
---|---|
정보처리기사 실기) 2017-2019 프로그래밍 문제 모음 (8) | 2021.09.03 |
정보처리기사 실기) 기출변형 단답형 100제 (13) | 2020.10.16 |
정보처리기사 실기) 예상모의고사 40제 (8) | 2020.10.14 |
정보처리기사 실기) 정보처리기사 실기 예상문제 (421~440) (0) | 2020.09.21 |
댓글