C과제 10
1. 잘못된 부분을 찾아서 고치고, 이유를 설명하세요.
1)
int num = 128;
char* pNum = #
printf(“%d”, *pNum);
1) int num = 128;
unsigned char* pNum =(unsigned char*)#
printf(“%d”, *pNum);
pNum 이 char 형의 포인터 이므로 &num을 (char *)로 캐스팅 해야한다. Char signed 형일 때는
양수로 +127까지 밖에 표현이 안되므로 undigned 형으로
해줘야한다.
2)
char* pStr = “Control”;
printf(“%s \n”, *pStr);
2)
char* pStr = (char *)“Control”;
printf(“%s \n”, pStr);
pStr가 char 형의 포인터 이므로 “Control”을 (char*)로 캐스팅 해야한다.
printf(“%s
\n”, *pStr); pStr에 Control 이 들어있으므로
가리키는 곳을 출력하지말고
*pStr 대신 pStr로 출력해야함.
2. char형 변수 ch1과 ch2의 데이터를 서로 바꾸는 swap함수를 구현하세요. 변수 ch1에는 ‘A’, 변수 ch2에는 ‘C’가 대입되어 있습니다. Call By Reference(참조에 의한 호출)로 함수를 호출하세요.
출력) Before
: ch1=A, ch2=C
After : ch1=C, ch2=A
#include <stdio.h> |
3. 문자가
숫자인지 알려주는 isdigit 함수를 구현하세요. 문자 ch를 입력 받고, ch가 숫자인지 출력하세요. 맞다면 YES, 아니면 NO를
출력합니다.
출력) 문자 : P
결과 : NO
|
|