프로그래밍 언어에서 여러가지 타입의 기반이 되는 가장 원초적인 데이터 타입을 스칼라(Scalar) 타입이라고 합니다. 예를 들어 int, short, char, float, double등이 C언어의 대표적인 스칼라 데이터 타입입니다. 여러가지 데이터가 모여서 하나의 변수처럼 사용할 수 있는 데이터 타입도 있는데 대표적인 것이 배열(Array)과 구조체(Structure)입니다. 실제 프로그래밍 과정에서도 배열과 구조체 없이는 프로그래밍이 불가능할 정도로 매우 중요한 요소입니다. 배열은 동일한 데이터 타입의 집합으로 각 항목은 첨자(Index)로 접근합니다. int a[10][10]; 처럼 대괄호 속에 배열의 크기를 지정하여 선언하지만 첨자는 0부터 시작하기 때문에 a[0][0]부터 a[9][9]까지 접근..
C언어에서 함수 만큼이나 중요한 요소가 있을까 싶을 정도로 C언어에서 꼭 이해가 필요한 영역입니다. 함수를 사용하기 위해서는 선언(Declaration)과 정의(Definition)가 있어야 하는데 사용할 함수가 동일한 소스 코드에 위치하는 내부 함수의 경우에는 선언부를 생략하고 정의만 하기도 하지만 선언부를 소스 코드 상단이나 헤더 파일에 기술하고 하단부에 함수의 몸체(Body)를 정의하는 방식을 주로 사용합니다. void swap(int *i1, int *i2); int main() { int a = 10; int b = 20; swap(&a, &b); printf("\na = %d , b = %d", a, b); } void swap(int *i1, int *i2) { int tmp; tmp = *..
2015년도 정보올림피아드 지역 예선 문제는 다시 봐도 참 출제를 잘 했다 싶습니다. 틀린 문제를 통해서도 중요한 학습을 하게 할 뿐만아니라 출제된 문제들을 통해서 C언어의 주요한 부분을 만날 수 있기 때문입니다. 이번에는 C언어의 기본 문법에 대한 문제들을 다루어 볼까 합니다. 18. 다음 중 변수의 이름으로 사용할 수 없는 것은? ① thisway ② int_char ③ star*star ④ that_way ⑤ _6_ 위의 문제는 C언어의 변수명 작성 규칙을 다룬 것으로 아래와 같이 아주 단순합니다. 변수명으로 사용할 수 있는 문자는 영문 대문자(A~Z), 소문자(a~z), 숫자(0~9), 그리고 언더스코어(_) 입니다.사용 가능한 문자 이외의 어떠한 문자도 사용할 수 없습니다(공백등의 특수 문자도 ..
이번 문제는 간단하지만 얕보다가 당할 수 있는 그러한 문제입니다. for문의 동작 원리를 아주 명쾌하게 습득 할 필요가 있습니다. 17. 다음 프로그램이 출력하는 값은? int t, i; t = 0; for (i = 0; i < 10; i++) { t++; } printf("%d %d\n", t, i); ① 10 10 ② 9 11 ③ 10 9 ④ 9 10 ⑤ 11 9 for (시작 표현식; 비교 표현식; 증분표현식) 문장 for 문법에 대해서는 "올림피아드 기출문제로 배우는 C언어 - 기본 문장"에서 많은 부분을 언급했으므로 언급하지 않은 부분, 유의할 부분을 다루겠습니다. 위의 문제에서 루프 반복 여부 검사에 사용하는 변수는 i이고 t 변수를 통해서 루프의 수행 회수를 카운트 하고 있습니다. 앞서 다룬..
정보올림피아드에 출전하고 싶은 자녀를 둔 부모 입장에서 지역 예선 기출문제를 받아보면 어떻게 도와주어야 할지 난감한 것이 사실입니다. 2014년도까지만 해도 이건 진짜 천재들이나 풀수있겠다 싶은 문제들만 수두룩했습니다. 그런데, 2015년 기출문제를 살펴보니 이제 C언어를 기초부터 탄탄한게 준비하고 집중력있게 사고력을 키운 친구들이라면 충분히 풀수 있는 문제들도 많이 출제되었습니다. 맞는 방향이 아닌가 싶습니다. 2016년의 출제 방향이 어떻게 바뀔지 모르겠지만 C언어 하나라도 제대로 공부한 사람인지를 검증하고 사고력을 묻는 문제들이 지속적으로 출제되었으면 하는 바램입니다. 그래야 경진대회를 준비하는 과정이 의미있고, 탈락한 친구들도 C언어 하나는 확실하게 익힐 수 있으니 말입니다. 이런 배경하에 201..