목차
p.48
1. 달의 중력은 지구 중력의 17%밖에 되지 않는다. 여러분의 몸무게를 입력하여 달에서의 무게로 변환시키는 프로그램을 작성하여라.
2.다음과 같은 프로그램 단락에서 잘못된 곳을 찾아보아라.
3.어떤 컵에 8온스(ounce)가 들어간다고 하자. 온스를 컵의 단위로 바꾸는 프로그램을 작성하여라. 이떄 o_to_c() 라는 이름의 함수를 작성하여 사용하라. 이 함수는 온스를 인수로 받아 컵 단위로 환산된 값을 반환한다.
4. C에서 5가지 기본 자료형은 무엇인가?
5. 다음 변수 이름에서 잘못된 곳을 찾아라.
p.74
1."수 알아 맞추기" 게임을 컴퓨터에서 할수 있도록 프로그램을 작성하라
2. 집에 있는 방들의 가로, 세로 길이가 주어질떄 그 집의 면적을 계산하는 프로그램을 작성하라.
3. 증가 연산자와 감소 연산자가 무엇이며, 언제 사용되는가?
4. 옳은 답의 수와 잘못된 답의 수를 기억햇다가 프로그램이 끝날 때 이 수들을 출력하도록 덧셈 연습용 프로그램을 수정하여라.
5. 1에서 100까지 수들을 출력하는 프로그램을 작성하여라. 이떄 한 줄에는 5개의 수만을 출력하고 수들 사이를 탭(tab)간격만큼 띄우라.
p. 104
1. 영문자의 소문자와 대문자의 ASCII 코드는 서로 32만큼 차이가 난다. 그러므로 소문자를 대문자로 변환하기 위해서 소문자 ASCII 코드에서 32를 뺴면된다. 키보드에서 읽어들인 소문자들을 대문자로 변환하는 프로그램을 작성하여라. 엔터키가 입력되면 프로그램을 종료하여라.
2. 중첩된 if 문을 사용하여, 하나의 수를 입력받아 그 수가 음수, 0, 혹은 양수인가를 구별해 주는 프로그램을 작성하여라.
3. 다음은 for 반복문을 적절히 사용한 것인가?
4. C에서 무한 반복을 생성하는 일반적인 방법을 보여라.
5. 3가지 종류의 반복을 사용하여 각각의 반복문에 대하여 1에서 10까지 세는 방법을 보여라.
6. break 문의 역할이 무엇이며, 반복문에서 언제 사용되는가?
7. 다음 switch 문은 옳은가?
8. 다음의 goto 문은 옳게 사용되었는가?
p. 105
1. switch 문을 이용하여, 키보드에서 문자들을 입력받아 탭, 뉴라인, 역슬래쉬를 구별해 내는 프로그램을 작성하여라. 이들 중 하나가 입력되면 그것에 대한 설명을 출력하여라.
2. 다음 프로그램이 잘못된 것은 아니지만 숙련된 프로그래머가 작성하는 방식으로 프로그램을 수정해 보아라.
1. 달의 중력은 지구 중력의 17%밖에 되지 않는다. 여러분의 몸무게를 입력하여 달에서의 무게로 변환시키는 프로그램을 작성하여라.
2.다음과 같은 프로그램 단락에서 잘못된 곳을 찾아보아라.
3.어떤 컵에 8온스(ounce)가 들어간다고 하자. 온스를 컵의 단위로 바꾸는 프로그램을 작성하여라. 이떄 o_to_c() 라는 이름의 함수를 작성하여 사용하라. 이 함수는 온스를 인수로 받아 컵 단위로 환산된 값을 반환한다.
4. C에서 5가지 기본 자료형은 무엇인가?
5. 다음 변수 이름에서 잘못된 곳을 찾아라.
p.74
1."수 알아 맞추기" 게임을 컴퓨터에서 할수 있도록 프로그램을 작성하라
2. 집에 있는 방들의 가로, 세로 길이가 주어질떄 그 집의 면적을 계산하는 프로그램을 작성하라.
3. 증가 연산자와 감소 연산자가 무엇이며, 언제 사용되는가?
4. 옳은 답의 수와 잘못된 답의 수를 기억햇다가 프로그램이 끝날 때 이 수들을 출력하도록 덧셈 연습용 프로그램을 수정하여라.
5. 1에서 100까지 수들을 출력하는 프로그램을 작성하여라. 이떄 한 줄에는 5개의 수만을 출력하고 수들 사이를 탭(tab)간격만큼 띄우라.
p. 104
1. 영문자의 소문자와 대문자의 ASCII 코드는 서로 32만큼 차이가 난다. 그러므로 소문자를 대문자로 변환하기 위해서 소문자 ASCII 코드에서 32를 뺴면된다. 키보드에서 읽어들인 소문자들을 대문자로 변환하는 프로그램을 작성하여라. 엔터키가 입력되면 프로그램을 종료하여라.
2. 중첩된 if 문을 사용하여, 하나의 수를 입력받아 그 수가 음수, 0, 혹은 양수인가를 구별해 주는 프로그램을 작성하여라.
3. 다음은 for 반복문을 적절히 사용한 것인가?
4. C에서 무한 반복을 생성하는 일반적인 방법을 보여라.
5. 3가지 종류의 반복을 사용하여 각각의 반복문에 대하여 1에서 10까지 세는 방법을 보여라.
6. break 문의 역할이 무엇이며, 반복문에서 언제 사용되는가?
7. 다음 switch 문은 옳은가?
8. 다음의 goto 문은 옳게 사용되었는가?
p. 105
1. switch 문을 이용하여, 키보드에서 문자들을 입력받아 탭, 뉴라인, 역슬래쉬를 구별해 내는 프로그램을 작성하여라. 이들 중 하나가 입력되면 그것에 대한 설명을 출력하여라.
2. 다음 프로그램이 잘못된 것은 아니지만 숙련된 프로그래머가 작성하는 방식으로 프로그램을 수정해 보아라.
본문내용
t[i]);
printf("\n");
printf(" 정답을 틀린 숫자들 : ");
for(i=0;i
return 0;
}
5. 1에서 100까지 수들을 출력하는 프로그램을 작성하여라. 이떠 한 줄에는 5개의 수만을 출력하고 수들 사이를 탭(tab)간격만큼 띄우라.
#include
int main(void)
{
int i;
for(i=1;i<101;i++){ printf("%d\t",i);
if(i%5==0) printf("\n");
}
return 0;
}
p. 104
1. 영문자의 소문자와 대문자의 ASCII 코드는 서로 32만큼 차이가 난다. 그러므로 소문자를 대문자로 변환하기 위해서 소문자 ASCII 코드에서 32를 뺨면된다. 키보드에서 읽어들인 소문자들을 대문자로 변환하는 프로그램을 작성하여라. 엔터키가 입력되면 프로그램을 종료하여라.
#include
main()
{
char word;
printf("입력하세요 : ");
scanf("%c", &word);
if(word <= 90) word = word +32;
else word = word -32;
printf("%c", word);
return 0;
}
2. 중첩된 if 문을 사용하여, 하나의 수를 입력받아 그 수가 음수, 0, 혹은 양수인가를 구별해 주는 프로그램을 작성하여라.
#include
int main(void)
{
int a;
printf(" 수를 입력하세요 : ");
scanf("%d",&a);
if(a>0) printf(" 입력한 값은 양수입니다.\n");
else if (a<0) printf(" 입력한 값은 음수입니다.\n");
else printf(" 입력한 값은 0 입니다.\n");
return 0;
}
3. 다음은 for 반복문을 적절히 사용한 것인가?
char ch;
ch = 'x';
for( ; ch!=' '; ) ch = getche();
char ch;
ch = 'x';
for( ; ch!=' '; ) ch = getche();
☞for반복문을 쓰는 이유는 초기값이랑 증가연산자 즉, 조건검색변수변환연산 이 필요할때 사용하는것인데 위와같이 쓰려면 for문보단 while문같은 다른 반복문장을 쓰는게 나을듯싶습니다.
즉 불필요한 for문 사용이라 생각됩니다.
4. C에서 무한 반복을 생성하는 일반적인 방법을 보여라.
☞ for( ; ; )statement;
조건검사 부분에 식이 없기 때문에 컴파일러는 항상 참이라고 가정합니다.
5. 3가지 종류의 반복을 사용하여 각각의 반복문에 대하여 1에서 10까지 세는 방법을 보여라.
#include
main()
{
int i, sum = 0;
for(i=1; i<=10; i++){
sum = sum + i;
}
printf("for문 사용 : %d\n", sum);
i = 1; sum = 0;
while(i<=10){
sum = sum + i;
i++;
}
printf("while문 사용 : %d\n", sum);
i = 1; sum = 0;
do{
sum = sum + i;
i++;
}while(i<=10);
printf("do-while문 사용 : %d", sum);
return 0;
}
6. break 문의 역할이 무엇이며, 반복문에서 언제 사용되는가?
☞강제로 반복문에서 벗어나게 해줍니다.
반복문에서 예를들자면,
switch (주머니에 든 금액){
case 500:
버스를 탄다;
break;
case 5000:
택시를 탄다;
default:
걷는다;
}
라는 switch문이 있을 때 break문이 없다면, 주머니에 든 금액이 500일 경우 버스를 탄다를 수행한 다음 계속해서 '택시를 탄다', '걷는다'를 차례대로 수행하게 됩니다. 이를 막기 위해서 실행 지점을 강제로 switch 블록 바깥으로 보내는 break;문을 사용하는 것입니다.
7. 다음 switch 문은 옳은가?
switch(i) {
case 1 : printf("nickel");
break;
case 2 : printf("dime");
break;
case 3 : printf("quarter");
}
☞ case 3 마지막에 break;를 넣거나 case 3를 default 로 대체해 줘야 합니다.
8. 다음의 goto 문은 옳게 사용되었는가?
goto alldone;
.
.
.
alldone
☞ 틀린 문장입니다. alldone 이 아닌 alldone: 이라고 써야합니다.
p. 105
1. switch 문을 이용하여, 키보드에서 문자들을 입력받아 탭, 뉴라인, 역슬래쉬를 구별해 내는 프로그램을 작성하여라. 이들 중 하나가 입력되면 그것에 대한 설명을 출력하여라. 예를 들어
키가 입력되면, tab 이라 출력한다. 사용자가 q를 입력하면 프로그램을 종료시킨다.
#include
int main()
{
char input;
do
{
switch(input=getche())
{
case 13 : printf("New line !!! ");
break;
case '\t' : printf("Tab !!! ");
break;
case '\\' : printf("back slash-.- ");
break;
}
} while(input!='q');
return 0;
}
2. 다음 프로그램이 잘못된 것은 아니지만 숙련된 프로그래머가 작성하는 방식으로 프로그램을 수정해 보아라.
#include
main()
{
int i,j,k;
for(k=0; k<10; k=k+1){
printf("Enter first number: ");
scanf("%d", &i);
printf("Enter second number: ");
scanf("%d", &j);
if(j!=0) printf("%d\n", i/j);
if(j==0) printf("cannot divide by zero\n");
}
}
☞ for(k=0; k<10; k=k+1)에서 k=k+1 대신에 k++ 으로..
마지막 if 대신에 else로 바꾸면 될듯..싶습니다 ..
printf("\n");
printf(" 정답을 틀린 숫자들 : ");
for(i=0;i
}
5. 1에서 100까지 수들을 출력하는 프로그램을 작성하여라. 이떠 한 줄에는 5개의 수만을 출력하고 수들 사이를 탭(tab)간격만큼 띄우라.
#include
int main(void)
{
int i;
for(i=1;i<101;i++){ printf("%d\t",i);
if(i%5==0) printf("\n");
}
return 0;
}
p. 104
1. 영문자의 소문자와 대문자의 ASCII 코드는 서로 32만큼 차이가 난다. 그러므로 소문자를 대문자로 변환하기 위해서 소문자 ASCII 코드에서 32를 뺨면된다. 키보드에서 읽어들인 소문자들을 대문자로 변환하는 프로그램을 작성하여라. 엔터키가 입력되면 프로그램을 종료하여라.
#include
main()
{
char word;
printf("입력하세요 : ");
scanf("%c", &word);
if(word <= 90) word = word +32;
else word = word -32;
printf("%c", word);
return 0;
}
2. 중첩된 if 문을 사용하여, 하나의 수를 입력받아 그 수가 음수, 0, 혹은 양수인가를 구별해 주는 프로그램을 작성하여라.
#include
int main(void)
{
int a;
printf(" 수를 입력하세요 : ");
scanf("%d",&a);
if(a>0) printf(" 입력한 값은 양수입니다.\n");
else if (a<0) printf(" 입력한 값은 음수입니다.\n");
else printf(" 입력한 값은 0 입니다.\n");
return 0;
}
3. 다음은 for 반복문을 적절히 사용한 것인가?
char ch;
ch = 'x';
for( ; ch!=' '; ) ch = getche();
char ch;
ch = 'x';
for( ; ch!=' '; ) ch = getche();
☞for반복문을 쓰는 이유는 초기값이랑 증가연산자 즉, 조건검색변수변환연산 이 필요할때 사용하는것인데 위와같이 쓰려면 for문보단 while문같은 다른 반복문장을 쓰는게 나을듯싶습니다.
즉 불필요한 for문 사용이라 생각됩니다.
4. C에서 무한 반복을 생성하는 일반적인 방법을 보여라.
☞ for( ; ; )statement;
조건검사 부분에 식이 없기 때문에 컴파일러는 항상 참이라고 가정합니다.
5. 3가지 종류의 반복을 사용하여 각각의 반복문에 대하여 1에서 10까지 세는 방법을 보여라.
#include
main()
{
int i, sum = 0;
for(i=1; i<=10; i++){
sum = sum + i;
}
printf("for문 사용 : %d\n", sum);
i = 1; sum = 0;
while(i<=10){
sum = sum + i;
i++;
}
printf("while문 사용 : %d\n", sum);
i = 1; sum = 0;
do{
sum = sum + i;
i++;
}while(i<=10);
printf("do-while문 사용 : %d", sum);
return 0;
}
6. break 문의 역할이 무엇이며, 반복문에서 언제 사용되는가?
☞강제로 반복문에서 벗어나게 해줍니다.
반복문에서 예를들자면,
switch (주머니에 든 금액){
case 500:
버스를 탄다;
break;
case 5000:
택시를 탄다;
default:
걷는다;
}
라는 switch문이 있을 때 break문이 없다면, 주머니에 든 금액이 500일 경우 버스를 탄다를 수행한 다음 계속해서 '택시를 탄다', '걷는다'를 차례대로 수행하게 됩니다. 이를 막기 위해서 실행 지점을 강제로 switch 블록 바깥으로 보내는 break;문을 사용하는 것입니다.
7. 다음 switch 문은 옳은가?
switch(i) {
case 1 : printf("nickel");
break;
case 2 : printf("dime");
break;
case 3 : printf("quarter");
}
☞ case 3 마지막에 break;를 넣거나 case 3를 default 로 대체해 줘야 합니다.
8. 다음의 goto 문은 옳게 사용되었는가?
goto alldone;
.
.
.
alldone
☞ 틀린 문장입니다. alldone 이 아닌 alldone: 이라고 써야합니다.
p. 105
1. switch 문을 이용하여, 키보드에서 문자들을 입력받아 탭, 뉴라인, 역슬래쉬를 구별해 내는 프로그램을 작성하여라. 이들 중 하나가 입력되면 그것에 대한 설명을 출력하여라. 예를 들어
#include
int main()
{
char input;
do
{
switch(input=getche())
{
case 13 : printf("New line !!! ");
break;
case '\t' : printf("Tab !!! ");
break;
case '\\' : printf("back slash-.- ");
break;
}
} while(input!='q');
return 0;
}
2. 다음 프로그램이 잘못된 것은 아니지만 숙련된 프로그래머가 작성하는 방식으로 프로그램을 수정해 보아라.
#include
main()
{
int i,j,k;
for(k=0; k<10; k=k+1){
printf("Enter first number: ");
scanf("%d", &i);
printf("Enter second number: ");
scanf("%d", &j);
if(j!=0) printf("%d\n", i/j);
if(j==0) printf("cannot divide by zero\n");
}
}
☞ for(k=0; k<10; k=k+1)에서 k=k+1 대신에 k++ 으로..
마지막 if 대신에 else로 바꾸면 될듯..싶습니다 ..
소개글