287번 4번
다음 c언어 프로그램이 실행되었을 때의 결과는?
#include
#include
int main(void) {
char str[50] = "nation";
char *p2 = "alter";
strcat(str, p2);
printf("%s", str);
return 0;
strcat(문자열A,문자열B) 문자열A 뒤에 문자열B를 연결하여 붙이는함수라고 해설에 되어있는데
함수약자를 str따서 출력하는건가요 아니면 str+p2 합쳐져서 str배열에 p2가 붙어서 그냥 str배열로 합쳐져서 str을 출력한다는뜻인지 궁금한가봐요.
287번 5번
c언어에서 b[5]의 값은?
static int b[9] = {1,2,3};
static int b[5]={0} << 배열의 크기보다 적은수로 초기화하면 입련된값만큼 지정한 숫자가 지정이 된다고해설에나와있습니다.
char 배열이름[크기] = "문자열"
배열크기값 5, 나머지 요소 문자열은 {0}이 맞는지 질문드려도될까요?
문제2번
Public class ovr {
public static void main (string[] args) {
int arr[];
int i = 0;
arr = new int[10];
arr[0] = 0;
arr[1] = 1;
while(i < 8) {
arr[i + 2] = arr[i + 1] + arr[i];
i++;
}
System.out.println(arr[9]);
}
}
arr[i + 2] = arr[i + 1] + arr[i]; >> i가 0일때 arr[2] = arr[1]+arr[0] >> arr[3]인가요?
arr[0 + 2] = arr[0 + 1] + arr[0];
i++; >> i = i + 1; 이라고 해설 되어있는데 i가 1증가하면
arr[1 + 2] = arr[1 + 1] + arr[1]; >> i가 0일때 arr[3] = arr[2]+arr[1] >> arr[6]인가요?
배열 3번방부터 2,3,5,8,13,21,34 숫자늘어나는부분 자세히 설명부탁드려도될까요?
안녕하세요 길벗수험서 운영팀입니다.
287페이지 4번 문제 답변
char str[50] = "nation";
char *p2 = "alter";
strcat(str, p2); 이 식에서 str은 배열의 이름을 쓴것으로 str배열에 저장되어 있던 문자 뒤에 p2변수의 값을 연결하여 붙이라는 것으로
nation과 alter를 연결하여 붙이기 때문에 nationalter가 정답으로 나오는것입니다
287페이지 5번 문제 답변
해당 교재 283페이지에 자세히 설명이 되어있습니다.
286페이지 2번 문제 답변
arr[0] = 0;
arr[1] = 1;
위의 코드에서 arr배열의 0번위치에 0을, 1번위치에 1을 초기값으로 넣고 시작을 합니다
i가 0일때 arr[i + 2] = arr[i + 1] + arr[i] 식에 대입을 시키면 arr[2] = arr[1]+arr[0] 됩니다.
arr[2] = arr[1]+arr[0] 이식은 arr배열의 1번 위치의 값과 arr배열의 0번 위치의 값을 서로 더해 arr[2] 에 대입을 하라는것입니다.
arr배열의 1번위치에 0이 들어있고, 0번위치에 1이 들어있으니 1 + 0을 하면 1이 나오고 이 값을 arr[2], arr배열의 2번위치에 1을 넣습니다.
이후 i++를 만나 i값은 1이 될것이고 반복하기 위해 while문으로 올라갑니다.
i가 1일때 arr[i + 2] = arr[i + 1] + arr[i] 식에 대입을 시키면 arr[3] = arr[2]+arr[1] 됩니다.
arr[3] = arr[2]+arr[1] 이식은 arr배열의 2번 위치의 값과 arr배열의 1번 위치의 값을 서로 더해 arr[3] 에 대입을 하라는것입니다.
arr배열의 2번위치에 1이 들어있고, 1번위치에 1이 들어있으니 1 + 1을 하면 2가 나오고 이 값을 arr[3], arr배열의 3번위치에 2를 넣습니다.
이후 i++를 만나 i값은 2가 될것이고 반복하기 위해 while문으로 올라갑니다.
i가 2일때 arr[i + 2] = arr[i + 1] + arr[i] 식에 대입을 시키면 arr[4] = arr[3]+arr[2] 됩니다.
arr[4] = arr[3]+arr[2] 이식은 arr배열의 3번 위치의 값과 arr배열의 2번 위치의 값을 서로 더해 arr[4] 에 대입을 하라는것입니다.
arr배열의 3번위치에 2가 들어있고, 2번위치에 1이 들어있으니 2 + 1을 하면 3이 나오고 이 값을 arr[4], arr배열의 4번위치에 3을 넣습니다.
이후 i++를 만나 i값은 3이 될것이고 반복하기 위해 while문으로 올라갑니다.
i가 3일때 arr[i + 2] = arr[i + 1] + arr[i] 식에 대입을 시키면 arr[5] = arr[4]+arr[3] 됩니다.
arr[5] = arr[4]+arr[3] 이식은 arr배열의 4번 위치의 값과 arr배열의 3번 위치의 값을 서로 더해 arr[5] 에 대입을 하라는것입니다.
arr배열의 4번위치에 3이 들어있고, 3번위치에 2가 들어있으니 3 + 2을 하면 5가 나오고 이 값을 arr[5], arr배열의 5번위치에 5를 넣습니다.
이후 i++를 만나 i값은 4가 될것이고 반복하기 위해 while문으로 올라갑니다.
i가 4일때 arr[i + 2] = arr[i + 1] + arr[i] 식에 대입을 시키면 arr[6] = arr[5]+arr[4] 됩니다.
arr[6] = arr[5]+arr[4] 이식은 arr배열의 5번 위치의 값과 arr배열의 4번 위치의 값을 서로 더해 arr[6] 에 대입을 하라는것입니다.
arr배열의 5번위치에 5가 들어있고, 4번위치에 3이 들어있으니 5 + 3을 하면 8이 나오고 이 값을 arr[6], arr배열의 6번위치에 8을 넣습니다.
이후 i++를 만나 i값은 5가 될것이고 반복하기 위해 while문으로 올라갑니다.
i가 5일때 arr[i + 2] = arr[i + 1] + arr[i] 식에 대입을 시키면 arr[7] = arr[6]+arr[5] 됩니다.
arr[7] = arr[6]+arr[5] 이식은 arr배열의 6번 위치의 값과 arr배열의 5번 위치의 값을 서로 더해 arr[7] 에 대입을 하라는것입니다.
arr배열의 6번위치에 8이 들어있고, 5번위치에 5가 들어있으니 8 + 5을 하면 13이 나오고 이 값을 arr[7], arr배열의 7번위치에 13을 넣습니다.
이후 i++를 만나 i값은 6이 될것이고 반복하기 위해 while문으로 올라갑니다.
i가 6일때 arr[i + 2] = arr[i + 1] + arr[i] 식에 대입을 시키면 arr[8] = arr[7]+arr[6] 됩니다.
arr[8] = arr[7]+arr[6] 이식은 arr배열의 7번 위치의 값과 arr배열의 6번 위치의 값을 서로 더해 arr[8] 에 대입을 하라는것입니다.
arr배열의 7번위치에 13이 들어있고, 6번위치에 8이 들어있으니 13 + 8을 하면 21이 나오고 이 값을 arr[8], arr배열의 8번위치에 21을 넣습니다.
이후 i++를 만나 i값은 7이 될것이고 반복하기 위해 while문으로 올라갑니다.
i가 7일때 arr[i + 2] = arr[i + 1] + arr[i] 식에 대입을 시키면 arr[9] = arr[8]+arr[7] 됩니다.
arr[9] = arr[8]+arr[7] 이식은 arr배열의 8번 위치의 값과 arr배열의 7번 위치의 값을 서로 더해 arr[9] 에 대입을 하라는것입니다.
arr배열의 8번위치에 21이 들어있고, 7번위치에 13이 들어있으니 21 + 13을 하면 34가 나오고 이 값을 arr[9], arr배열의 9번위치에 34를 넣습니다.
이후 i++를 만나 i값은 8이 될것이고 반복하기 위해 while문으로 올라가면 조건은 만족 못하기 때문에 반복문을 더이상 실행하지 않습니다
열심히 공부하셔서 합격하시길 기원하겠습니다.
행복한 하루되세요 :)
-
관리자2024-05-15 18:38:06
안녕하세요 길벗수험서 운영팀입니다.
287페이지 4번 문제 답변
아래의 코드에서 str이라는 이름의 문자형 배열을 선언하면서 nation 으로 초기화를 했고문자형 포인터 변수 p2를 선언하면서 alter가 저장된 곳의 주소로 초기화를 했습니다.char str[50] = "nation";
char *p2 = "alter";
strcat(str, p2); 이 식에서 str은 배열의 이름을 쓴것으로 str배열에 저장되어 있던 문자 뒤에 p2변수의 값을 연결하여 붙이라는 것으로
nation과 alter를 연결하여 붙이기 때문에 nationalter가 정답으로 나오는것입니다
287페이지 5번 문제 답변
해당 교재 283페이지에 자세히 설명이 되어있습니다.
286페이지 2번 문제 답변
arr[0] = 0;
arr[1] = 1;
위의 코드에서 arr배열의 0번위치에 0을, 1번위치에 1을 초기값으로 넣고 시작을 합니다
i가 0일때 arr[i + 2] = arr[i + 1] + arr[i] 식에 대입을 시키면 arr[2] = arr[1]+arr[0] 됩니다.
arr[2] = arr[1]+arr[0] 이식은 arr배열의 1번 위치의 값과 arr배열의 0번 위치의 값을 서로 더해 arr[2] 에 대입을 하라는것입니다.
arr배열의 1번위치에 0이 들어있고, 0번위치에 1이 들어있으니 1 + 0을 하면 1이 나오고 이 값을 arr[2], arr배열의 2번위치에 1을 넣습니다.
이후 i++를 만나 i값은 1이 될것이고 반복하기 위해 while문으로 올라갑니다.
i가 1일때 arr[i + 2] = arr[i + 1] + arr[i] 식에 대입을 시키면 arr[3] = arr[2]+arr[1] 됩니다.
arr[3] = arr[2]+arr[1] 이식은 arr배열의 2번 위치의 값과 arr배열의 1번 위치의 값을 서로 더해 arr[3] 에 대입을 하라는것입니다.
arr배열의 2번위치에 1이 들어있고, 1번위치에 1이 들어있으니 1 + 1을 하면 2가 나오고 이 값을 arr[3], arr배열의 3번위치에 2를 넣습니다.
이후 i++를 만나 i값은 2가 될것이고 반복하기 위해 while문으로 올라갑니다.
i가 2일때 arr[i + 2] = arr[i + 1] + arr[i] 식에 대입을 시키면 arr[4] = arr[3]+arr[2] 됩니다.
arr[4] = arr[3]+arr[2] 이식은 arr배열의 3번 위치의 값과 arr배열의 2번 위치의 값을 서로 더해 arr[4] 에 대입을 하라는것입니다.
arr배열의 3번위치에 2가 들어있고, 2번위치에 1이 들어있으니 2 + 1을 하면 3이 나오고 이 값을 arr[4], arr배열의 4번위치에 3을 넣습니다.
이후 i++를 만나 i값은 3이 될것이고 반복하기 위해 while문으로 올라갑니다.
i가 3일때 arr[i + 2] = arr[i + 1] + arr[i] 식에 대입을 시키면 arr[5] = arr[4]+arr[3] 됩니다.
arr[5] = arr[4]+arr[3] 이식은 arr배열의 4번 위치의 값과 arr배열의 3번 위치의 값을 서로 더해 arr[5] 에 대입을 하라는것입니다.
arr배열의 4번위치에 3이 들어있고, 3번위치에 2가 들어있으니 3 + 2을 하면 5가 나오고 이 값을 arr[5], arr배열의 5번위치에 5를 넣습니다.
이후 i++를 만나 i값은 4가 될것이고 반복하기 위해 while문으로 올라갑니다.
i가 4일때 arr[i + 2] = arr[i + 1] + arr[i] 식에 대입을 시키면 arr[6] = arr[5]+arr[4] 됩니다.
arr[6] = arr[5]+arr[4] 이식은 arr배열의 5번 위치의 값과 arr배열의 4번 위치의 값을 서로 더해 arr[6] 에 대입을 하라는것입니다.
arr배열의 5번위치에 5가 들어있고, 4번위치에 3이 들어있으니 5 + 3을 하면 8이 나오고 이 값을 arr[6], arr배열의 6번위치에 8을 넣습니다.
이후 i++를 만나 i값은 5가 될것이고 반복하기 위해 while문으로 올라갑니다.
i가 5일때 arr[i + 2] = arr[i + 1] + arr[i] 식에 대입을 시키면 arr[7] = arr[6]+arr[5] 됩니다.
arr[7] = arr[6]+arr[5] 이식은 arr배열의 6번 위치의 값과 arr배열의 5번 위치의 값을 서로 더해 arr[7] 에 대입을 하라는것입니다.
arr배열의 6번위치에 8이 들어있고, 5번위치에 5가 들어있으니 8 + 5을 하면 13이 나오고 이 값을 arr[7], arr배열의 7번위치에 13을 넣습니다.
이후 i++를 만나 i값은 6이 될것이고 반복하기 위해 while문으로 올라갑니다.
i가 6일때 arr[i + 2] = arr[i + 1] + arr[i] 식에 대입을 시키면 arr[8] = arr[7]+arr[6] 됩니다.
arr[8] = arr[7]+arr[6] 이식은 arr배열의 7번 위치의 값과 arr배열의 6번 위치의 값을 서로 더해 arr[8] 에 대입을 하라는것입니다.
arr배열의 7번위치에 13이 들어있고, 6번위치에 8이 들어있으니 13 + 8을 하면 21이 나오고 이 값을 arr[8], arr배열의 8번위치에 21을 넣습니다.
이후 i++를 만나 i값은 7이 될것이고 반복하기 위해 while문으로 올라갑니다.
i가 7일때 arr[i + 2] = arr[i + 1] + arr[i] 식에 대입을 시키면 arr[9] = arr[8]+arr[7] 됩니다.
arr[9] = arr[8]+arr[7] 이식은 arr배열의 8번 위치의 값과 arr배열의 7번 위치의 값을 서로 더해 arr[9] 에 대입을 하라는것입니다.
arr배열의 8번위치에 21이 들어있고, 7번위치에 13이 들어있으니 21 + 13을 하면 34가 나오고 이 값을 arr[9], arr배열의 9번위치에 34를 넣습니다.
이후 i++를 만나 i값은 8이 될것이고 반복하기 위해 while문으로 올라가면 조건은 만족 못하기 때문에 반복문을 더이상 실행하지 않습니다
열심히 공부하셔서 합격하시길 기원하겠습니다.
행복한 하루되세요 :)