안녕하세요.
정보처리기사 실기에 대해 포스팅을 주기적으로 진행하다 보니,
프로그래밍 언어에 대한 문제가 늘어나는 것을 볼 수 있었고,
이로 인해 많은 수험자분들이 많이 탈락하거나 힘들어하는 모습을 볼 수 있었습니다.
그래서 정보처리기사의 시험 기준의 소스코드 문제를 정리해보려합니다.
기출문제이면서 보완설명을 덧붙여 정리하였으니 도움이 되었으면 좋겠습니다. (녹색은 답 / 파랑색은 해설입니다.)
대체적으로 출제되는 C언어, JAVA, Python으로 나뉘어 정리해보겠습니다.
(문제는 계속해서 업데이트될 예정입니다.)
정보처리기사 실기 Python편
다음 Python으로 구현된 프로그램과 입력값을 보고 실행 결과를 작성하시오.
1
2
3
4
5
6
|
x = input()
x = x.capitalize()
y = x.split()
print(y[0][::2], end = '*')
print(y[1][3:6])
|
cs |
입력 : Python programming
Pto*gra
input()을 통해 입력받은 데이터를 x에 저장합니다.
capitalize()를 통해서 각 단어의 첫 글자를 대문자로 변경하여 x에 저장합니다.
split()을 통해서 공백을 기준으로 y에 배열 형태로 저장합니다. (y[0] : python , y[1] : programming)
y[0]에 저장된 문자열의 0번 위치에서 2씩 증가하면서 각 글자를 출력하고 종료 문자인 *를 출력합니다.
(Pto*) (p가 0으로 시작되어 출력된 값입니다.)
y[1]에 저장된 문자열의 3번째 위치에서 5번째 위치까지 출력합니다. (gra)
합친값은 Pto*gra가 됩니다.
다음 python의 프로그램과 입력값을 분석하여 실행 결과에 대해 작성하시오.
1
2
3
4
5
|
arr_str = input('input String :').split('-')
arr_len = int(input('input number : '))
arr_val = list(range(0,arr_len,2))
arr_val.remove(4)
print(arr_str[1].find('i') + arr_val[2])
|
cs |
입력 :
input string : information-technology
input number : 12
5
infomation-technology가 split으로 나뉘어져 arr_str에 담김니다.
arr_str[0] : infomationarr_str[1] : technology
12값이 arr_len에 저장됩니다.
0에서 arr_len -1까지 2씩 증가하는 숫자를 arr_val에 리스트 형식으로 저장되게 됩니다.
arr_val[0] : 0
arr_val[1] : 2
arr_val[2] : 4
arr_val[3] : 6
arr_val[4] : 8
arr_val[5] : 10
arr_val의 값 4의 부분을 삭제되고 앞으로 한칸씩 당겨지게 됩니다.
arr_val[0] : 0
arr_val[1] : 2
arr_val[2] : 6
arr_val[3] : 8
arr_val[4] : 10
arr_str[1]에는 i값이 없으므로 -1이 반환되고 arr_val[2]는의 값은 6이므로 5가 출력되게 됩니다.
다음 python의 프로그램을 분석하여 실행 결과에 대해 작성하시오.
1
2
3
4
|
i = 20
f = 123456.789E-3
print('%d\n%d' % (i, i), end = '/')
print('%.3f' % f)
|
cs |
20
20/123.457
%d에서 20을 출력하고 \n에 의해 개행이되게 됩니다.
그리고 다시 %d로 인해 20이 입력되고 end속성으로 /를 출력합니다.
123456.789E-3이면실수e * (1/10의 거듭제곱) 형태로 계산됩니다.
그래서 123456.789 * (1/1000) = 123.456789 가 됩니다.
f값의 정수는 모두 출력하고 소수점은 반올림하여 3자리를 출력합니다.
다음 python의 프로그램을 분석하여 실행 결과에 대해 작성하시오.
1
2
3
4
5
6
7
8
|
class charClass :
a = ["Seoul", "Inchon", "Kyonggi", "Daejun", "Daegu", "Pusan"]
myVal = charClass()
str01 = ''
for i in myVal.a:
str01 = str01 + i[0]
print(str01)
|
cs |
SIKDDP
charClass의 객체 변수ㅜ myVal를 선언합니다.
str01의 변수를 선언하고
myVal의 리스트 a의 요소 수만큼 문장들을 반복합니다.
각 요소에 i를 할당하면서 문자열만큼 배열값이 들어가게 됩니다. ex)
i[4] = seoul각 요소의 i의 0번째는 각 글자의 첫번째 글자로 나타납니다.
다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
1
2
3
|
a = "What's this?"
print("%-10.4s" % a)
print("%10.4s" % a)
|
cs |
What
What
%s는 문자열을 추출하는 서식 문자열이고, -10.4s에서 -는 왼쪽부터 출력하라는 의미이며, 10은 10자리를 확보하고 4는 a에 저장된 문자열 "What's this" 중 앞의 4글자만을 출력하라는 의미이므로 결과는 뒤에 5칼 공백이 생깁니다.
두번째 답도 비슷하게 앞의 4글자만 출력하고 마지막 6칸 공백이 생기는 방식으로 설정되었습니다.
다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
i=7, hap=9
i가 6보다 작거나 같은 동안 반복 수행을 하게 됩니다.
i가 6보다 커지면 반복문을 벗어나 출력하게 됩니다.
다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
1
2
3
4
5
6
7
8
|
a = [[1,1,0,1,0],
[1,0,1,0]]
tot,totsu = 0, 0
for i in a:
for j in i:
tot += j
totsu = totsu + len(i)
print(totsu, tot)
|
cs |
9 5
2차원 리스트가 a 변수에 선언이 됩니다.
a만큼 반복하면서,
i의 요소만큼 반복 수행하게 됩니다.
각 요소를 j에 할당하면서 j를 tot에 누적시킵니다.
각 행의 요소의 수, 즉 길이를 totsu에 넣고 출력하게 됩니다.
다음 Python 코드는 "30, 200"을 출력한다. 빈 칸 ( 1 ), ( 2 )에 알맞는 코드를 차례로 쓰시오.
1
2
3
4
5
6
7
8
9
10
11
12
|
( 1 ) Calculator:
( 2 ) add(self,x,y):
return x + y
( 2 ) mul(self,x,y):
return x * y
cal = Calculator()
x = cal.add(10,20)
y = cal.mul(10,20)
print(x, y)
|
cs |
class, def
Python에서 클래스는 class로, 함수는 def라는 키워드로 선언합니다.
다음은 파이선으로 작성된 프로그램이다. 이를 실행한 출력 결과를 쓰시오.
1
2
3
4
5
6
7
|
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()
|
cs |
[1,2,3]
7
1 2 3
4 5
6 7 8 9
lol의 [0] 인덱스 값 출력하고 1줄 내립니다.
lol의 [2][1] 인덱스 값 출력하고 1줄 내립니다.
lol의 값을 순차적으로 가져와서 sub에 넣고,
sub의 값을 순처적으로 가져와서 item에 넣습니다.
item 출력하고 스페이스를 구분 및 개행하여 출력시킵니다.
'Exam & Study' 카테고리의 다른 글
[Java] 클래스(Class) & 인스턴스(Instance) 쉬운설명 (0) | 2023.02.15 |
---|---|
정보처리기사 실기 Java편 (12) | 2022.05.25 |
[2022년 1회] 정보처리기사 실기 복원 문제 (15) | 2022.05.21 |
웹서버(WEB)와 웹애플리케이션서버(WAS) 차이!! (0) | 2022.01.05 |
[쉬운설명] HTTP 쿠키(Cookie)에 대한 설명!! (0) | 2021.11.24 |
댓글