2025. 5. 26. 09:45ㆍ정처기 실기
(2020 1회차)
12. 다음은 C언어 소스 코드이다. 출력 결과를 쓰시오.
#include <stdio.h>
void main(){
int i,j;
int temp;
int a[5] = {75,95,85,100,50};
for(i=0; i<4; i++){
for(j=0; j<4-i; j++){
if(a[j] > a[j+1]){
temp=a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for(i=0; i<5; i++){
printf("%d", a[i]);
}
}
#정렬, #for문, #이중for문, #배열, #서식 지정자 주의
a[j] > a[j+1] 일 때 큰 수가 뒤로 가는 로직이 실행되고, 서식 지정자에서 다른 형식이 없으므로
출력 결과는 50758595100
(2020 3회차)
2. 다음은 C언어 소스 코드이다. 출력 결과를 쓰시오.
#include <stdio.h>
void main(){
int i=0, c=0;
while (i<10){
i++;
c*=i;
}
printf("%d",c);
}
#while문 #후위 연산자
i = 0 시작 > i++로 인해 i = 1, c = 0 * 1 = 0
이후 i 값이 얼마나 늘어나든 0에 i를 곱하는 형태이므로
출력 결과는 0
(2020 3회차)
13. 다음은 C언어 소스 코드이다. 출력 결과를 쓰시오.
#include <studio.h>
int r1(){
return 4;
}
int r10(){
return (30+r1());
}
int r100(){
return (200+r10());
}
int main(){
printf("%d\n", r100());
return 0;
}
#함수 호출 #함수 호출 중첩
r100() 호출 > 200 + r10()
r10() 호출 > 30 + r1()
r1() 호출 > 4
r10() = 30 + 4 = 34
r100() = 200 + 34 = 234
출력 결과는 234
(2021 1회차)
15. 다음은 C언어 프로그램이다. 실행 결과를 쓰시오.
#include <stdio.h>
struct good {
char name[10];
int age;
};
void main(){
struct good s[] = {"Kim",28,"Lee",38,"Seo",50,"Park",35};
struct good *p;
p = s;
p++;
printf("%s\n", p-> name);
printf("%d\n", p-> age);
#구조체 #포인터 #포인터연산 #후위연산자 #배열
p = s 로 포인터 변수 p는 배열 s의 첫 번째 값, s[0] ("kim", 28)의 주소를 저장한다.
그리고 p++ 로 인해 인덱스 하나 뒤의 값, s[1]의 주소를 저장한다.
즉 p = s + 1이 된다.
따라서 출력 결과는
Lee
38
(2021 2회차)
16. 다음은 C언어에 관한 소스코드이다. 실행 결과값을 작성하시오.
int main(){
int res;
res = mp(2,10);
printf("%d",res);
return 0;
}
int mp(int base, int exp) {
int res = 1;
for(int i=0; i < exp; i++){
res = res * base;
}
return res;
}
#함수 #반복문 #return
res = mp(2, 10)
mp(2, 10) 은
{
int res = 1
for(int i = 0; i < 10; i++) { res = res * 2 }
}
이므로
1. res = 1 x 2
2. res = 2 x 2
3. res = 4 x 2
4. res = 8 x 2
5. res = 16 x 2
6. res = 32 x 2
7. res = 64 x 2
8. res = 128 x 2
9. res = 256 x 2
10. res = 512 x 2
따라서 1024 반환
출력 결과는 1024