저번 모임이 이루어지지 못하여서 우선 문제를 올려봅니다.
본격적인 진도를 나가기 앞서서 포인터 부분을 검사해봅시다.
너무 쉽다 싶으면 다음 문제로 넘어가주세요.
진도를 나가기 위해서 이 정도는 알아두셔야한다고 생각되는 간단한 문제들로 구성했습니다.
답안 작성은 이 곳으로 ... -> http://shiena.nazzim.net/bbs/zboard.php?id=algo
1. 다음 소스들을 작성하여 컴파일해보시고 이해하시는 지 확인하세요.
1)
#include "stdio.h"
void main()
{
int *p, q;
p = &q;
printf("%d", *p);
}
2)
#include "stdio.h"
void main()
{
float *p, q;
p = &q;
*p = 199.34;
printf("%f", q);
}
2. 다음 소스는 무엇이 잘못되었는 지 찾아보세요. ( i 값을 8배 하려고 할 경우에 .. )
int *p, i;
p = &i;
p = p * 8;
3. for 반복문을 사용하여 0에서 9까지의 수를 화면에 출력하는 프로그램을 작성하세요.
이때, 포인터를 사용하여서 수들을 출력하세요.
4. 세 개의 문자형 포인터를 생성하여, 첫번째 포인터는 'one', 두번째 포인터는 'two'
세번째 포인터는 'three' 를 가리키도록 초기화하는 프로그램을 작성하세요.
5. 다음 소스에서 'this'의 'i'에 접근하는 방법 2가지를 선보이세요.
char *p, str[80] = "this is a test";
p = str
6. 다음 소스의 결과를 예상해보세요.
#include "stdio.h"
void main()
{
int *p, q[2] = { 2, 4, 8 } ;
p = q;
printf("%d", *p++);
printf("%d", ++(*p));
}
7. 다음 소스의 결과물이 6이 나오도록 포인터의 증감연산을 사용해서 ????을 채우세요.
#include "stdio.h"
void main()
{
int *p, q[2] = { 3, 5, 8 } ;
p = q;
printf("%d", ?????);
}