목록C언어/문제 정리 (13)
Taek
1. t를 type으로 바꿔주면 안좋은 기법은 맞다. 만약 a의 type을 int에서 double로 바꾼다면 다시 한 번 손이 가야하므로 유지보수하는데 어려움을 겪는다. 2. char형은 c 컴파일러에서 int형 정수로 취급받는다. 그리고 ASCII 코드 기준으로 0부터 9까지는 48부터 57까지이다. 따라서 char형 c를 '9'로 만들면 0에서 56까지 인덱스를 가지는 배열이 만들어진다. #include int main(void){ char c = '9'; int arr[c]; for(int i = 0; i < '9'; ++i){ arr[i] = 0; } arr[c-'4'] = 4; printf("c - '4' : %d\n",arr[c-'4']); printf("c - '1' : %d\n", arr[..
1. #include int main(void){ long i , n; printf("This program prints a table of squares.\n"); printf("Enter number of entries in table: "); scanf("%d", &n); for(i = 1; i < n; ++i) printf("%10d%100d\n",i, i*i); return 0;} // short형에선 short가 가지는 최대 값인 32767까지 입력된다. overflow는 implicit conversion에 의해 int형으로 변환되어 발생하지 않는다.// int형에선 overflow가 43641부터 발생하기 시작함.// long형에선 64bit 컴퓨터임에도 int와 똑같은 값에서 overfl..
1.a) 7 * 8 + 7 = 63b) 16 * 7 + 7 = 119c) 10 * 16 * 16 + 16 * 11 + 12 = 2748 2. d) a), b), e)는 floating을 표현하는 방식이다. c)는 8진법으로 정수를 표현하는 방식이고d)는 없는 방법. 3. b) short형은 short int로 정수형이다. float은 실수형이라 없는 type이다. 4. d)printf는 conversion specification을 맞춰서 유연하게 쓸 수 있지만, 특정 문자를 출력하긴 불가능하다. 단, 문자열은 출력할 수 있다. 문자와 문자열은 뒤에 나오게 된다. 5. b) C언어는 2진법을 직접 사용할 수 없다. 1000001이 65라도 C에서 허용하지 않아서 오답.a) A는 65이다. a는 97c) ..
1.#include int main(void){ float largest, input_number ; input_number = 0.0f; largest = 0.0f; while(1){ printf("Enter a number: "); scanf("%f", &input_number); if(input_number == 0.0f) break; if(largest < input_number) largest = input_number; } printf("The largest number entered was %.3f\n", largest); return 0;} 2.#include int main(void){ printf("Enter two integers: "); int num1, num2; scanf("%d..
1. 1 2 4 8 16 32 64 128 2. 9384 938 93 9 0 3. 5 4 3 2 4. c) 탈출 조건문 안에 i++라서 다르다.printf("%d ", i);로 만들어보면 a) b)는 0 1 2 3 4 5 6 7 8 9이지만 c)는 검사한 뒤 1을 증가시키기 때문에 1 2 3 4 5 6 7 8 9 10이 된다. 5. c)while문과 for문은 조건(terminate condition)식을 검사한 뒤 실행한다. 그러나 do~while문은 무조건 한 번은 실행한다. 6. for(int i = 1 ; i 0; i /= 10){printf("%d ", i); } 8. 10 5 3 2 1 ..
1.#include int main(void){ printf("Enter a number: "); int number; scanf("%d", &number); int count = 0; int temp = number; for(count = 0; temp != 0; ++count){ temp /= 10; } printf("The number %d has %d digits\n", number, count); return 0;} 2.#include int main(void){ printf("Enter a 24-hour time : "); int hour, minute; scanf("%2d:%2d", &hour, &minute); printf("Equivalent 12-hour time : "); if(hou..
1. a) 1.k = (i * j == 6);으로 바뀌어 동등한지 판단한 후 1이 반환된다.b) 1비교 연산자끼리니 왼쪽부터 차례대로 계산된다.(k > i) 1, 나머지는 생략 4. 간단한 단일 표현식 작성하기.조건 ) i가 j보다 작으면 -1, 같으면 0, i가 크면 1(i > j) - (j =1이 어떤 값이던 간에 =0에 의해 1이 반환되어 i값인 17을 반환한다. -17일 경우에 -17 >= 0에 의해 0이 반환된다. 따라서 -i값을 반환하는데, -(-17)이라 17을 반환한다. 8. ( (13
1. #include int main(void){ int number; printf("Enter a two-digit number: "); scanf("%2d", &number); int num1 = (number / 10); int num2 = (number % 10); printf("The reversal is : %1d%1d\n", num2, num1); return 0;} 2. #include int main(void){ int number; printf("Enter a three-digit number: "); scanf("%3d", &number); int num1 = (number / 100); int num2 = ( (number / 10) - ( num1 * 10) ); int num3 ..
1. a) 1 2 b) 0 c) 동일한 계산순서를 가질 경우엔 왼쪽부터가 기준이다. 17 % 9 / 8이고 다시 8 / 8이니 정수형 출력은 1이 된다. d) 6 % 4 / 3으로 변하고 다시 1/3으로 바뀌어 0이 출력된다. 2. 같은 값이 된다. 단, i와 j가 양수라는 가정하에 unary 연산자가 적용되어 -로 바뀌니 같은 것이지, 기본적으로 산수와 같다. 3. /와 % 연산자는 C89와 C99가 약간 다르다. C89는 /연산에서 피연산자 중 하나가 음수값이면 결과값은 반올림된다. %연산에서 피연산자 둘 다가 음수값이면 OS에 따라서 결과값이 바뀐다.(implementation-defined) C99는 / 연산에서 결과값이 항상 0으로 잘리게 된다. %연산에서 i % j 는 i와 같은 부호로 남는 ..
1. #include int main(void){ int year, month, day; printf("Enter a date (mm/dd/yyyy) : "); scanf("%d/%d/%d",&month,&day,&year); printf("You entered the date %d%.2d%d\n",year,month,day); return 0;} 2. #include int main(void){ int item, year,day,month; float price; printf("Enter item number: "); scanf("%d", &item); printf("Enter unit price : "); scanf("%f", &price); printf("Enter purchase date (mm/..