정보처리기사/[흥달쌤] 실기_깨알 C언어

C언어 특강 / 21. 배열(1),(2), 23. 포인터, 24. scanf와 변수

web_seul 2022. 5. 9. 18:32
반응형

21. 배열(1)

* 배열이란? 같은 자료형의 변수를 연속적으로 묶어놓은 저장공간

* 배열의 선언

* 이차원배열 : 같은 자료형의 변수를 행과 열의 연속적인 공간으로 묶어놓은 것

 

문) 다음 C프로그램의 출력 결과는?

void main(){
  char msg[50] = "Hello World! God Luck!";
  int i = 2, number = 0;
  while( msg[i] != 'i' ){	//같지 않을 때 참이 됨
    if( msg[i] == 'a' || msg[i] == 'e' || msg[i] == 'i' || msg[i] == 'o' || msg[i] =='u' )
       number++;
    i++;
  }
  printf("%d", number);	//i=2~11에서 a,e,i,o,u와 일치하는 글자의 갯수
  return 0;
}

 

22. 배열(2)

문) 다음 C프로그램을 실행한 결과로 옳은 것은?

void main(){
  int i;
  char ch;
  char str[7] = "nation";
  for( i=0; i<4; i++ ){
    ch = str[5-i];
    str[5-i] = str[i];
    str[i] = ch;	//수학적 알고리즘(빈 변수를 활용하여 맞교환)
  }
  printf("%s\n", str);	//notian
  return 0;
}

 

23. 포인터

* 포인터란? 메모리의 위치를 표현한 기호

* 포인터 변수 선언

int *a;
*a = 10;		//a의 값(ex.102)에 10 설정
printf("%d", a);	//102
printf("%d", *a);	//10

* 변수의 주소찾기

int b = 10;
int *a;
a = &b;			//b의 주소값 (ex.102)
printf("%d\n", *a);	//a의 값, 10
printf("%d\n", b);	//10

 

문) 다음 C프로그램의 출력값은?

#include<stdio.h>
void main(){
  int A = 10, B;
  int *C = &B;
  
  B = A--;	//B=10, A=9
  B += 20;	//B=20+B=20+10=30
  printf("%d", *C);	//30
}

 

24. scanf와 변수

#include<stdio.h>로 선언을 했으므로 scanf, printf 를 사용 가능

* scanf : 사용자의 키보드로 입력받을 때 사용하는 함수

  형식 : scan*"%d", 변수의 주소);

* scanf 사용법

  int a;

  scanf("%d", &a);

  printf("%d", a);

 

문) 다음 C프로그램을 실행한 결과로 옳은 것은? (단, 아래의 scanf() 함수의 입력으로 90을 타이핑했다고 가정)

int main(){
  int i = 10;
  int j = 20;
  int *k = &i;
  
  scanf("%d", k);
  printf("%d, %d, %d\n", i, j, *k);
  return 0;
}

 

반응형