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;
}
반응형