2025년 10월 15일 수요일

C언어 중간고사 문제

기술 임용 고사 C언어 - 모의고사 1회

출제 범위 : 예비 교사를 위한 기술 임용 C언어 1-7장

문제 1 (2019년 기출 변형)

아래 CODE는 구구단 중 9단을 역순으로 출력하는 프로그램이다. RESULT 실행화면을 참조하여 CODE의 빈칸 ㉠, ㉡, ㉢에 들어갈 코드를 순서대로 작성하시오.

💻 CODE

#include <stdio.h>
int main(void) {
    int i, dan = 9;
    printf("--- %d단 역순 출력 --- \n", dan);
    for (i = ; ; ) {
        printf("%d * %d = %d\n", dan, i, dan * i);
    }
    return 0;
}

📋 RESULT

--- 9단 역순 출력 --- 9 * 9 = 81 9 * 8 = 72 9 * 7 = 63 9 * 6 = 54 9 * 5 = 45 9 * 4 = 36 9 * 3 = 27 9 * 2 = 18 9 * 1 = 9
📚 예비 교사를 위한 기술 임용 C언어 교재
  • Chapter 07. 반복문 (for 문)
    • p. 126: for 문의 기본 형식
    • p. 131: for문을 이용한 역순 출력 예제 (CODE 7.4)

문제 2 (2020년 기출 변형)

아래 CODE는 표준입력장치로부터 양의 정수 1개를 입력받아, 1부터 그 수까지 3의 배수의 합을 구하는 프로그램이다. RESULT 실행화면을 참조하여 ㉠, ㉡, ㉢에 들어갈 코드를 순서대로 작성하시오.

💻 CODE

#include <stdio.h>
int main(void) {
    int i = ;
    int j = 0, sum = 0;
    printf("양의 정수를 입력하시오.\n");
    scanf("%d", &j);
    while () {
        sum = sum + i;
        ;
    }
    printf("1부터 %d까지 3의 배수의 합은 %d입니다.\n", j, sum);
    return 0;
}

📋 RESULT

양의 정수를 입력하시오. 10 1부터 10까지 3의 배수의 합은 18입니다.
📚 예비 교사를 위한 기술 임용 C언어 교재
  • Chapter 04. 변수
    • pp. 70-71: scanf를 이용한 숫자 입력
  • Chapter 05. 연산자
    • p. 76: 산술 연산자
    • p. 80: 복합 대입 연산자
  • Chapter 07. 반복문 (while 문)
    • pp. 132-133: while 문의 기본 형식

문제 3 (2021년 기출 변형)

아래 CODE는 학생들의 점수를 계속 입력받다가 음수가 입력되면 입력을 중단하고, 80점 이상인 학생 수를 집계하여 출력하는 프로그램이다. RESULT 실행화면과 <조건>을 참조하여 ㉠, ㉡, ㉢에 들어갈 코드를 순서대로 작성하시오.

⚠️ <조건>
  • 학생의 점수는 100 이하의 양의 정수 또는 0으로 한다.
  • 음수 점수를 입력하면 입력을 완료하고, 80점 이상인 학생 수를 출력한다.

💻 CODE

#include <stdio.h>
#define TRUE 1
int main(void) {
    int score = 0, count = 0;
    while (TRUE) {
        printf("학생의 점수를 입력하시오(종료는 음수 입력): ");
        scanf("%d", &score);
        if ()
            ;
        if ()
            count++;
    }
    printf("\n80점 이상 학생 수는 %d명입니다.\n", count);
    return 0;
}

📋 RESULT

학생의 점수를 입력하시오(종료는 음수 입력): 87 학생의 점수를 입력하시오(종료는 음수 입력): 95 학생의 점수를 입력하시오(종료는 음수 입력): 78 학생의 점수를 입력하시오(종료는 음수 입력): 67 학생의 점수를 입력하시오(종료는 음수 입력): -5 80점 이상 학생 수는 2명입니다.
📚 예비 교사를 위한 기술 임용 C언어 교재
  • Chapter 06. 조건문
    • p. 108: if 문의 기본 형식
    • p. 120: break 문의 역할
  • Chapter 07. 반복문
    • p. 134: 무한 루프
    • p. 142: break 문을 이용한 반복문 강제 탈출

문제 4 (2022년 기출 변형)

아래는 '균형수'에 대한 정의와 이를 판별하는 C언어 프로그램 CODE이다. '균형수'란 "자신을 제외한 약수 중 홀수의 합과 짝수의 합이 같은 수"를 의미한다. 예를 들어 30의 자신을 제외한 약수는 1, 2, 3, 5, 6, 10, 15이다. 이 중 홀수 약수의 합은 1+3+5+15=24이고, 짝수 약수의 합은 2+6+10=18이므로 30은 균형수가 아니다. <작성방법>에 따라 순서대로 서술하시오.

💻 CODE

#include <stdio.h>
int main(void) {
    int i, num, even_sum = 0, odd_sum = 0;
    scanf("%d", &num);
    for (i = 1; i < num; i++) {
        if (num % i == 0) { // i가 num의 약수인지 검사
            if () // i가 짝수인지 검사
                even_sum += i;
            else
                ;
        }
    }
    if ()
        printf("%d는 균형수입니다.", num);
    else
        printf("%d는 균형수가 아닙니다.", num);
    return 0;
}
✍️ <작성 방법>
  1. ㉠에 들어갈 조건식을 작성하시오.
  2. ㉡에 들어갈 코드를 작성하시오.
  3. ㉢에 들어갈 조건식을 작성하시오.
📚 예비 교사를 위한 기술 임용 C언어 교재
  • Chapter 05. 연산자
    • pp. 76-77: 나머지 연산자(%)의 개념과 활용
    • p. 86: 비교 연산자(==)
  • Chapter 06. 조건문
    • p. 110: if-else 문의 기본 형식
    • p. 113: 나머지 연산자를 이용한 홀수, 짝수 판별 예제
  • Chapter 07. 반복문
    • p. 126: for 문의 기본 형식

문제 5 (2024년 기출 변형)

아래 CODE는 장학금 신청 자격을 판별하는 프로그램이다. <조건>을 만족할 경우에만 "장학금 신청 대상입니다."가 출력된다. RESULT 실행화면을 참조하여 ㉠, ㉡, ㉢에 들어갈 코드를 순서대로 작성하시오.

⚠️ <조건>
  • 학점이 4.0 이상이고, 봉사활동 시간이 50시간 이상이어야 신청할 수 있다.
  • 또는, 학점이 4.3 이상이면 봉사활동 시간과 관계없이 신청할 수 있다.

💻 CODE

#include <stdio.h>
int main(void) {
    float gpa;
    int volunteer_hours;

    printf("학점을 입력하시오: ");
    scanf("%f", &gpa);
    printf("봉사활동 시간을 입력하시오: ");
    scanf("%d", );

    if ()
        printf("장학금 신청 대상입니다.\n");
    
        printf("장학금 신청 대상이 아닙니다.\n");

    return 0;
}

📋 RESULT

학점을 입력하시오: 4.1 봉사활동 시간을 입력하시오: 60 장학금 신청 대상입니다.
📚 예비 교사를 위한 기술 임용 C언어 교재
  • Chapter 04. 변수
    • pp. 70-71: scanf를 이용한 숫자 입력 (%d, %f)
  • Chapter 05. 연산자
    • p. 86: 비교 연산자 (>=)
    • pp. 88-89: 논리 연산자 (&&, ||)
  • Chapter 06. 조건문
    • p. 110: if-else 문의 기본 형식

댓글 없음:

댓글 쓰기