Skip to Content
독학사독학사 2단계C프로그래밍25. 독학사 2단계 C프로그래밍 모의고사 ① (전 범위)

이 편은 실제 기출 문제가 아닙니다. 독학사 2단계 C프로그래밍 관련 reference/ 기출 원문은 확보되어 있지 않습니다. 아래 22개 문항은 국가평생교육진흥원 독학학위제 독학사 2단계 C프로그래밍 출제기준(평가영역) 전 범위(자료형·연산자·입출력, 조건/반복, 함수, 배열·문자열, 포인터, 구조체·공용체·열거형, 선행처리기, 파일 입출력, 동적 메모리)를 근거로 새로 구성한 실전형 모의 문항입니다. 실제 시험의 문장·코드·보기 배열과 다를 수 있습니다.

회차별 실제 출제 문항 수·배점·시간은 매 공고마다 다를 수 있으므로, 응시 전 국가평생교육진흥원 공고 원문을 반드시 확인하십시오.

이 편이 다루는 범위와 접근법

이 편은 0622편에서 다룬 전 범위를 한 회분 모의고사 형태로 종합 점검합니다. 0609편의 자료형·연산자·제어문, 1013편의 함수·배열·문자열·포인터, 1417편의 구조체·전처리기·파일·동적 메모리, 19~20편의 표준 라이브러리, 21편의 오류 분석까지 고르게 배분했습니다. 난이도는 실전 시험 평균 수준으로 맞추었고, 25편처럼 한 영역에 집중하기보다 짧은 코드를 빠르고 정확하게 추적하는 능력을 점검하는 데 초점을 둡니다.

실전처럼 풀려면 문제마다 다음 세 단계를 거치십시오. ① 코드에 등장하는 변수를 모두 적고 초기값을 확인한다. ② 한 줄씩 실행하며 값이 바뀌는 지점마다 표에 기록한다. ③ 마지막 출력문이 그 시점의 값을 정확히 반영하는지 확인한다. 특히 정수 나눗셈, 연산자 우선순위, 매크로 치환, 배열의 포인터 붕괴(decay)처럼 “겉보기 예상”과 “실제 결과”가 달라지는 지점은 이 모의고사에서 반복적으로 다룹니다. 틀린 문항은 문제 아래 괄호로 표시된 관련 편으로 돌아가 개념을 다시 확인하십시오.

마무리 복습

1~3번 — 프로그램 구조·자료형·형 변환 (06, 07편)

문제 14지선다
C프로그램의 구조와 컴파일 과정에 대한 설명으로 옳지 않은 것은?
#include <stdio.h> int main(void) { int a = 7; int b = 2; float c = a / b; float d = (float)a / b; printf("%.1f %.1f\n", c, d); return 0; }
문제 24지선다
위 프로그램의 실행 결과로 옳은 것은?
문제 34지선다
일반적인 32비트/64비트 데스크톱 환경에서 자료형 크기에 대한 설명으로 옳지 않은 것은?

4~6번 — 연산자와 표현식 (08편)

#include <stdio.h> int main(void) { int result = 2 + 3 * 4 - 6 / 2; printf("%d\n", result); return 0; }
문제 44지선다
위 프로그램의 실행 결과로 옳은 것은?
#include <stdio.h> int main(void) { int i = 5; int a = i++; int b = ++i; printf("%d %d %d\n", a, b, i); return 0; }
문제 54지선다
위 프로그램의 실행 결과로 옳은 것은?
문제 64지선다
C 연산자에 대한 설명으로 옳지 않은 것은?

7~9번 — 조건문·반복문 (09편)

