AI와정보통신실습 C언어 제4차 퀴즈 정답과 풀이

AI와 정보통신 실습 C언어 제4차 퀴즈 풀이지

총 15문항

각 문항의 지시에 따라 답하시오. 코드는 서로 독립적이며, 필요한 헤더를 포함하고 main 함수 안에 작성한 코드의 일부이다.

1번

점수가 65점 이상일 때만 합격을 출력하도록 ㉠에 들어갈 조건식을 쓰시오.

int score = 70;
if (㉠) {
    printf("합격입니다.\n");
}
풀이 보기
score >= 65

65점을 포함해야 하므로 >=를 사용한다. 동치인 조건식도 인정한다.

교재 연습문제 6.1 / 182쪽 (합격 기준 수치 변형)

2번

다음 코드의 실행 결과를 줄별로 쓰시오.

printf("%d\n", 10 / 4);
printf("%f\n", 10.0 / 4);
풀이 보기
2
2.500000

첫 식은 정수 나눗셈, 둘째 식은 실수 나눗셈이다. %f의 기본 소수 자릿수는 6자리이다.

교재 연습문제 5.2 / 151쪽

3번

아래 코드는 점수와 관계없이 축하 문장을 출력한다. 두 문장이 모두 합격한 경우에만 출력되도록 코드를 수정하여 쓰시오.

int score = 85;
if (score >= 60)
    printf("합격입니다.\n");
    printf("축하합니다.\n");
풀이 보기
if (score >= 60) {
    printf("합격입니다.\n");
    printf("축하합니다.\n");
}

중괄호로 두 문장을 하나의 블록으로 묶어야 한다. 들여쓰기만으로 실행 범위가 결정되지는 않는다.

교재 연습문제 6.3 / 183쪽

4번

number의 값이 짝수인지 판별하도록 ㉠에 들어갈 조건식을 쓰시오.

int number = 8;
if (㉠)
    printf("짝수입니다.\n");
else
    printf("홀수입니다.\n");
풀이 보기
number % 2 == 0

2로 나눈 나머지가 0인지 검사한다. 동치식도 인정한다.

교재 연습문제 6.4 / 183쪽

5번

문자열과 계산 결과가 함께 «10 % 3 = 1»로 출력되도록 아래 한 문장을 수정하여 쓰시오.

printf("10 % 3 = %d\n", 10 % 3);
풀이 보기
printf("10 %% 3 = %d\n", 10 % 3);

서식 문자열 안에서 % 문자 자체를 출력하려면 %%를 쓴다. 계산식의 나머지 연산자는 그대로 둔다.

교재 연습문제 5.4 / 152쪽

6번

아래 코드의 실행 결과를 쓰고, number를 0으로 바꾸었을 때의 실행 결과도 쓰시오.

int number = -3;
if (number < 0)
    printf("음수입니다.\n");
else
    printf("0 이상입니다.\n");
풀이 보기
-3일 때: 음수입니다.
0일 때: 0 이상입니다.

0은 음수가 아니므로 else로 진행한다.

교재 연습문제 6.5 / 184쪽 (출력 추론형 변형)

7번

아래 코드에서 문법상 잘못된 줄을 찾아 올바르게 고쳐 쓰시오.

