안녕하세요.
정보처리기사 실기에 대해 포스팅을 주기적으로 진행하다 보니,
프로그래밍 언어에 대한 문제가 늘어나는 것을 볼 수 있었고,
이로 인해 많은 수험자분들이 많이 탈락하거나 힘들어하는 모습을 볼 수 있었습니다.
그래서 정보처리기사의 시험 기준의 소스코드 문제를 정리해보려합니다.
기출문제이면서 보완설명을 덧붙여 정리하였으니 도움이 되었으면 좋겠습니다. (녹색은 답 / 파랑색은 해설입니다.)
대체적으로 출제되는 C언어, JAVA, Python으로 나뉘어 정리해보겠습니다.
(문제는 계속해서 업데이트될 예정입니다.)
정보처리기사 실기 C언어편
C언어 포맷 스트링
문자형 | %c | 문자 출력 |
%s | 문자열 출력 | |
정수형 | %d | 10진수 출력 |
%x | 16진수 출력 | |
%o | 8진수 출력 | |
실수형 | %f | 실수 출력 (소수점 6자리 출력) |
%[전체자리수].[소수점자리수]f | 실수 출력 (지정된 소수점 출력) |
실수형 변수에 대해 출력하시오.
1
2
3
4
5
6
7
8
9
|
#include <stdio.h>
void main(){
float a = 7.9;
printf("%f\n", a);
printf("%.3f\n", a);
printf("%6.2f\n", a);
}
|
cs |
7.900000
7.900
7.90
처음은 그냥 실수를 출력하므로 소수점 6자리로 출력합니다.두번째는 소수점 3자리까지 출력합니다.세번째는 전체자리수를 6자리로하고 소수점 2자리까지 출력하므로 앞 공백을 2자리 띄어줍니다.
C++의 변수 출력값을 작성하시오.
1
2
3
4
5
6
7
8
9
|
#include <iostream>
using namespace std;
void main(){
char a = 'A'
int b = 7;
cout << a << endl << b;
}
|
cs |
A
7
C++에서 cout는 출력을 위한 도구입니다.
원래 방식은 std:cout << '문자열'이지만 using namespace std을 선언하면서 std부분을 생략할 수 있습니다.cout <<로 A를 출력하고,endl는 개행을해주면서 b의 값 7을 출력합니다.
C++의 출력 결과를 작성하시오.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#include <iostream>
print Value{
a,
b,
c = 7,
d
};
void main(){
print Value value;
value = d;
std::cout << value;
}
|
cs |
8
c와 c++에서는 초기값을 설정하지 않으면 0부터 차례대로 할당됩니다.
a는 초기값이 설정되지 않아 0이 됩니다.
b는 1이되고,c는 7이 대입되므로 7이 됩니다.d는 8이 됩니다.
다음 C언어의 출력결과를 작성하시오.
1
2
3
4
5
6
7
8
|
#include <stdio.h>
void main(){
int a[5] = {3,1};
int i;
for(i=0; i<5; i++)
printf("%d\n", a[i]);
}
|
cs |
3
1
0
0
0
a[5] : 배열 요소의 개수에 정의된 숫자만큼 공간이 할당됩니다.
반복문을 돌면서 초기값은 3과 1로 셋팅되지만 나머지 값들은 0으로 셋팅되서 출력되게 됩니다.
다음 C언어의 <코드>와 <입력>을 보고 프로그램을 분석하여 그 실행 결과를 작성하시오.
1
2
3
4
5
6
7
8
|
#include <stdio.h>
main(){
char inputData [50];
scanf("%s", inputData );
printf("%.4s", inputData );
printf("%3.2s", inputData );
}
|
cs |
입력 : Hello, World
Hell He
50자리 크기의 문자 배열 inputData를 선언하고,
scanf를 통해서 입력한 데이터를 inputData에 저장합니다.첫번째 printf에서 inputData에 저장된 문자열을 4글자만 출력하고,두번째 printf에서는 전체 3자리를 확보한 후 inputData에 저장된 문자열 2글자만 출력합니다.
다음 C언어로 구현된 코드를 분석하여 출력과 같은 결과가 나타나도록 괄호에 알맞는 출력문을 작성하시오.
(단, printf()함수를 사용한 한 개의 식으로 작성하시오.)
1
2
3
4
5
6
7
8
9
|
#include <stdio.h>
main(){
float a = 3.45678f;
double b = 0.0561214;
( )
}
|
cs |
출력 : [a]=3.46 / [b]=5.612e-02
printf("[a]=%.2f / [b]=%.3e", a, b);
[a]=%.2f : 실수의 정수 부분은 모두 출력하고 소수점 이하는 3자리에서 반올림하여 2자리까지만 출력합니다.
[b]=%.3e : 지수의 정수 부분은 모두 출력하고 소수점 이하는 4자리에서 반올림하여 3자리까지만 출력합니다.
다음 C언어의 코드와 입력을 보고 프로그램을 분석하여 그 실행 결과를 작성하시오.
1
2
3
4
5
6
7
8
9
|
#include <stdio.h>
main(){
int i, j;
scanf("%o#x", &i, &j);
printf("%d %d", i, j)
}
|
cs |
입력 : 15#22
13 34
#을 기준으로 입력값을 구분하여 앞에 입력된 수는 8진수, 뒤에 입력된 값은 16진수로 각각 i와 j에 저장합니다.
8진수15를 10진수로 변환하여 출력한 다음 공백 후, 16진수 22를 10진수로 변환해줍니다.
다음 C언어로 구현된 프로그램에 맞는 출력값을 작성하시오.
1
2
3
4
5
6
7
8
9
10
11
|
#include <stdio.h>
main(){
int i = 5, j = 5, k = 20;
i /= j;
j -= i;
k %= j;
printf("%d, %d, %d\n", i, j, k);
}
|
cs |
1, 4, 0
i /= j : i = i / j 와 같습니다. (i = 5 / 5)
j -= i : j = j - i 와 같습니다. (j = 5 - 1)
k %= j : k = k % j 와 같습니다. (k = 20 % 4)
'Exam & Study' 카테고리의 다른 글
정보처리기사 실기 공부 방법 (꿀팁) (2) | 2024.02.14 |
---|---|
[2023년 3회] 정보처리기사 실기 복원 문제 (17) | 2024.01.15 |
[2022년 3회] 정보처리기사 실기 기출문제 (7) | 2024.01.05 |
[2022년 2회] 정보처리기사 실기 기출문제 (4) | 2024.01.05 |
2024년 정보처리기사 시험 일정 정보 (4) | 2024.01.05 |
댓글