728x90
반응형
◎ 2022년 1회 14번
입력값 5가 들어왔을 떄 출력값
_________________________
#include <stdio.h>
int fn(int a) {
if(a <= 1) return 1;
return a * fn(a - 1);
}
void main() {
int a;
scanf("%d", &a);
printf("%d", fn(a));
}
더보기
1) 입력값이 5가 들어오면 a = 5가 된다.
2) fn(int a = 5)가 되고 if문을 보면 a가 1보다 작거나 클 때는 1을 반환하고, 아닐 경우 a*fn(a-1)을 반환한다.
3) 5 * f(4) -> 5 * 4 * f(n) ->5*4*3*fn(2) -> 5*4*3*2*1
♣ 정답 -> 120
◎ 2022년 1회 15번
밑줄 친 곳에 연산자를 이용해 정수를 역순으로 출력하는 프로그램을 완성하시오.
__________________________________________________________
#include <stdio.h>
void main() {
int number = 1234;
int div = 10;
int result = 0;
while(number__(1)__0) {
result = result * div;
result = result + number __(2)__ div;
number = number __(3)__ div;
}
printf("%d", result);
}
더보기
1) 반복문을 실행할 때마다 맨 뒷자리 수를 result에 더 해주고, number의 마지막 자리는 없애고, result는 10배씩 곱해 역수 구함.
2) (1)은 반복문이 0보다 크거나 아닐떄 반복해야 하기 때문에 > 나!= 사용
3) (2)는 number의 맨 뒷자리 수를 더해주어야해서 % 연산자 사용
4) (3) number의 맨 뒷자리 수를 제거해야 하므로 / 연산자 사용
♣ 정답 ->
(1) >또는 !=
(2) %
(3) /
◎ 2022년 2회 08번
#include <stdio.h>
struct student {
int n, g;
}
int main() {
struct student st[2];
int i = 0;
for(i; i<2; i++) {
st[i].n = i;
st[i].g = i + 1;
}
printf("%d", st[0].n + st[1].g);
return 0;
}
더보기
1) student 구조체 선언 후, 멤버 변수 n, g 선언
2) student 배열 변수 s 사이즈를 2만큼 선언
3) for문은 i를 1씩 증가
4) i값을 s[i].n에 대입, i+1을 s [i]. g에 대입
♣ 정답 -> 0 + 2 =2
◎ 2022년 2회 15번
#include <stdio.h>
int len(char* p);
int main() {
char *p1 = "2022";
char *p2 = "202207";
printf("%d", len(p1) + len(p2));
return 0;
}
int len(char* p) {
int r = 0;
while(*p != '\0') {
p++;
r++;
}
return r;
}
더보기
1) len 함수 선언, *p 의 길이를 구하는 함수
2) p1 과 p2의 길이를 더함 4 + 6
♣ 정답 -> 10
◎ 2022년 3회 01번
#includ <stdio.h>
int calc(int w, int h, int j, int i){
if(i>=0 && i<h && j>=0 && j<w)
return 1;
return 0;
}
int main(){
int field[4][4] = {{0,1,0,1},{0,0,0,0},{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;
int i, j, k, l;
for(l=0; l<h; l++){
for(k=0; k<w; k++){
if(field[l][k] == 0)
continue;
for(i=l-1; i<=l+1; i++){
for(j=k-1; j<=k+1; j++){
if(calc(w, h, j, i) == 1) {
mines[i][j] += 1;
}
}
}
}
}
for(l=0; l<h; l++){
for(k=0; k<w; k++){
printf("%d ", mines[l][k]);
}
printf("\n");
}
return 0;
}
더보기
♣ 정답 ->
1 1 3 2
3 4 5 3
3 5 6 4
3 5 5 3
◎ 2022년 3회 13번
#include <stdio.h>
void main() {
int i, j, k, s;
int el = 0;
for(i=6; i<=30; i++) {
s = 0;
k = i/2;
for(j=1; j<=k; j++) {
if(i%j==0) {
s = s + j;
}
}
if(s==i) {
el++;
}
}
printf("%d", el);
}
더보기
♣ 정답 -> 2
728x90
반응형
'자격증 > 정보처리기사 실기' 카테고리의 다른 글
정보처리기사[실기] 기출문제_C언어(2023년도) (54) | 2023.09.23 |
---|---|
정보처리기사[실기] 기출문제_자바(2023년도) (51) | 2023.09.22 |
정보처리기사[실기] 기출문제_C언어(2021년도) (47) | 2023.09.20 |
정보처리기사[실기] 기출문제_C언어(2020년도) (50) | 2023.09.19 |
정보처리기사[실기] 기출문제_자바(2022년도) (40) | 2023.09.17 |