1. 출력 값을 작성하시오.

#include <stdio.h>

int len(char* p);

int main() {
    char* p1 = "12004";
    char* p2 = "20240123";
   
    int a = len(p1);
    int b = len(p2);

    printf("%d", a + b);
    return 0;
}

int len(char* p) {
    int r = 0;
    while (*p != '\0') {
        p++;
        r++;
    }
    return r;
}
정답

13

2. 출력 값을 작성하시오.

#include <stdio.h>

int len(char* p);

int main() {
    char* p1 = "20120104";
    char* p2 = "20240123";
   
    int a = len(p1);
    int b = len(p2);

    printf("%d", a + b);
    return 0;
}

int len(char* p) {
    if (*p == '\0') {
        return 0;
    } else {
        return 1 + len(p + 3);
    }
}
정답

11

3. 출력 값을 작성하시오.

#include <stdio.h>


int main(int argc, char *argv[]) {
    int a[5] = {0, 2, 4, 8, 10};
    int b[3] = {};
    int i = 1;
    int sum = 0;
    int *p1;


    for (i; i < 5; i++) {
        p1 = a + i;
        b[i - 1] = p1 - (a + i - 1);
        sum = sum + b[i - 1] + a[i];
    }


    printf("%d", sum);
    return 0;
}
정답

28

4. 출력 값을 작성하시오.

#include <stdio.h>


int main(int argc, char *argv[]) {
    int a[5] = {0, 4, 4, 16, 10};
    int b[3] = {};
    int i = 1;
    int sum = 0;
    int *p1;


    for (i; i < 4; i++) {
        p1 = a + i;
        b[i - 1] = p1 - (a + i - 3);
        sum = sum + b[i - 1] + a[i];
    }


    printf("%d", sum);
    return 0;
}
정답

33

5. 출력 값을 작성하시오.

#include <stdio.h>


int main(int argc, char *argv[]) {
    int a[5] = {0, 1, 3, 5, 10};
    int b[3] = {};
    int sum = 0;
    int *p1;


    for (int i = 1; i < 5; i++) {
        p1 = a + i;
        b[i - 1] = p1 - (a + i - 1);
        sum = sum + b[i - 1] + a[i];
    }


    printf("%d\n", sum);
    return 0;
}
정답

23

6. 출력 값을 작성하시오.

#include <stdio.h>


int func(int a) {
    if (a <= 1) return 1;
    return a * func(a - 1);
}
 
int main() {
    int a = 6;


    printf("%d", func(a));
    return 0;
}
정답

720

7. 출력 값을 작성하시오.

#include <stdio.h>


int main() {
    int number = 1234;
    int div = 10;
    int result = 0;
 
    while (number > 0) {
        result = result * div;
        result = result + number % div;
        number = number / div;
    }
 
    printf("%d", result);
    return 0;
}
정답

4321

8. 출력 값을 작성하시오.

#include <stdio.h>

int isPrime(int number)
{
    if (number <= 1) return 0;
    for (int i = 2; i * i <= number; i++)
    {
        if (number % i == 0) return 0;
    }
    return 1;
}
 
int main(void)
{
    int number = 12375, max_div = 1;
    for (int i = 2; i * i <= number; i++)
    {
        if (number % i == 0 && isPrime(i))
        {
            max_div = i;
        }
    }
 
    printf("%d", max_div);
    return 0;
}
정답

11

9. 출력 값을 작성하시오.

#include <stdio.h>
 
int main()
{
    int *arr[3];
    int a = 31, b = 62, c = 311;


    arr[0] = &a;
    arr[1] = &b;
    arr[2] = &c;
 
    printf("%d\n", *arr[1] + **arr + 1);
}
정답

94

10. 출력 값을 작성하시오.

#include <stdio.h>
 
struct sut
{
  char name[12];
  int os, db, hab, hhab;
};
 
int main()
{
   struct sut st[3] = {{"데이터1", 95, 38}, {"데이터2", 24, 91}, {"데이터3", 46, 15}};
   struct sut* 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);
}
정답

211