
[20년 3회]
2. 다음은 C언어 소스 코드이다. 출력 결과를 쓰시오.
#include <stdio.h>
void main() {
int i = 0, c = 0;
while (i < 10) {
i++;
c *= i;
}
printf("%d", c);
}
| 답: 0 void main() { int i = 0, c = 0; → 변수 정의 while (i < 10) { i++; c *= i; while (i < 10) : i 가 10보다 작으면, 아래의 코드를 반복해라. i++ : i 에 1을 더해라 c *= i : c * i 를 해서 c 값에 넣어라. ![]() |
[24년 1회]
2. 다음 C언어 코드에서 알맞는 출력 값을 작성하시오.
#include <stdio.h>
int main() {
int v1 = 0, v2 = 35, v3 = 29;
if(v1 > v2 ? v2 : v1) {
v2 = v2 << 2;
}else{
v3 = v3 << 2;
}
printf("%d", v2+v3);
}
| 답: 151 int main() { int v1 = 0, v2 = 35, v3 = 29; → 변수 정의 if(v1 > v2 ? v2 : v1) { v1 > v2 ? : 0 > 35 → 거짓 v2 : v1 : (참:거짓) 거짓이므로 v1 이 실행됨. → 즉, if(0) 이 됨 → C언어에서 if(0) 은 거짓(False)으로 간주함 v2 = v2 << 2; → 참일 때 실행되는 부분이므로 실행 안 됨 }else{ v3 = v3 << 2; → 거짓이므로 실행 됨 ![]() printf("%d", v2+v3); → 35 + 116 |
[23년 2회]
5. 다음은 C언어의 문제이다. 알맞은 출력값을 작성하시오.
#include <stdio.h>
void main(){
int n[3] = {73, 95, 82};
int sum = 0;
for(int i=0;i<3;i++){
sum += n[i];
}
switch(sum/30){
case 10:
case 9: printf("A");
case 8: printf("B");
case 7:
case 6: printf("C");
default: printf("D");
}
}
답: BCD![]() |
[21년 3회]
12. 다음 C언어에 대한 알맞는 출력값을 쓰시오.
#include <stdio.h>
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);
return 0;
}
| 답: 37 int main() { int *arr[3]; int a = 12, b = 24, c = 36; → 변수 정의 arr[0] = &a; arr[1] = &b; arr[2] = &c; → arr[0]에는 a의 주소를 넣는다. (값이 직접 들어가는 게 아님) ![]() printf("%d\n", *arr[1] + **arr + 1); arr[1] : arr[1]은 b의 주소를 가리키고 있음. *arr[1] : arr[1]은 b의 주소를 찾아가서 값(알맹이)를 꺼내라. = 24 arr : arr 은 배열의 시작점인 arr[0]의 주소 arr의 전체가 지정된다. *arr : arr[0]에 담긴 a의 주소를 찾아가라는 뜻. 이때 arr[0] 한 칸이 지정된다. **arr : arr[0]에 담긴 a의 주소를 찾아가서 값(알맹이)를 꺼내라. **arr + 1 : 꺼낸 값(12)에 +1 을 해라 = 13 *arr[1] + **arr + 1 : 꺼낸 두개의 값 24 + 13 을 해서 37이 된다. **(arr+1) 이라면 (arr+1) : arr의 시작점 a[0] 에서 +1을 한 a[1]이 된다. *(arr+1) : a[1]의 주소 한 칸을 지정하고 * *(arr+1) : a[1]의 주소에 있는 값을 꺼낸다. |
[23년 2회]
3. 다음은 c언어의 코드이다. 보기의 조건에 맞추어 알맞은 출력값을 작성하시오.
#include<stdlio.h>
#include<stdlib.h>
char n[30];
char *test() {
printf(입력하세요 : );
gets(n);
return n;
}
int main()
{
char * test1;
char * test2;
char * test3;
test1 = test();
test2 = test();
test3 = test();
printf(%s\n,test1);
printf(%s\n,test2);
printf(%s,test3);
}
입력값은 홍길동, 김철수, 박영희 순서로 주어진다.
| 답: 박영희 박영희 박영희 ![]() |
[25년 3회]
15. C언어 출력값 (비트 연산) 다음 코드의 출력값을 작성하시오.
#include <stdio.h>
int main() {
int x = 7, y = 4, z;
z = y % 3 < 3 ? 2 : 1;
z = z & z >> 1;
z = x > 5 && z <= 3 ? z * x : z / x;
printf("%d", z);
return 0;
}
| 답: 0 int main() { int x = 7, y = 4, z; → 초기값 정의 ※연산 순서 : 왼쪽부터 오른쪽, 연산 우선 법칙에 따라 z = y % 3 < 3 ? 2 : 1; y % 3 : 7 % 3 = 1 (%는 나머지를 구한다.) y % 3 < 3 : 1 < 3 = 참 y % 3 < 3 ? 2 : 1; : z = 2 (조건 ? 참 : 거짓) z = z & z >> 1; z >> 1 : 2 >>1 = 1 → '>>' 시프트 연산자 : 오른쪽으로 1비트 밀어라. ![]() z & z >> 1 : 2 & 1 = 0 → '&' AND 연산자 : 이진수 비교해서 일치하면 1, 불일치면 0 ![]() z = x > 5 && z <= 3 ? z * x : z / x; x > 5 : 7 > 5 = 참 && : 둘 다 참이어야 참이 되므로, 다음 연산도 확인한다. (거짓이었다면 다음 연산 확인 안 해도 됨) z <= 3 : 0 <= 3 = 참 z = x > 5 && z <= 3 : 참 && 참 = 참 z * x : 0 * 7 = 0 (참 값이 반환되서 계산된다) printf("%d", z); → 0 값 도출 |
'자격증 요약 > 정보처리기사' 카테고리의 다른 글
| [정보처리기사 실기] 이론 기출_1 (소프트웨어 설계 및 개발 방법론) (0) | 2026.04.13 |
|---|---|
| [정보처리기사 실기] 사용자정의함수 기출 (0) | 2026.04.09 |
| [정보처리기사 실기] C언어 기출 유형_4 (함수, 알고리즘) (0) | 2026.04.08 |
| [정보처리기사 실기] C언어 기출 유형_3 (구조체) (0) | 2026.04.08 |
| [정보처리기사 실기] C언어 기출 유형_2 (포인터, 문자열) (0) | 2026.04.08 |






