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

5장 연습문제_진종영

by 알 수 없는 사용자 2013. 3. 22.
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("inumber 값 : %d\n주소 : %08X\n\n", inumber, &inumber); 
  printf("fnumber 값 : %f\n주소 : %08X\n\n", fnumber, &fnumber);
  printf("ch 값 : %c\n주소 : %08X\n\n", ch, &ch);
  

  return 0;

}

 

 

     2.  세변수를 가리키는 포인터 변수를 각각 설정하여, 포인터 변수를 이용해서

        세값을 출력하는 프로그램을 작성하라.

 int inumber = 25
 float fnumber = 34.5
 char ch = 'g'

#include <stdio.h>

int main()
{
  int inumber;
  float fnumber;
  char ch;
  
  int *ip;
  float *fp;
  char *cp;
  
  inumber = 25 ;
  fnumber = 34.5f;
  ch = 'g';
  
  ip = &inumber;
  fp = &fnumber;
  cp = &ch;
    

  printf("inumber 값 : %d\n주소 : %08X\n\n", *ip, ip); 
  printf("fnumber 값 : %f\n주소 : %08X\n\n", *fp, fp);
  printf("ch 값 : %c\n주소 : %08X\n\n", *cp, cp);
  

  return 0;
}
 

 

 

3.  float 형 변수 fnumber를 38.9로 설정한 다음, fnumber의 각 바이트의 내용을

    아스키코드로 출력하라.

#include <stdio.h>

int main()
{
  float fnumber;
  char ch;
  int iCnt;
  unsigned char *cp;
  iCnt = 0;
  fnumber = 38.9f;
    
  cp =(unsigned char * )&fnumber;
    
  ch =(char)*(cp+iCnt);
  
  printf("%02X %02X %02X %02X\n", *cp, *(cp+1), *(cp+2), *(cp+3)); 
  printf("%c %c %c %c\n", *cp, *(cp+1), *(cp+2), *(cp+3)); 
  

  return 0;
}
  

 

   

     4.  int형의 변수 inumber의 값을 키보드로부터 읽어서 설정한 다음, 포인터 변수를 이용해서

     inumber의 값을 두 배로 만들어서 출력하는 프로그램을 작성하라.

#include <stdio.h>

int main()
{
  int inumber;
  int *ip;
  
  printf("정수를 입력하시오 : ");
  scanf("%d"&inumber);

  ip = &inumber;

  printf("입력된 정수의 두배 : %d\n", (*ip)*2); 


  return 0;
}
 

 

 

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

#include <stdio.h>

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

  printf("int *ip의 저장 공간 : %d byte\n"sizeof(ip));
  printf("short *sp의 저장 공간 : %d byte\n"sizeof(sp));
  printf("char *cp의 저장 공간 : %d byte\n"sizeof(cp));
  printf("float *fp의 저장 공간 : %d byte\n"sizeof(fp));
  printf("double *dp의 저장 공간 : %d byte\n"sizeof(dp));

  return 0;
}
 

 

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

 

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

728x90