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

연습문제 20130322 - 전영기

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

1.

세 변수를 아래와 같이 작성하여, 변수의 값과 주소를 출력하는 프로그램을 작성하라.

int iNumber = 25

float fNumber34.5

char ch = 'g'

 

Answer

 

소스코드

#include<stdio.h>

int main()
{
  int iNumber;
  float fNumber;
  char ch;

  iNumber = 25;
  fNumber = 34.5;
  ch = 'g';

  printf("iNumber의 값     : %d\n", iNumber);
  printf("iNumber의 주소   : %08X\n"&iNumber);
  printf("fNumber의 값     : %f\n", fNumber);
  printf("fNumber의 주소   : %08X\n"&fNumber);
  printf("ch     의 값     : %c\n", ch);
  printf("ch     의 주소   : %08X\n"&ch);

  return 0;
}

 

 

 

 

2.

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

 Answer

소스코드

#include<stdio.h>

int main()
{
  int iNumber;
  float fNumber;
  char ch;
  int *ipNumber;
  float *fpNumber;
  char *chp;

  iNumber = 25;
  fNumber = 34.5;
  ch = 'g';

  ipNumber = &iNumber;
  fpNumber = &fNumber;
  chp = &ch;

  printf("*ipNumber = %d\n", *ipNumber);
  printf("*fpNumber = %f\n", *fpNumber);
  printf("*chp      = %c\n", *chp);

  return 0;
}

 

 

2-2.

 float 형 변수 fnumberfmf 38.9로 설정한 다음, fnumber의 각 바이트의 내용을 아스키 코드로 출력하라.

//한번 해볼 것 - 문자로 출력 가능하게 할 수 있을 지.

 Answer

위 16진수는 아스키 출력 아래는 문자 출력

소스코드

 

#include<stdio.h>

int main()
{
  float fNum;
  unsigned char *cp;

  fNum = 38.9f;

  cp = (unsigned char*)&fNum;

  printf("%02X %02X %02X %02X\n", *(cp + 0), *(cp + 1), *(cp + 2), *(cp + 3));  //아스키코드
  printf("%2c %2c %2c %2c\n", *(cp + 0), *(cp + 1), *(cp + 2), *(cp + 3));    //문자출력

  return 0;
}

3.

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

 

answer

 

소스코드

#include<stdio.h>

int main()
{
  int iNumber;
  int *ipNumber;

  printf("숫자를 적으세요~! ");
  scanf("%d"&iNumber);

  ipNumber = &iNumber;

  printf("iNumber = %d\n", *ipNumber * 2);

  return 0;
}

 

 

4.

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

 

Answer

ipNum = int

cpNum = char

spNum = short

fpNum = float

dpNum = double

포인터의 크기는 모두 같다.

 

소스코드

#include<stdio.h>

int main()
{
  int iNum;
  int *ipNum;
  char cNum;
  char *cpNum;
  short sNum;
  short *spNum;
  float fNum;
  float *fpNum;
  double dNum;
  double *dpNum;

  ipNum = &iNum;
  cpNum = &cNum;
  spNum = &sNum;
  fpNum = &fNum;
  dpNum = &dNum;

  printf("size ipNum = %d\n"sizeof(ipNum));
  printf("size cpNum = %d\n"sizeof(cpNum));
  printf("size spNum = %d\n"sizeof(spNum));
  printf("size fpNum = %d\n"sizeof(fpNum));
  printf("size dpNum = %d\n"sizeof(dpNum));

  return  0;
}

 

 

5.

 주소값을 지정하는 변수를 ________ 변수라고 한다.

답 : 포인터

 

6.

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

답 : 주소값

728x90