본문으로 바로가기

  

 

문제1)
포인터에 대한 설명으로 올바르지 않은 것은?
가. 메모리를 정적으로 할당 받을 수 있다.
나. 포인터는 변수의 주소값을 데이터로 갖는다.
다. 데이터에 대한 접근이 다른 방법보다 빠르다.
라. 포인터는 배열의 요소를 다룰 수 있다.

 

문제2)
다음 프로그램의 실행 결과는?

#include <stdio.h>

void main()
{
	static int a[] = { 10, 20, 30, 40, 50 };
	int *pt, b, c;
	pt = a;
	b = *pt + *(pt + 2);
	pt = pt + 2;
	c = *pt + *(pt + 2);
	printf("b=%d, c=%d", b, c);
}

답 : b=40, c=80

 

문제3)
다음과 같은 배열을 선언할 때, 배열의 크기는 어떻게 되는가?

char name[] = "HONG GIL DONG"

답 : 13

 

문제4)
배열과 포인터의 관계에서 int pt[a]로 선언했을 경우, pt[a-1]과 동등한 것을 골라라.
가. *(pt)-1
나. *(pt)+a-1
다. *(pt+a)-1
라. *(pt+a-1)

 

문제5)

다음은 배열과 포인터에 대한 설명이다. 잘못된 것은?
가. 배열과 포인터는 서로 호환적이다.
나. 배열과 포인터는 모두 기억공간을 동적으로 활용한다.
다. 배열명은 포인터로서 포인터 상수이다.
라. 포인터는 배열에 비해 기억공간의 활용이 보다 효율적이다.

 

문제6)
다음 프로그램의 결과로 올바른 것은?

#include <stdio.h>

void main()
{
	char str[][15] = { "Load", "Save", "Tool", "Unit" };
	int i;
	for (i = 0; i < 3; i++)
		printf("%s", str[i]);
}

답 : Load Save Tool

 

문제 7)
다음과 같은 배열이 선언되어 있을 때 *(cp+3)의 값은?

char *cp, s[ ] = "computer";
      cp = s;

답 : p

 

문제8)
다음과 같은 배열선언에서 초기화 값은?

int array[3] = {10, 20, };

답 : array[0] = 10, array[1] = 20, array[2] = 0