3주차 퀴즈

문제1

다음 프로그램의 결과와
각 변수에 저장된 값을 설명하세요(2점).

#include <stdio.h>

int main()
{
    int n = 100;

    int *p1 = &n;
    int **p2 = &p1;

    printf("p1=%p, *p1=%d\n", p1, *p1);
    printf("p2=%p, *p2=%p, **p2=%d\n", p2, *p2, **p2);
}

문제2

다음 프로그램의 결과가 270이 아닌 이유를 설명하세요(2점).

#include <stdio.h>

int main()
{
    int score[3] = { 80, 90, 100 };
    int sum = score[1] + score[2] + score[3];

    printf("sum = %d\n", sum);
}

문제3

“hello world”가 출력 될 수 있도록 다음 프로그램을 완성하세요(2점).

#include <stdio.h>

int main()
{
    char buf[20];

    // insert your code

    printf("%s\n", buf);
}

문제4

입력된 두 문자열을 이어 붙이는 strcat() 함수를 완성하세요(2점).

#include <stdio.h>

void strcat(const char* s1, const char* s2, char* s3) {
  // insert your code
}

int main() {
    char s1[10], s2[10], s3[20];

    scanf("%s %s", s1, s2);
    strcat(s1, s2, s3);
    printf("%s\n", s3);
}

문제5

메모리를 해제하는 delete 명령과 delete[] 명령의 차이를 설명하세요(2점).

#include <stdio.h>

int main()
{
    int *pi = new int;
    *pi = 10;

    int *pj = new int[2];
    pj[0] = 20; pj[1] = 30;

    delete pi;
    delete pj;
}

댓글남기기