728x90
1회
15번) 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
#include <stdio.h>
main() {
struct insa {
char name[10];
int age;
}a[] = {"Kim", 28, "Lee", 38, "Park", 42, "Choi", 31};
struct insa* p;
p = a;
p++;
printf("%s\n", p->name);
printf("%d\n", p->age);
}
더보기
답:
Lee
38
2회
2회-16번) 다음 C 언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 출력하시오.)
#include <stdio.h>
main() {
int res = mp(2, 10);
printf("%d", res);
}
int mp(int base, int exp) {
int res = 1;
for(int i=0; i<exp; i++)
res *= base;
return res;
}
더보기
답: 1024
2회-18번) 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
#include <stdio.h>
int main() {
int ary[3];
int s = 0;
*(ary + 0) = 1;
ary[1] = *(ary + 0) + 2;
ary[2] = *ary + 3;
for(int i=0; i<3; i++)
s = s + ary[i];
printf("%d", s);
}
더보기
답: 8
3회
3회-7번) 다음 C언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력물의 출력 서식을 준수하시오.)
#include <stdio.h>
struct jsu {
char nae[12];
int os, db, hab, hhab;
};
int main() {
struct jsu st[3] = {{"데이터1", 95, 88}, {"데이터2", 84, 91}, {"데이터3", 86, 75}};
struct jsu* p;
p = &st[0];
(p+1)->hab = (p+1)->os + (p+2)->db;
(p+1)->hhab = (p+1)->hab + p->os + p->db;
printf("%d\n", (p+1)->hab + (p+1)->hhab);
}
더보기
답: 501
3회-16번) 다음 C 언어로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오. (단, 출력문의 출력 서식을 준수하시오.)
#include <stdio.h>
int main() {
int* array[3];
int a = 12, b = 24, c = 36;
array[0] = &a;
array[1] = &b;
array[2] = &c;'
printf("%d", *array[1] + **array + 1);
}
더보기
답: 37
이중 포인터 변수는 포인터의 주소값을 담는다.
즉, **array는 array[0]의 주소값을 가리킨다.
그런데 array[0]은 12를 가리키고 있으므로 결국 12가 된다.
24 + 12 + 1 = 37
728x90
'Language > C' 카테고리의 다른 글
[정보처리기사] 2022 C 프로그래밍 언어 문제 (0) | 2024.04.16 |
---|---|
[C언어] 구조체 포인터 선언 및 메모리 할당 (0) | 2024.04.13 |
[정보처리기사] 2023 C 프로그래밍 언어 문제 (2) | 2024.04.11 |
[C언어] 문자열 포인터에서 인덱스로 문자에 접근하기 (0) | 2024.04.11 |
[C언어] 문자와 문자열 포인터 (0) | 2024.04.11 |