C 언어 기초 문제 — 변수, 연산자, 출력, 제어문·반복문
범위: 지역·전역·정적변수, 자료형, printf, 연산자, if, switch, for, while, do while, break, continue
각 코드의 출력 결과는 공백과 줄바꿈까지 고려해서 작성한다.
정답은 드래그~
1. 출력 결과 추적
문제 1 — 정수 나눗셈과 나머지
다음 프로그램의 출력 결과를 쓰시오.
#include <stdio.h>
int main(void) {
int a = 17;
int b = 5;
printf("%d %d", a / b, a % b);
return 0;
}
답 : 3, 2
문제 2 — 문자와 문자열
다음 프로그램의 출력 결과를 쓰시오.
#include <stdio.h>
int main(void) {
char grade = 'A';
char name[] = "Kim";
printf("%c %s", grade, name);
return 0;
}
답 : A, Kim
문제 3 — 실수 출력 형식
다음 프로그램의 출력 결과를 쓰시오.
#include <stdio.h>
int main(void) {
double value = 10.0 / 3.0;
printf("%.2f", value);
return 0;
}
답 : 3.33
문제 4 — 16진수 출력
다음 프로그램의 출력 결과를 쓰시오.
#include <stdio.h>
int main(void) {
int num = 31;
printf("%x", num);
return 0;
}
답 : 1f (소
cf)
printf("%x", 31); // 1f
printf("%X", 31); // 1F
0x1F : 코드에 16진수 값을 직접 적는 표기
%x : 16진수 숫자만 출력
%#x : 0x까지 포함해서 출력
문자로 표현)
문제 5 — 전위·후위 증가 연산자
다음 프로그램의 출력 결과를 쓰시오.
#include <stdio.h>
int main(void) {
int x = 3;
int a = x++;
int b = ++x;
printf("%d %d %d", x, a, b);
return 0;
}
답 : 5, 3, 5
문제 6 — 비교·논리 연산자
다음 프로그램의 출력 결과를 쓰시오.
#include <stdio.h>
int main(void) {
int a = 5;
int b = 0;
int c = -3;
printf("%d %d %d", a && b, a || b, !c);
return 0;
}
답 : 0 1 0 (논리 연산의 결과는 0 또는 1)
문제 7 — 삼항 연산자
다음 프로그램의 출력 결과를 쓰시오.
#include <stdio.h>
int main(void) {
int score = 59;
char result = score >= 60 ? 'P' : 'F';
printf("%c", result);
return 0;
}
답 : F
문제 8 — 중괄호 생략
다음 프로그램의 출력 결과를 쓰시오.
#include <stdio.h>
int main(void) {
int num = 0;
if (num)
printf("A");
printf("B");
return 0;
}
답 : B (중괄호 생략 상태)
문제 9 — 가까운 if와 연결되는 else
다음 프로그램의 출력 결과를 쓰시오.
#include <stdio.h>
int main(void) {
int a = 2;
if (a > 0)
if (a > 3)
printf("A");
else
printf("B");
return 0;
}
답 : B
문제 10 — switch와 fall-through
다음 프로그램의 출력 결과를 쓰시오.
#include <stdio.h>
int main(void) {
int num = 2;
switch (num) {
case 1:
printf("ONE ");
break;
case 2:
printf("TWO ");
case 3:
printf("THREE ");
break;
default:
printf("DEFAULT ");
}
return 0;
}
답 : TWO THREE
문제 11 — switch의 default
다음 프로그램의 출력 결과를 쓰시오.
#include <stdio.h>
int main(void) {
int num = 4;
switch (num) {
case 1:
printf("A");
break;
case 2:
printf("B");
break;
default:
printf("C");
}
return 0;
}
답 : C
문제 12 — for 반복문
다음 프로그램의 출력 결과를 쓰시오.
#include <stdio.h>
int main(void) {
int sum = 0;
for (int i = 1; i <= 4; i++) {
sum += i;
}
printf("%d", sum);
return 0;
}
답 : 10 ( 1+2+3+4)
문제 13 — continue
다음 프로그램의 출력 결과를 쓰시오.
#include <stdio.h>
int main(void) {
int sum = 0;
for (int i = 0; i < 6; i++) {
if (i % 2 == 0)
continue;
sum += i;
}
printf("%d", sum);
return 0;
}
답 : 9 (1+3+5)
문제 14 — break
다음 프로그램의 출력 결과를 쓰시오.
#include <stdio.h>
int main(void) {
int sum = 0;
for (int i = 1; i <= 5; i++) {
if (i == 4)
break;
sum += i;
}
printf("%d", sum);
return 0;
}
답 : 6 (1+2+3)
문제 15 — while
다음 프로그램의 출력 결과를 쓰시오.
#include <stdio.h>
int main(void) {
int i = 1;
int result = 1;
while (i <= 4) {
result *= i;
i++;
}
printf("%d", result);
return 0;
}
답 : 24
문제 16 — do while
다음 프로그램의 출력 결과를 쓰시오.
#include <stdio.h>
int main(void) {
int i = 5;
do {
printf("%d", i);
i++;
} while (i < 5);
return 0;
}
답 : 5
문제 17 — 정적 지역변수
다음 프로그램의 출력 결과를 쓰시오.
#include <stdio.h>
void func(void) {
static int x;
x += 2;
printf("%d ", x);
}
int main(void) {
func();
func();
func();
return 0;
}
답 : 2 4 6
문제 18 — 전역변수와 지역변수
다음 프로그램의 출력 결과를 쓰시오.
#include <stdio.h>
int x = 10;
void func(void) {
int x = 20;
printf("%d ", x);
}
int main(void) {
func();
printf("%d", x);
return 0;
}
답 : 20 10
문제 19 — 반복문과 변수 변화
다음 프로그램의 출력 결과를 쓰시오.
#include <stdio.h>
int main(void) {
int a = 1;
int b = 2;
for (int i = 0; i < 3; i++) {
a += b;
b++;
}
printf("%d %d", a, b);
return 0;
}
답 : 10 5
문제 20 — while과 continue
다음 코드가 무한 반복되는 이유를 한 문장으로 설명하시오.
int i = 0;
while (i < 5) {
if (i == 2) {
continue;
}
i++;
}
답 : i가 2에서 증가하지 않아 무한 반복
2. 빈칸 채우기
문제 21 — 출력 형식 지정자
다음 코드의 빈칸에 들어갈 알맞은 형식 지정자를 쓰시오.
char grade = 'A';
char name[] = "Kim";
int age = 25;
double score = 95.5;
printf("%( ① ) %( ② ) %( ③ ) %.1( ④ )",
grade, name, age, score);
| ① | c |
| ② | s |
| ③ | d |
| ④ | f |
문제 22 — 조건식 완성
정수 n이 10 이상이고 20 이하일 때 OK를 출력하도록 빈칸을 채우시오.
if (n >= 10 __( ① )__ n <= 20) {
printf("OK");
}
답 : &&
문제 23 — 짝수만 출력하기
0부터 9까지 반복하면서 짝수만 출력하도록 빈칸을 채우시오.
for (int i = 0; i < 10; i++) {
if (i % 2 __( ① )__ 0)
__( ② )__;
printf("%d ", i);
}
| ① | != |
| ② | continue |
문제 24 — switch문 종료
다음 코드에서 case 1을 실행한 뒤 case 2로 이어서 실행되지 않도록 하는 키워드를 쓰시오.
switch (num) {
case 1:
printf("ONE");
__( ① )__;
case 2:
printf("TWO");
}
답 : break
문제 25 — 정적변수
다음 설명의 괄호에 들어갈 알맞은 키워드를 쓰시오.
함수 내부에서 선언하지만, 함수가 종료된 뒤에도 값이 유지되도록 하려면 변수 앞에 ( )을 붙인다.
답 : static
3. O / X 문제
문제 26
지역변수는 초기화하지 않아도 자동으로 0으로 초기화된다.
답 : X wldurqustnsms wlrwjq chrlghk
문제 27
전역변수는 프로그램이 실행되는 동안 유지되며, 초기화하지 않으면 기본적으로 0으로 초기화된다.
답 : O
문제 28
continue는 반복문 전체를 즉시 종료하는 키워드다.
답 : X
문제 29
do while문은 조건이 처음부터 거짓이어도 본문을 최소 한 번 실행한다.
답 : O
문제 30
switch문에서 일치하는 case가 없어도 default가 반드시 작성되어 있어야 하는 것은 아니다.
답 : O
'정보처리기사' 카테고리의 다른 글
| [정처기] 03. C언어 배열, 포인터 +연습문제 (0) | 2026.06.27 |
|---|---|
| [정처기] 02. C언어 함수, 재귀 +연습 문제 (0) | 2026.06.26 |
| [정처기] 01. C언어 변수, 연산자, 출력 형식, 제어문 & 반복문 (0) | 2026.06.26 |
| 정처기 공부해라 (0) | 2026.06.24 |