C/C
정리
2017. 10. 23. 20:00반응형
1번
값에 의한 호출 함수와 참조에 의한 호출함수를 구분하여 설명하시오
정답:
(책394)
값에 의한 호출 함수(Call by value)
함수를 호출할 때 매개체가 값만 필요로 하기 때문에 그 값을 그대로 메모리의 새로운 영역에 복사하여 사용하는 함수
참조에 의한 호출 함수(Call by reference
함수를 호출할 때 값 대신에 주소를 넘겨주어 원본 그대로 함수 내에서 조작하기위한 함수
2번
for-while 바꾸기
정답
for문
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include<stdio.h> int main(void) { int i; for (i = 0; i < 5; i++) { printf("for %d번 실행\n", i); } printf("\n"); return 0; } | cs |
while문
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include<stdio.h> int main(void) { int j; j = 0; while (j < 5) { printf("%d번 실행\n", j); j++; } } | cs |
실행결과를 보자
for와 while을 쉽게 바꾸는 방법은!
for( i = 0 ; i < 5 ; i++)안의 3가지 i=0, i<5, i++를 while에 각각 위, 조건부분, 블록의 마지막에 배치시켜두면된다
3번
if elseif else문을 switch문으로 바꾸어보아라. a면 a입니다. b면 b입니다. 그밖의 문자라면 다른문자라고 출력하시오
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include<stdio.h> int main(void) { char in; scanf("%c", &in); if (in == 'a') { printf("a입니다\n"); } else if (in == 'b') { printf("b입니다\n"); } else { printf("다른 문자입니다\n"); } } | cs |
정답
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include<stdio.h> int main(void) { char in; scanf("%c", &in); switch (in) { case 'a': printf("a입니다\n"); break; case 'b': printf("b입니다\n"); break; default: printf("다른 문자입니다\n"); } } | cs |
4번
if elseif else문을 switch문으로 바꾸어보아라.
단 점수가 90점 이상이면 A, 80점 이상이면 B, 그미만이면 C를 출력하시오
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include<stdio.h> int main(void) { int input; scanf("%d", &input); if (input >= 90 && input <= 100) { printf("90점 이상 A\n"); } else if (input >= 80) { printf("80점 이상 B\n"); } else { printf("그미만 C\n"); } } | cs |
switch 정답
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include<stdio.h> int main(void) { int input; scanf("%d", &input); input = input / 10; // 이렇게하면 십의자리 숫자만 나올 것이다. switch (input) { // case 10에 break를 안주게되면 input이 10일때 break를 만날때 까지 실행한다 // 따라서 input이 10일때 90점이상이 출력된다. case 10: case 9: printf("90점 이상 A\n"); break; case 8: printf("80점 이상 B\n"); break; default: printf("그미만 C\n"); } } | cs |
5번
다음출력결과 쓰시오
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include<stdio.h> int main(void) { int a = 0; int b = 1; printf("%d\n", a++); printf("%d\n", a++); b = a++; printf("%d\n", a); printf("%d\n", b); printf("%d\n", ++a); } | cs |
정답
풀이 :
++이 뒤에 있는 경우(a++)는
문장의 끝 (세미콜론 ;)를 만나기 전까지는 원래의 값을 유지하고, 문장이 끝나면 그떄 1이 증가한다.
즉 첫번째 출력 후 1이 증가될 것이다.
첫번쨰 출력 -> 0 출력 후 a = 1;
두번째 출력 -> 1 출력 후 a = 2;
b = a++;도 마찬가지이다. ++은 세미콜론을 지나야 1이 증가된다. 현재는 a가 2이므로 b = 2가 되고, a = 3이 된다.
a = 3, b = 2 이다.
세번째 출력 -> 3 ( a = 3이므로)
네번째 출력 -> 2 ( b = 2이므로)
++a는 먼저 1 증가시킨다음에 a를 나타낸다.(a++과 다르다) 즉 a = 3이었으므로 먼저 1 증가시키어 a = 4가 된다.
다섯번째 출력 -> 4 ( a = 4 이다.)
반응형
'C > C' 카테고리의 다른 글
[C] Error 상수 error.h (0) | 2021.06.08 |
---|---|
Char형 문자열 배열을 HEX dump 뜨기 (0) | 2021.05.12 |
[C 언어] 객체 지향 C 스타일 (Object Oriented C programming style) (0) | 2020.04.21 |
초간단 static 변수 이해하기 (0) | 2017.10.19 |
전역변수와 void함수 이해하기 (0) | 2017.10.19 |