본문 바로가기
코스웨어/13년 스마트컨트롤러

5장 연습문제 - 변준식

by 알 수 없는 사용자 2013. 3. 25.
728x90
반응형

1.세 변수를 아래와 같이 설정하여, 변수의 값과 주소를 출력하는 프로그램을 작성하라.
int inumber = 25
float fnumber = 34.5
char ch = 'g'                  


#include <stdio.h>

int main()
{
  int inumber;
  float fnumber;
  char ch;

  inumber=25;
  fnumber=34.5f;
  ch='g';

  printf("변수의 값:%d   주소:%08X\n", inumber, &inumber);
  printf("변수의 값:%.1f 주소:%08X\n", fnumber, &fnumber);
  printf("변수의 값:%c    주소:%08X\n", ch, &ch);

  return 0;
}


 

2-1.위의 세 변수를 가리키는 포인터 변수를 각각 설정하여, 포인터 변수를 이용해서
세 값을 출력하는 프로그램을 작성하라.          



#include <stdio.h>

int main()
{
  int inumber;
  int *ip;
  float fnumber;
  float *fp;
  char ch;
  char *cp;

  inumber=25;
  fnumber=34.5f;
  ch='g';

  ip=&inumber;
  fp=&fnumber;
  cp=&ch;

  printf("출력값:%d\n", *ip);
  printf("출력값:%.1f\n", *fp);
  printf("출력값:%c\n", *cp);

  return 0;
}


 

 
2-2.float형 변수 fnumber를 38.9로 설정한 다음, fnumber의 각 바이트의 내용을 아스키 코드로
출력하라.//한번 해볼 것-문자로 출력 가능하게 할 수 있을 지.      

  
#include <stdio.h>

int main()
{
  float fnumber;
  unsigned char *ucp;

  fnumber=38.9f;
  ucp=(unsigned char*)&fnumber;  

  printf("출력 값:%02X %02X %02X %02X\n", *ucp, *(ucp+1), *(ucp+2), *(ucp+3));

  return 0;
}


 

3.int형의 변수 inumber의 값을 키보드로부터 읽어서 설정한 다음, 포인터 변수를 이용해서
inumber의 값을 두 배로 만들어서 출력하는 프로그램을 작성하라.      


#include <stdio.h>

int main()
{
  int inumber;
  int  *ip;

  fprintf(stdout, "숫자를 입력하세요 : ");
  fscanf(stdin, "%d"&inumber);

  ip=&inumber;

  fprintf(stdout, "결과값은 %d입니다.\n", (*ip)*2);

  return 0;
}


 

4.포인터 변수의 저장 공간의 크기를 출력하는 프로그램을 작성하라.

#include <stdio.h>

int main()
{
  char *cp;
  short *sp;
  int *ip;
  float *fp;

  printf("char의  포인터 변수 저장 크기는%d입니다.\n"sizeof(cp));
  printf("short의 포인터 변수 저장 크기는%d입니다.\n"sizeof(sp));
  printf("int의   포인터 변수 저장 크기는%d입니다.\n"sizeof(ip));
  printf("float의 포인터 변수 저장 크기는%d입니다.\n"sizeof(fp));

  return 0;
}


 

5. 주소값을 저장하는 변수를 (포인터)변수라고 한다.


6. 포인터 변수가 아무 것도 가리키지 않고 있는 것을 
설정할 때는 (NULL)을 넣는다.
  

728x90