int score = 50;
if (score >= 60) {
    printf("합격입니다.\n");
}
else (score < 60) {
    printf("불합격입니다.\n");
}
풀이 보기
else {

else 뒤에는 조건식을 붙이지 않는다. else if (score < 60) {로 수정하는 것도 인정한다.

교재 연습문제 6.6 / 184쪽

8번

실행 결과가 15가 되도록 ㉠에 들어갈 복합 대입 연산자 하나를 쓰시오.

int count = 10;
count ㉠ 5;
printf("%d\n", count);
풀이 보기
+=

현재 값 10에 5를 더해 다시 count에 저장한다.

교재 연습문제 5.6 / 153쪽

9번

90점 이상 A, 80점 이상 90점 미만 B, 70점 이상 80점 미만 C, 60점 이상 70점 미만 D, 나머지는 F로 판정하려 한다. 아래 코드의 잘못된 점을 설명하고 if~else if~else 부분을 수정하여 쓰시오.

int score = 85;
if (score >= 60) printf("D\n");
else if (score >= 70) printf("C\n");
else if (score >= 80) printf("B\n");
else if (score >= 90) printf("A\n");
else printf("F\n");
풀이 보기
if (score >= 90) printf("A\n");
else if (score >= 80) printf("B\n");
else if (score >= 70) printf("C\n");
else if (score >= 60) printf("D\n");
else printf("F\n");

낮은 하한부터 검사하면 높은 점수도 첫 조건에서 D로 판정된다. 높은 기준부터 검사한다. 동치인 구간 조건식도 인정한다.

교재 연습문제 6.8 / 186쪽

10번

설정입니다.만 출력되도록 ㉠에 들어갈 정수를 쓰시오.

int choice = ㉠;
switch (choice) {
case 1: printf("새 게임입니다.\n"); break;
case 2: printf("게임 불러오기입니다.\n"); break;
case 3: printf("설정입니다.\n"); break;
default: printf("잘못된 선택입니다.\n"); break;
}
풀이 보기
3

switch의 값과 같은 case 3에서 실행을 시작한다.

교재 연습문제 6.9 / 187쪽

11번

a와 result가 각각 8과 7이 되도록 ㉠에 들어갈 식을 쓰시오. 변수 a와 증가 연산자를 사용하시오.

int a = 7;
int result = ㉠;
printf("%d %d\n", a, result);
풀이 보기
a++

후위 증가식은 증가 전 값 7을 전달하고 a를 8로 만든다.

교재 연습문제 5.11 / 156쪽

12번

다음 코드의 실행 결과를 줄별로 쓰시오.

int choice = 1;
switch (choice) {
case 1: printf("1번 메뉴\n");
case 2: printf("2번 메뉴\n");
default: printf("기본 메뉴\n");
}
풀이 보기
1번 메뉴
2번 메뉴
기본 메뉴

break가 없으므로 case 1에서 시작한 뒤 다음 문장들을 계속 실행한다.

교재 연습문제 6.10 / 188쪽

13번

다음 두 코드를 각각 실행했을 때 ① (가)와 (나)의 실행 결과를 각각 쓰시오. ② 두 코드의 실행 결과가 달라지는 이유를 설명하시오.

/* (가) */
int score = 95;
if (score >= 90)
    printf("A\n");
if (score >= 80)
    printf("B\n");

/* (나): (가)와 별도로 실행 */
int score = 95;
if (score >= 90)
    printf("A\n");
else if (score >= 80)
    printf("B\n");
풀이 보기
(가)
A
B

(나)
A

(가)는 독립적인 두 if의 조건을 각각 검사하므로 두 문장을 모두 출력한다. (나)는 첫 조건이 참이면 뒤의 else if를 실행하지 않으므로 A만 출력한다.

교재 연습문제 6.7~6.8 / 185~186쪽 개념 변형 (원문 문항 아님)

14번

choice가 1, 2, 3 중 어느 값이든 해당 번호의 메뉴만 출력되게 하려 한다. 출력문은 그대로 두고, 추가해야 할 문장과 그 문장을 넣을 위치를 모두 쓰시오. 단, switch의 마지막 출력문 뒤에는 불필요한 문장을 추가하지 마시오.

int choice = 2;
switch (choice) {
case 1: printf("1번 메뉴\n");
case 2: printf("2번 메뉴\n");
case 3: printf("3번 메뉴\n");
}
풀이 보기
case 1의 출력문 바로 뒤와 case 2의 출력문 바로 뒤에 각각 break;를 추가한다.

모든 선택값에 대해 독립적으로 실행되려면 첫째와 둘째 case의 연속 실행을 차단한다. 마지막 case는 블록 끝에 도달하므로 추가 문장이 필요 없다.

교재 연습문제 6.12 / 190쪽 (수정 위치를 묻는 변형)

15번

다음 코드는 정수가 음수이면 음수, 0이면 영, 양수이면 양수를 출력하려고 작성한 것이다. 그러나 일부 입력에서는 의도와 다르게 출력된다. ① number가 -3일 때 실제 출력 결과를 쓰시오. ② 어느 정수를 입력해도 해당하는 문장 하나만 출력되도록 조건문 부분을 수정하여 쓰시오.

int number = -3;
if (number < 0)
    printf("음수\n");

if (number == 0)
    printf("영\n");
else
    printf("양수\n");
풀이 보기
①
음수
양수

②
if (number < 0)
    printf("음수\n");
else if (number == 0)
    printf("영\n");
else
    printf("양수\n");

원래 코드의 else는 바로 앞의 if (number == 0)에 속한다. -3은 첫 if가 참이고 둘째 if가 거짓이므로 음수와 양수를 모두 출력한다. 하나의 if~else if~else 구조로 연결하면 세 경우 중 하나만 실행한다. 동치인 수정 코드도 인정한다.

교재 연습문제 6.5~6.6 / 184쪽 개념 변형 (원문 문항 아님)

댓글

이 블로그의 인기 게시물

2007년 국가직 9급 기계일반 기출문제 풀이

기계공작법 연습문제 130문 | 임용 기출 영상·교재 쪽수 바로가기