[2024년 2회]
·
정보처리기사
# 1. 다음은 C언어에 대한 문제이다. 아래 코드를 확인하여 알맞은 출력값을 작성하시오.[소스코드]#include int main() { int arr[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int* parr[2] = { arr[1], arr[2] }; printf("%d", parr[1][1] + *(parr[1] + 2) + **parr); return 0;}시험에서 이 쉬운 포인터 문제를 인덱스를 헷갈려서 한 문제 차이로 떨어진 게 기억이 난다.. 2차원 배열 arr을 { 1, 2, 3, 4, 5, 6, 7, 8, 9 }로 초기화123456789포인터 배열 parr을 { arr[1], arr[2] }로 초기화parr[0]456parr[1]789p..
[2024년 1회]
·
정보처리기사
# 1. 다음 C언어 코드에서 알맞은 출력 값을 작성하시오.[소스코드]#include int main() { int v1 = 0, v2 = 35, v3 = 29; if (v1 > v2 ? v2 : v1) v2 = v2 정수 v1, v2, v3를 0, 35, 29로 초기화조건문 v1 > v2 ? v2 : v1는 삼항 연산자인데, 삼항 연산자란 → 조건식? 참일 때 값 : 거짓일 때 값v1이 v2보다 작으므로 거짓이며 v1값을 사용조건문은 거짓이 되므로, else문으로 넘어감v3 = v3 v3값을 좌로 2비트 이동29 = 0001 11010001 1101 35 + 116 = 151 [출력결과]151 # 2. 다음은 C언어에 대한 문제이다. 알맞는 출력 값을 작성하시오.[소스코드]#i..
[2023년 3회]
·
정보처리기사
# 1. 다음은 C 언어 코드이다. 알맞은 출력 결과를 작성하시오.[소스코드]#include int test(int n){ int i, sum = 0; for (i = 1; i 위 문제는 완전수를 구해 모두 더하는 문제다정수 i선언 sum은 0으로 초기화1부터 100 사이 완전수는 6, 28 두 개밖에 없다 [출력결과]34 # 2. C언어에서 구조체의 멤버에 접근하기 위해 괄호안의 기호를 작성하시오.[소스코드]#include #include typedef struct Data{ char c; int* numPtr;}Data;int main() { int num = 10; Data d1; Data* d2 = (Data*)malloc(sizeof(struct Data)); d1.numPtr = &..
[2023년 2회]
·
정보처리기사
# 1. 다음은 C언어 코드의 문제이다. 보기의 조건에 맞도록 밑줄 친 부분에 알맞은 코드를 작성하시오.보기: 입력값이 54321일 경우 출력값이 43215로 출력되어야 한다.[소스코드]#define _CRT_SECURE_NO_WARNINGS#include int main(void) { int n[5]; int i; for (i = 0; i n[ ( i + 1 ) % 5 ]i = 0 // n[1]i = 1 // n[2]i = 2 // n[3]i = 3 // n[4]i = 4 // n[0] # 2. 다음은 c언어의 코드이다. 보기의 조건에 맞추어 알맞은 출력값을 작성하시오.입력값은 홍길동, 김철수, 박영희 순서로 주어진다.[소스코드]#include #include #include char ..
[2023년 1회]
·
정보처리기사
# 1. 다음 C언어의 출력값을 작성하시오.[소스코드]#include int main() { char a[] = "Art"; char* p = NULL; p = a; printf("%s\n", a); printf("%c\n", *p); printf("%c\n", *a); printf("%s\n", p); for (int i = 0; a[i] != '\0'; i++) printf("%c", a[i]); return 0;}문자형 배열 a를 "Art"로 초기화포인터 p를 NULL로 초기화p를 a로 초기화 // a의 배열 첫 번째 요소를 가리킴 [출력결과]ArtAAArtArt # 2. 다음 C언어의 출력값을 작성하시오.[소스코드]#include int..
[2022년 3회]
·
정보처리기사
# 1. 아래는 C언어의 2차원 배열 형태이다. field의 경우 2차원 배열 형태는 예시처럼 출력되므로, 이를 참고하여 mines의 2차원 배열 형태를 작성하시오.[소스코드]#include int calculate(int w, int h, int j, int i){ if (i >= 0 && i = 0 && j 이 문제는 나중에 이해하면 알겠지만.. 지뢰 찾기 문제다문제 내부 for문의 개수를 보면 4중 for문을 이루고 있다출제가 의도가 정말 궁금한 도라이같은 문제다..(시간 엄청 잡아먹는 노가다 문제) 문제를 풀기에 앞서 field, mines 배열을 그려보자[field] 012300101100012111030111 말로는 설명이 힘든데 결국은 calculate 함수를 만족하면 mines 배열의..
[2022년 2회]
·
정보처리기사
# 1. 다음 소스코드에 대한 출력값을 작성하시오.[소스코드]#include struct A { int n; int g;};int main() { A a[2]; for (int i = 0; i 구조체 A  정의 A a[2]; // 구조체 A 타입의 크기가 2인 배열 a를 생성반복문 루프를 타면서 구조체 배열 a의 첫 번째 인덱스부터 두 번째 인덱스까지 요소를 채움a[0].n = 0, a[0].g = 1a[1].n = 1, a[1].g = 2 [출력결과]2 # 2. 다음 C언어에서 출력에 대한 알맞은 답을 작성하시오.[소스코드]#include int len(const char* p){ int r = 0; while (*p != '\0') { p++; ..
[2022년 1회]
·
정보처리기사
# 1. 다음 소스코드에서 입력값이 5가 들어왔을 때 출력되는 값을 작성하시오.[소스코드]#define _CRT_SECURE_NO_WARNINGS#include int func(int a) { if (a 정수 a를 정의하고, scanf함수를 통해 a의 값을 5를 입력받아서 a의 메모리주소에 할당한다func(int a) 함수를 확인해 보면 재귀함수인 것을 확인할 수 있다func(5) = 5 * func(4)func(4) = 4 * func(3)func(3) = 3 * func(2)func(2) = 2 * func(1)func(1) = 1 결국 func(5) = 5 * 4 * 3 * 2 * 1 이 된다 [출력결과]120 # 2. 다음 중, 괄호 ( ) 안에 들어갈 연산자를 써서 정수를 역순으로 출력하는 알맞..
[2021년 3회]
·
정보처리기사
# 1. 다음 C언어에 대한 알맞은 출력값을 쓰시오.[소스코드]#include int main() { int* arr[3]; int a = 12, b = 24, c = 36; arr[0] = &a; arr[1] = &b; arr[2] = &c; printf("%d\n", *arr[1] + **arr + 1);}크기가 3인 포인터 배열 arr 선언정수 a = 12, b = 24, c = 36으로 초기화arr[0] = &a // arr[0]은 a의 주소를 나타냄arr[1] = &b // arr[1]은 b의 주소를 나타냄arr[2] = &c // arr[2]은 c의 주소를 나타냄 arr[0]arr[1]arr[2]arr&a&b&c*arr[1] = 24**arr + 1 → *arr[0] + 1 → 12 + 1 =..
[2021년 2회]
·
정보처리기사
# 1. 다음은 C언어에 관한 소스코드이다. 실행 결괏값을 작성하시오.[소스코드]#include int mp(int base, int exp) { int res = 1; for (int i = 0; i 정수 res 정의res = mp(2, 10);base = 2, exp = 10mp함수 내부의 반복문을 순회하면 2의 거듭제곱을 나타내는 것을 알 수 있는데, i = 9일 때 마지막 참 값이니까2^10 = 1024 [출력결과]1024 # 2. 다음은 C언어 문제이다. 출력값을 작성하시오.[소스코드]#include int main() { int arr[3]; int s = 0; *(arr + 0) = 1; arr[1] = *(arr + 0) + 2; arr[2] = *ar..