『IT CookBook, C언어 for Beginner(개정판)』
연습문제 해답
초안작성: 2014.08.16
한빛아카데미㈜
[1장 연습문제]
1. (1) 코딩
(2) 컴파일
(3) 링크
(4) 빌드
(5) 실행
(6) *.c , *.cpp
2.
3.
#include <stdio.h>
int main()
{
printf ("%d \n\n\n", 100-99);
}
[2장 연습문제]
1. 500,400,900
2. scanf_s(), &
3. a, b, result
4. 1 + 2 + 3 = 6
5.
6.
#include <stdio.h>
int main()
{
int a, b, c, d;
int result;
printf("첫 번째 계산할
scanf_s("%d", &a);
printf("두 번째 계산할
scanf_s("%d", &b);
printf("세 번째 계산할
scanf_s("%d", &c);
printf("네 번째 계산할
scanf_s("%d", &d);
값을 입력하세요 ==> ");
값을 입력하세요 ==> ");
값을 입력하세요 ==> ");
값을 입력하세요 ==> ");
result = a + b - c * d;
printf(" %d + %d - %d * %d
}
=
%d \n", a, b, c, d, result);
[3장 연습문제]
1. (1) 정수, 실수
(2) %d, %x, %o
2. %d, %d, %f
3. (1) 291
(2) 4A
(3) char a[6];
4. (1) \a
(2) \b
(3) \n
(4) \r
(5) \t
5. (1) f111, 111+222, 333
(2) 0123.450
(3) 123.00
6. 123.0
7. ③ ④
8.
#include <stdio.h>
int main()
{
int data;
printf("16진수를 입력하세요 : ");
scanf_s("%X", &data);
printf("입력한 16진수는 10진수로 %d 입니다.\n", data);
}
9. (1)
(2)
[4장 연습문제]
1. %
2. 23
3. +=, -=, *=, /=, %=
4. (1) 괄호
(2) 캐스트, (float), (int)
(3) ++, -(4) ( a > 10 ) && ( a < 20 )
(5) 곱한, 나눈
5.
6. (1) 2
(2) 0
(3) 0100
(4) 1101
(5) 0000
7. (1) 100
(2) 0, 1, 0, 1, 0, 20
8.
#include <stdio.h>
int main()
{
int time;
int hour, min , sec;
printf(" ## 계산할 초는 ? ");
scanf_s("%d", &time);
hour = time / (60 * 60); // 1시간 = 1분(60초) * 60
time = time % (60 * 60);
min = time / 60; // 1분 = 60초
sec = time % 60;
printf("\n 시간은 ==> %d 시간 \n", hour);
printf(" 분은
==> %d 분 \n", min);
printf(" 초는
==> %d 초 \n", sec);
}
9.
10. 10행 수정
if (a = 100) if (a == 100)
[5장 연습문제]
1. (1) 아무것도 출력 안됨
(2) if문 수행2if문 수행3
2. (1) if, else
(2) 블록({})
(3) switch, case
3. (1) O
(2) X
(3) X
4. (1) 2다
(2) 1이다. 2다. 3이다.
5.
#include <stdio.h>
int main()
{
int a;
printf("처리할 수를 입력하세요 : ");
scanf_s("%d", &a);
if( a > 0 )
printf
else if (a <
printf
else
printf
}
6.
("입력한 수는 + 입니다.\n");
0)
("입력한 수는 - 입니다.\n");
("입력한 수는 0 입니다.\n");
#include <stdio.h>
int main()
{
int a=100;
if (a < 200)
{
printf(" a가 200보다 ");
printf(" 작습니다.\n");
}
else
printf (" a가 200보다 큽니다.");
}
[6장 연습문제]
1. 초깃값, 조건식, 증감식, 반복할 문장
2. (1) 10회 (2) 11회 (3) 0회 (4) 10회 (5) 11회
3. (1) 15 회 (2) 24 회
4. (1) X (2) X (3) O
5. (1) X (2) X (3) O (4) O (5) O (6) O (7) O
6. for( ; ; )
7. (1) i<=9 또는 i<10 (2) i++ 또는 ++i 또는 i=i+1
8. 6행 : int odd_hap = 0;
7행 : int even_hap = 0;
9. i%3==0 || i%7==0
[7장 연습문제]
1. 조건식, 초기값, 증감식
2. (1) X (2) X (3) X (4) X (5) X (6) X
3. (1) goto (2) break (3) return (4) continue
4. (1) i=0 (2) i<10 (3) i++
5. 12번
6. i%5==0 || i%8==0
[8장 연습문제]
1. bb[0], bb[1], bb[2], bb[3]
2. 1000, 0, 999
3. ① ④
4. ④
5. (1) 바 (2) 다 (3) 가
(4) 나 (5) 라
6. (1) X (2) X (3) X (4) O (5) X (6) X
7. 50개
8. int cc[5][9][10];
9.
(6) 마 (7) 사
#include <stdio.h>
int main()
{
int aa[4];
int hap=0, kop=1;
int i;
i=0;
while (i<=3 )
{
printf("%d번째 숫자를 입력하세요 : ", i+1 );
scanf_s("%d", &aa[i]);
i++;
}
i=0;
while (i<=3 )
{
hap = hap + aa[i];
kop = kop * aa[i];
i++;
}
printf(" 합계 ==> %d \n", hap);
printf(" 곱셈 ==> %d \n", kop);
}
10. 원래 코드 13~16행
for (i=0 ; i<4 ; i++)
printf("bb[%d]==>%d\t", i, bb[i] );
printf("\n");
aa[2]는 0으로 초기화, bb[3]은 예상할 수 없는 값
11. (1) cc (2) int 또는 cc[0]
12. (1) gets_s (2) gets_s
(3) strcat_s (4) strcat_s (5) strlen (6) strlen (7) strcmp
13.
#include <stdio.h>
int main()
{
int aa[3][4];
int i, k;
int val=1;
i=0;
while(i<3)
{
k=0;
while(k<4){
aa[i][k] = val;
val++;
k++;
}
i++;
}
}
[9장 연습문제]
1. (1) 스택(Stack)
(2) 증가, 감소 (3) 10, 0
2. (1) 1byte (2) 4byte (3) 4byte (4) 4byte
3. (1) 1개 (2) 1개
(3) 3개
4. (1) X (2) O (3) O (4) X (5) X (6) X (7) X (8) X (9) O
5. 104번지
6. (1)과 (4), (2)와 (3)
7. 문자형 포인터에 정수형 변수의 주소를 넣었다.
8. 24행을 if ( *(p+i) < *(p+k) )로 수정
9.
#include <stdio.h>
int main()
{
int s[10] ;
int tmp;
int i, k;
int *p;
p = s;
for(i=0; i<10; i++)
{
printf("s[%d] 데이터: ", i);
scanf_s("%d", (p+i));
}
printf("정렬 전 배열 s ==> ");
-- 이후로는 동일함---
10. case 2 부분에 한 줄 추가
case 2:
if (top <= 0)
{
printf("빠져나갈 자동차가 없음\n");
}
else{
top --;
printf(" %c 자동차가 터널에서 빠짐\n", stack[top]);
stack[top] = ' ';
carName-- ;
}
break;
11. 각각 4byte 씩 동일하게 할당됨
12. 10행 : q = *p; q = p;
13.
#include <stdio.h>
#include <string.h>
int main()
{
char s[20];
char *p=s;
int i;
printf("글자를 입력(20자 미만) : ");
scanf_s("%s",p, 20);
for( i=strlen(s)-1 ; i>=0 ; i--)
printf("%c", *(p+i));
printf("\n");
}
[10장 연습문제]
1. 프로토타입
2. ① v1의 데이터 형식이 없음
② 함수는 int인데 return 값은 char임
3. (1) 다 (2) 나 (3) 가
4. (1) 나 (2) 가 (3) 다
5. 200
6. 110
7.
#include <stdio.h>
int diff(char a, char b)
{
if (a > b)
return a - b;
else
return b - a;
}
int main()
{
char ch1, ch2;
printf("두 문자를 입력 : ");
scanf_s("%c %c", &ch1,1, &ch2, 1);
printf("두 문자의 차이 ==> %d\n", diff(ch1, ch2));
}
8. diff(&ch1,&ch2)
9.
int swap(char *a, char *b)
{
char imsi;
imsi = *a;
*a = *b;
*b = imsi;
}
10. void func1(int);
[11장 연습문제]
1. scanf_s(), printf()
2. (1) 다 (2) 라 (3) 사
(4) 가 (5) 아
(6) 마 (7) 바 (8) 나
3. 10, a, 12
4. (1) ) getch(), getche(), getchar() (2) fscanf_s(), fprintf()
5. 1 3 4 2
6. (1) 나 (2) 다 (3) 가
(4) 라
7. (1) ch = getche(); (2) break;
(3) s[i]
8. (1) pass1[i] = getch(); (2) pass2[i] = getch(); (3) strncmp(pass1, pass2, 4)
9.
#include <stdio.h>
void main()
{
char str[200];
FILE *rfp;
FILE *wfp;
int i;
fopen_s(&rfp, "c:\\windows\\win.ini", "r");
fopen_s(&wfp, "c:\\temp\\win2.ini", "w");
for(i=1; ;i++)
{
fgets(str,200,rfp);
if (feof(rfp))
break;
fprintf(wfp,"%3d행 : %s",i,str);
}
fclose(rfp);
fclose(wfp);
}
[12장 연습문제]
1. (1) X (2) O (3) X (4) O (5) X (6) O
2. (2)
3. (1) 1000 (2) 1004 (3) 1000 (4) 1004
4. (1) malloc(), calloc(), realloc() (2) 포인터배열
5. (3)
6.
#include <stdio.h>
#include <malloc.h>
int main()
{
float* p;
int i;
float hap=0, kop=1;
int cnt;
printf(" 입력할 개수는 ? ");
scanf_s("%d", &cnt);
p = (float*) malloc(sizeof(float) * cnt);
for(i=0 ; i<cnt ; i++)
{
printf(" %d 번째 숫자 : ", i+1);
scanf_s("%f", p+i);
}
for(i=0 ; i<cnt ; i++)
{
hap = hap + *(p+i);
kop = kop * *(p+i);
}
printf("입력숫자 합 ==> %f\n", hap);
printf("입력숫자 곱 ==> %f\n", kop);
free(p);
}
7. 8행 : p = (char) calloc(sizeof(char) * 3 ); p = (char*) calloc(sizeof(char) * 3 );
8. (1) p[i] = (char*) malloc( (sizeof(char) * size) + 1 );
(2) printf(" %d 행 :%d 글자\n", i+1, strlen(p[i]));
[13장 연습문제]
1. (1) 가
(2) 나
(3) 다
2. (1) X
(2) X
(3) X
(4) X
3. s[1].jumsu
4. p->jumsu
5. union, struct, enum
6.
struct student {
char name[10];
int age;
char tel[13];
float salary;
};
7. sun : -5 , mon : -4, tue : -3, wed : -2, thu : -1, fri : 0, sat : 10
8. (1) p = &s
(2) p->name
(3) &p->avg
9. (1)
(2)
[14장 연습문제]
1. void 또는 int main(int argc, char* argv[])
2. 2
3. (1) 헤더파일
(2) <>, ""
4. (1) 나
(2) 가
(3) 라
(4) 다
5.
#include <stdio.h>
void gugu()
{
static int dan=0;
int i;
dan++;
for (i=2; i<=9; i++)
{
printf("%2dx%2d=%2d ", i, dan, dan*i );
}
printf("\n");
}
int main()
{
int i;
for(i=2; i<10 ; i++)
printf("**%d 단** ",i);
printf("\n");
for(i=0; i<8 ; i++)
gugu();
}
6. main.c 소스의 int a=100;을 main() 함수의 밖으로 빼야 한다.
7. 2행 : #define 3.14 PI
6행~ 7행 : 한 줄로 표현
const int a;
a = 100;
const int a=100;
#include<stdio.h>
#define PI 3.14
int main()
{
const int a=100;
}
#define PI 3.14
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )