반응형
문제 출처 : YES C (정보공학연구소/생능출판사)
12. scanf_s()를 통해 숫자 2개를 입력받아 사칙연산의 결과를 출력하는 프로그램을 작성하라.
#include <stdio.h> int main() { int num1, num2; printf("첫번째 정수를 입력하세요.: "); scanf_s("%d", &num1); printf("두번째 정수를 입력하세요.: "); scanf_s("%d", &num2); printf("%d + %d = %d \n", num1, num2, num1 + num2); printf("%d - %d = %d \n", num1, num2, num1 - num2); printf("%d * %d = %d \n", num1, num2, num1 * num2); if (num2 != 0) { printf("%d / %d = %f \n", num1, num2, (float)num1 / (float)num2); } else { printf("0으로는 나눌 수 없습니다. \n"); } return 0; }
13. 한 컵(cup)에 8온스(ounce)의 물이 들어간다고 할때 컵의 물을 온스의 단위로 바꾸는 프로그램을 작성하라.
#include <stdio.h> int main() { float input; while (1) { printf("몇 컵인지 입력하세요. (0이하의 수를 입력하면 종료됩니다) : "); scanf_s("%f", &input); if (input <= 0) { return 0; } printf("%.2f컵의 물은 %.2f온스입니다. \n", input, input * 8); } }
14. 다음 프로그램을 if문과 goto문 대신에 적합한 반복문을 사용하여 작성하라.
예제 코드
#include <stdio.h> int main() { int i = 1; jump1: i++; if (i < 10) goto jump1; else printf("i = %d \n", i); }
바꾼 코드
#include <stdio.h> int main() { int i = 1; while (i<10) { i++; } printf("i = %d \n", i); }
15. 다음 두 프로그램의 차이점을 설명하라.
#include <stdio.h> int main() { int i, j, x = 0; printf("i값을 입력하세요 : "); scanf_s("%d", &i); printf("j값을 입력하세요 : "); scanf_s("%d", &j); if (i > 10) { if (j > i) x = j; } else x = i; printf("i = %d, j = %d, x = %d", i, j, x); } // i>10이고 i>j 이면 x에 아무값도 안 들어감.
#include <stdio.h> int main() { int i, j, x = 0; printf("i값을 입력하세요 : "); scanf_s("%d", &i); printf("j값을 입력하세요 : "); scanf_s("%d", &j); if (i > 10) if (j > i) x = j; else x = i; printf("i = %d, j = %d, x = %d", i, j, x); } //i>10이고 i>j일 때만 x에 값이 들어간다.
// ... 이런식으로 코딩하지 맙시다.
16. break문과 continue문의 의미를 예를 들어 설명하라. (생략)
17. 성적을 학점으로 변환하는 프로그램을 if문을 이용하여 작성하라.
#include <stdio.h> int main() { int input; printf("성적을 입력하세요 : "); scanf_s("%d", &input); if (input >= 90) { printf("%d점은 A학점입니다.", input); } else if (input >= 80) { printf("%d점은 B학점입니다.", input); } else if (input >= 70) { printf("%d점은 C학점입니다.", input); } else if (input >= 60) { printf("%d점은 D학점입니다.", input); } else { printf("%d점은 F학점입니다.", input); } }
18. 성적을 학점으로 변환하는 프로그램을 switch-case문과 break문을 이용하여 작성하라.
#include <stdio.h> int main() { int input; printf("성적을 입력하세요 : "); scanf_s("%d", &input); switch (input/10) { case 10 : case 9: printf("%d점은 A학점입니다.", input); break; case 8: printf("%d점은 B학점입니다.", input); break; case 7: printf("%d점은 C학점입니다.", input); break; case 6: printf("%d점은 D학점입니다.", input); break; default : printf("%d점은 F학점입니다.", input); break; } }
//범위를 설정해야하는 것은 switch문을 사용해서 만들기가 은근히 불편하다.
19. 중첩된 if문을 이용하여 하나의 수를 입력받아 그 수가 100보다 큰지 같은지, 작은지를 구별하는 프로그램을 작성하라.
int main() { int input; printf("확인할 수를 입력하세요. :"); scanf_s("%d", &input); if (input >= 100) { if (input == 100) { printf("입력하신 수가 100입니다. \n"); return 0; } printf("%d는 100보다 큰 수입니다. \n", input); } else { printf("%d는 100보다 작은 수 입니다. \n", input); } }
//왜 이 문제에서 중첩 if를 써야 하는것인가. 얼마나 불편한지 경험해보라는건가?
마지막 문제 빡침.
내일로 미룸.
반응형