본문 바로가기

C언어/과제

C언어 과제 10

1. 잘못된 부분을 찾아서 고치고, 이유를 설명하세요.

1)  int num = 128;

    char* pNum = #

    printf(“%d”, *pNum);

 

  int num = 128;

    unsigned char* pNum = (unsigned char*)#

    printf(“%d”, *pNum);

    num int형변수이기 때문에 캐스팅을 해주기위해 (unsigned char*)를 입력해준다.

    int형은 128(4byte) char(2byte)에 대입시켜주면 -128이 되기 때문에 정수형으로 바꿔주기위해

    포인트변수앞에 unsigned를 입력해준다.

 

2)  char* pStr = “Control”;

    printf(“%s \n”, *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>

char swaps(char *a);

int main()
{
  
char ch1,ch2;
  
char *swap;
  
char cnum1,cnum2;
  
  fprintf(stdout, 
"Character Key Input : ");
  fscanf(stdin, 
"%c %c"&ch1, &ch2);
  
  cnum1
=swaps(&ch2);
  cnum2
=swaps(&ch1);
  
  fprintf(stdout, 
"Before : ch1=%c, ch2=%c\n", ch1, ch2);
  fprintf(stdout, 
"After  : ch1=%c, ch2=%c\n", cnum1, cnum2);
  
return 0;
}

char swaps(char *a)
{
  
char *swap;
  swap
=a;
  
return *swap;
}

3. 문자가 숫자인지 알려주는 isdigit 함수를 구현하세요. 문자 ch를 입력 받고, ch가 숫자인지 출력하세요. 맞다면 YES, 아니면 NO를 출력합니다.

출력)    문자 : P

           결과 : NO

 

 

#include <stdio.h>

int main()
{
  
char ch;

  fprintf(stdout, 
"문자나 숫자를 입력하시오 : ");
  fscanf(stdin, 
"%c"&ch);

  
if((65<=ch)&&(122>=ch))
  {
    fprintf(stdout, 
"문자 : %c\n결과 : No", ch);
  }
  
else
  {
    fprintf(stdout, 
"숫자 : %d\n결과 : Yes", ch-48);
  }  
  
return 0;
}


'C언어 > 과제' 카테고리의 다른 글

불러온 파일 Hexacode 보여주기  (0) 2010.12.09
C언어 과제 11  (0) 2010.10.27
C언어 과제 09  (0) 2010.10.25
C언어 과제 08  (0) 2010.10.25
C언어 도전과제 01 (소수와 합성수를 판단하여라)  (0) 2010.10.20