C언어 중간고사 성취율이 낮은 문항 다시 보기 | 14·15·18번

C언어 중간고사
성취율이 낮은 문항 다시 보기
14·15·18번을 다시 풀고, 교재와 풀이 영상으로 복습하세요.
각 코드는 서로 독립적이며, 필요한 #include <stdio.h>와 int main(void)의 내부에 제시된 부분을 넣어 실행한다고 가정합니다. 출력은 줄바꿈·문자·숫자·소수 자리수를 구분합니다. 각 문항의 코드 작성에서는 동등하게 동작하는 답도 인정합니다.
14번
[5점]소수는 1보다 크고 양의 약수가 1과 자기 자신뿐인 수이다. 예를 들어 3은 양의 약수가 1과 3뿐이므로 소수이고, 8은 1과 8 외에 2와 4도 약수이므로 소수가 아니다. 다음 코드는 4부터 7까지의 소수를 출력하려는 코드이지만 원하는 대로 동작하지 않는다.
int n, d, prime = 1;
for (n = 4; n <= 7; n++) {
for (d = 2; d < n; d++) {
if (n % d == 0) {
prime = 0;
break;
}
}
if (prime) printf("%d ", n);
}〈작성 방법〉
- 현재 코드의 출력 결과를 쓰시오. 아무것도 출력하지 않으면 ‘출력 없음’이라고 쓰시오. [1점]
- 원인을 prime의 값에 관련지어 설명하시오. [2점]
- 문장 하나를 추가하여 수정하시오. 추가할 문장과 정확한 위치를 쓰시오. [2점]
교재에서 다시 보기
208쪽 · 중첩 for문의 이해 / 211쪽 · 반복 흐름 제어
작성 방법의 각 항목에 빠짐없이 답했는지 확인하세요.
문항 출처: 2025학년도 기술 전공 B 9번(인쇄 7쪽) 변형
15번
[5점]12세 이상 17세 이하만 이용 가능한 단말기를 만들려 한다. 다음 코드에 20을 입력하였다.
int age;
scanf("%d", &age);
if (12 <= age <= 17)
printf("YES");
else
printf("NO");〈작성 방법〉
- 현재 출력 결과를 쓰시오. [1점]
- 해당 조건식이 C에서 평가되는 순서를 설명하시오. [2점]
- 의도에 맞는 조건식으로 고치시오. [2점]
교재에서 다시 보기
129쪽 · 비교 연산자 / 132쪽 · 논리 연산자
작성 방법의 각 항목에 빠짐없이 답했는지 확인하세요.
문항 출처: 2024학년도 기술 전공 A 12번(인쇄 8쪽)의 소재를 참고하여 새롭게 구성한 문항입니다. 기출 원문과 동일하지 않습니다.
18번
[5점]다음 코드는 양의 정수를 일의 자리부터 확인하여 0이 아닌 숫자의 개수를 센다. 정수 나눗셈에서 소수 부분은 버린다.
int n = 240, digit, count = 0;
while (n > 0) {
digit = n % 10;
if (digit != 0) count++;
n = n / 10;
}
printf("%d %d", count, n);〈작성 방법〉
- 현재 코드의 출력 결과를 쓰시오. [2점]
- n의 초깃값만 2000으로 바꾸었을 때 출력 결과를 쓰시오. [2점]
- 원래 코드에서 while 반복문의 본문이 실행되는 횟수를 쓰시오. [1점]
교재에서 다시 보기
120쪽 · 산술 연산자 / 200쪽 · while문
작성 방법의 각 항목에 빠짐없이 답했는지 확인하세요.
문항 출처: 교재 6~7장 개념을 활용한 새 문항으로, 특정 기출문제를 직접 변형한 문항이 아닙니다.
댓글
댓글 쓰기