코드 해석이 이해가 안가면, online '컴퓨터언어' compiler 로 구글검색하여, 나오는 온라인 코드입력기에 넣고 돌려보면 그나마 이해가 빠르다. 코드 넣을 줄 모르면 정처기 붙기 힘들테니 그정도는 하겠지
온라인 컴파일러 사이트 한곳씩 연결해놨다.
(chatGPT 사용해서 도움을 받는게 좋다. 나도 23년에 프로그래밍하면서 함수 분석해달라고 요청하거든)
2021년 3회: 63, 64, 66, 71, 73. 총5문제
63번
63. 다음 파이썬(Python) 프로그램이 실행되었을 때의 결과는?
① 45 ② 55
● 66 ④ 78
<문제 해설>
range(시작, 끝, 간격) 이다. '시작'과 '간격'은 생략 가능하나 시작만 생략할 수는 없다.
준식은
s = 0
for i in range(12):
s += i
return s
로 해석된다. (num 이 원문에서 사용한 변수인데 그냥 보기 좋으라고 i로 바꿔놨다.)
range의 끝값인 12는 포함하지 않으므로, 0~11까지의 숫자의 합 0+1+2+3+4+5+6+7+8+9+10+11 = 66
64번
64. 다음 C언어 프로그램이 실행되었을 때의 결과는?
① nation ● nationalter
③ alter ④ alternation
<문제 해설>
string.h 라이브러리에 있는 strcat 함수는, 문자열을 이어 붙여준다.
p2 가 문자열 포인터 변수로 저장되는데, 이건 큰 상관없는듯.
strcat(str, p2)는 str안에 든 문자열과 p2 안에 든 문자열을 이어 붙여 str에 저장한다.
따라서 str 값은 nation 에서 nationalter로 바뀌어 저장된다.
이후에 이 값을 출력하므로 nationalter가 정답이다.
66번
66. 다음 C언어 프로그램이 실행되었을 때의 결과는?
① 0 ② 1
● 2 ④ 3
<문제 해설>
논리 연산자(or || 랑 and && 랑)는 결과가 거짓/0이면 0을, 참/자연수(?) 이면 1의 결과값을 반환.
연산 결과는 아래와 같다.
r1
= 4 <= 4 || 2 == 2
= 1 or 1
= 1
r2
= (3 >0) && (4 <5)
= 1 and 1
= 1
r3
= not 2
=0
r1 + r2 + r3 = 1+1+0 = 2
71번. 아직.
71. 다음 C언어 프로그램이 실행되었을 때의 결과는?
① 0 ② 4
● 8 ④ 12
<문제 해설>
1) &n
== 변수 n의 주소값.
예를들면 이번 문제에서는 0987654 라고 가정한다.
2)
*pt
== 포인터 변수 pt가 가리키고 있는 주소에 저장된 값
== 변수 n의 값.
지문에 나온대로면 n = 4이다.
3) *&pt
== *(&pt)
== (포인터 pt의 주소값)이 가리키고 있는 주소에 저장된 값
== 변수 n의 주소값
1)에서 지정한 예문을 가져오면, 이 주소값은 0987654 이다.
따라서 준식:
&n + *pt - *&pt + n
= *pt + n
= 4 + 4
= 8
73번
73. 다음 JAVA 프로그램이 실행되었을 때의 결과를 쓰시오.
① 13 ② 21
● 34 ④ 55
<문제 해설>
while문에서 i는 0부터 시작. i가 8일 때 조건 불만족으로 종료.
조건을 만족하면 피보나치 수열값을 입력한다.
앞과 앞앞값을 더해서 그다음에 더하고, i를 1 증가시킨다.
arr[0] = 0; arr[1] = 1; i =0
arr[2] = arr[1] + arr[0] = 1 + 0 = 1; i =1
arr[3] = arr[2] + arr[1] = 1 + 1 = 2; i =2
arr[4] = arr[3] + arr[2] = 2 + 1 = 3; i =3
arr[5] = arr[4] + arr[3] = 3 + 2 = 5; i =4
arr[6] = arr[5] + arr[4] = 5 + 3 = 8; i =5
arr[7] = arr[6] + arr[5] = 8 + 5 = 13; i =6
arr[8] = arr[7] + arr[6] = 13 + 8 = 21; i =7
arr[9] = arr[8] + arr[7] = 21 + 13 = 34; i =8
i = 8 이므로 while (8<8) 은 while (F) 이므로 종료한다.
그다음줄에서는 arr[9]의 값을 물어봤으니 34
2021년 2회: 63, 64,
63번
63. 다음 C언어 프로그램이 실행되었을 때의 결과는?
① 3 ② 4
❸ 7 ④ 10
<문제 해설>
a = 4 = 00000100 (bin)
b = 7 = 00000111 (bin)
int c = a OR b (비트 OR 연산 실행)
= 00000100 OR 00000111 = 00000111 = 7
참고
int c = a & b 로, AND 연산자가 들어가면, 00000100 = 4
64번
64. 다음 파이썬(Python) 프로그램이 실행되었을 때의 결과는?
① 0 ② 2
③ 4 ❹ 6
<문제 해설>
첫번째, FourCal 이라는 클래스를 만들었다.
두번째, FourCal 클래스는 두가지 기능이 들어간다. setdata 와 add 이다.
세번째, setdata 기능은 self, first, second 라는 인자를 받아서 sel.fir에 first 값 대입하고, sel.sec에 sec 값을 대입한다.
네번째, add 기능은 self 를 가져와서, result에 sel.fir + sec.sec 를 넣고 result를 반환한다.
덧셈 기능을 구현했다.
코드 실행
a는 FourCal 클래스로 정의되었다.
a.setdata(4,2) 에서 (a, 4, 2) 가 대입된다.
a.add()에서 4+2 = 6 이 반환된다.
'자격증 > 정보처리기사' 카테고리의 다른 글
디자인 패턴 - 생성 5 / 구조 7 / 행동 11 암기요령&찍는꼼수 (1) | 2022.10.11 |
---|---|
기본 상식) 0, NaN, Null, unidentified 차이점 (0) | 2022.10.02 |
2022년 제1회 정보처리기사 필기: 기출문제+정답표시+해설집 (0) | 2022.04.16 |
정보처리기사 필기 pdf (링크 + 2022년 용 보강재 추가) (0) | 2022.03.06 |
정보처리기사 처음 도전하는 초보자용 가이드 (0) | 2022.02.27 |