본문 바로가기
IT/프로그래밍

쉽게 풀어 쓴 C언어 Express 12장 Exercise 문제

by nutrient 2020. 12. 7.
728x90
728x170

 

 

 

쉽게 풀어 쓴 C언어 Express 12장 Exercise 문제

 

1.

(a) strcat()

(b) strcpy()

(c) strtok()

(d) gets()

(e) strlen()

 

2.

(a) '?'을 “?”로 변경

(b) if( strcmp(s, "value")==0 )

(c) strcpy(a, "Hello World!");

 

3. s1이 가리키는 것은 문자열 상수로서 더 이상의 추가 공간을 가지고 있지 않기 때문에

s2가 가리키는 문자열을 저장할 수 없다. 수정한 결과는 다음과 같다. 

char s1[20] = "Hi! ";

char *s2 = "Programmers";

strcat(s1, s2);

 

4. 첫번째 문장에서는 문자 배열이 선언되고 문자 배열의 초기값이 "Hello World!"가 된다. 두 번째 문장에서는 읽기 전용 메모리에 문자열 상수가 저장되고 이 문자열 상수의 주소가

포인터 p에 대입된다.

 

5. (4)

 

6. 문자형 포인터 p가 초기화가 되어 있지 않다. 따라서 p가 가리키는 곳에 문자열을 저장

할 수 없다. 올바르게 수정하면 다음과 같다.

int main(void) {

char p[100];

scanf("%s", p);

}

 

7.

(a) 4 바이트 (b) 하나의 포인터가 생성되므로 4 바이트

(c) 10 바이트 (d) 20바이트

 

8. (a) “HIGH” (b) ‘D’ (c) “HIGH”

 

9.

o

lo

llo

ello

Hello

계속하려면 아무 키나 누르십시오 . . .

 

10.

mystery()는 s1과 s2가 같으면 0을 반환하고 다르면 1을 반환한다. mystery("abc", "abd")와

같이 호출하면 1이 반환된다.

728x90
그리드형

댓글