#include <stdio.h> int main(void) { int score = 75; char grade; if (score >= 90) grade = 'A'; else if (score >= 80) grade = 'B'; else if (score >= 70) grade = 'C'; else grade = 'F'; printf("%c\n", grade); return 0; }
문제 74지선다
위 프로그램의 실행 결과로 옳은 것은?
#include <stdio.h> int main(void) { int x = 2; int sum = 0; switch (x) { case 1: sum += 1; case 2: sum += 2; case 3: sum += 3; break; default: sum += 100; } printf("%d\n", sum); return 0; }
문제 84지선다
위 프로그램의 실행 결과로 옳은 것은?
#include <stdio.h> int main(void) { int sum = 0; for (int i = 1; i <= 10; i++) { if (i % 2 == 0) continue; if (i > 7) break; sum += i; } printf("%d\n", sum); return 0; }
문제 94지선다
위 프로그램의 실행 결과로 옳은 것은?

10~12번 — 함수와 변수의 범위 (10편)

#include <stdio.h> void addTen(int x) { x = x + 10; } int main(void) { int n = 5; addTen(n); printf("%d\n", n); return 0; }
문제 104지선다
위 프로그램의 실행 결과로 옳은 것은?
#include <stdio.h> int x = 100; void changeX(void) { int x = 5; x = x + 1; } int main(void) { changeX(); printf("%d\n", x); return 0; }
문제 114지선다
위 프로그램의 실행 결과로 옳은 것은?
문제 124지선다
함수와 변수의 유효 범위(scope)에 대한 설명으로 옳지 않은 것은?

13~15번 — 배열·문자열·포인터 기초 (11, 12편)

#include <stdio.h> int main(void) { int arr[5] = {10, 20, 30, 40, 50}; int sum = 0; for (int i = 1; i < 4; i++) { sum += arr[i]; } printf("%d\n", sum); return 0; }
문제 134지선다
위 프로그램의 실행 결과로 옳은 것은?
#include <stdio.h> #include <string.h> int main(void) { char str[20] = "Hello"; strcat(str, "World"); printf("%d\n", (int)strlen(str)); return 0; }
문제 144지선다
위 프로그램의 실행 결과로 옳은 것은?
#include <stdio.h> int main(void) { int arr[4] = {5, 10, 15, 20}; printf("%d %d\n", *(arr + 2), *arr + 2); return 0; }
문제 154지선다
위 프로그램의 실행 결과로 옳은 것은?

16~18번 — 구조체·전처리기 (14, 15편)

#include <stdio.h> struct Book { char title[20]; int price; }; int main(void) { struct Book b1 = {"C Programming", 15000}; struct Book b2 = b1; b2.price = 20000; printf("%d %d\n", b1.price, b2.price); return 0; }
문제 164지선다
위 프로그램의 실행 결과로 옳은 것은?
#include <stdio.h> #define SQUARE(x) x * x int main(void) { int result = SQUARE(2 + 3); printf("%d\n", result); return 0; }
문제 174지선다
위 프로그램의 실행 결과로 옳은 것은?
문제 184지선다
선행처리기(preprocessor)에 대한 설명으로 옳지 않은 것은?

19~20번 — 파일 입출력·동적 메모리 개관 (16, 17편)

문제 194지선다
파일 입출력에 대한 설명으로 옳지 않은 것은?
#include <stdio.h> #include <stdlib.h> int main(void) { int *p = (int *)malloc(3 * sizeof(int)); p[0] = 1; p[1] = 2; p[2] = 3; printf("%d\n", p[0] + p[1] + p[2]); free(p); return 0; }
문제 204지선다
위 프로그램의 실행 결과로 옳은 것은?

21~22번 — 표준 라이브러리·오류 분석 (19, 20, 21편)

#include <stdio.h> #include <string.h> int main(void) { char a[10] = "apple"; char b[10] = "apple"; strcpy(b, "banana"); printf("%d\n", strcmp(a, b)); return 0; }
문제 214지선다
위 프로그램을 실행한 결과에 대한 설명으로 옳은 것은?
#include <stdio.h> int main(void) { int a = 10 printf("%d\n", a); return 0; }
문제 224지선다
위 코드를 컴파일할 때 발생하는 문제로 가장 적절한 것은?

참고 자료

Last updated on