[강의 퀴즈 해설] CS50 2019 Chapter 2. C언어 Quiz

2025. 3. 2. 20:13CS(Computer Science)/Harvard CS50 Review

Q1. 스크래치에서 아래 블록이 의미하는 것과 동일한 역할을 하는 함수를 C언어로 올바르게 작성한 것은 무엇일까요?

A1. int main(void), C언어에선 main함수부터 실행이 된다. 

 

Q2. 스크래치에서 아래 블록이 의미하는 것과 동일한 역할을 C언어로 올바르게 표현한건 무엇인가요?

A2. printf("Hello!"), 문자열은 ""로 감싸고 여기선 선언문이니까, C언어로는 출력문을 사용한다.

 

Q3. C언어로 작성된 hello.c 소스코드를 컴퓨터가 이해할 수 있는 머신코드로 컴파일 하기 위해 어떤 명령어를 프롬프트에 입력해야할까요?

A3. $clang hello.c, clang이 컴파일을 위한 명령어다. 

 

Q4. 사용자 이름이 저장된 문자열 변수 name와 "Hello"를 연결해서 출력하려합니다. 올바른 C언어 코드는 무엇인가요?

A4. printf("Hello, %s", name); %s는 c언어에서 문자열을 변환해주는데, %s가 name이라는 문자열 변수를 받아준다.

 

Q5. ‘x가 y와 같다면’ 이라는 조건문을 C 코드로 나타내면 어떻게 될까요? A5. if (x==y), 만약 x=y가 되면, x를 y로 선언하겠다는 뜻이 되어서 비교문으로 쓸 수가 없다.

 

Q6. 변수 x가 입력되었을 때 x가 짝수인지 홀수인지 알아내는 프로그램을 구현하기 위해 사용하면 좋은 연산자는 다음 중 무엇인가요? A6. %, 나머지 연산자(%)를 이용해 x%2라는 식을 써서 짝수인지 홀수인지 여부를 파악할 수 있다.

 

Q7. 아래와 같은 C 코드가 있습니다. prinft 함수 사용을 위해 꼭 추가되어야 하는 코드는 무엇인가요?

A7. #include <stdio.h>, stdio는 standard input/output의 줄임말이고, 표준 입출력에 필요한 헤더 파일을 포함한다. 여기서도 출력을 위한 함수가 있기 때문에 해당 헤더가 필수로 들어가야한다. 

 

Q8. 아래와 같이 hello()라는 사용자 정의 함수를 작성한 후, 메인 함수에서 사용하려고 합니다. 파일 상단에 정의되어야하는 코드는 무엇일까요?

A8. void hello(int);, 여기서는 사용자 정의 함수가 파일 상단에 표시되어야 하므로 반환값이 없는 void를 이용해 hello를 호출한다. 이때 사용하는 변수는 위의 코드를 참고하면 정수형이니까 int를 넣어준다. 

 

Q9. 어떤 작업을 50번 반복 수행하는 루프를 구현하기 위한 C 코드로 적절한 것은 무엇인가요? A9. for (int i = 0; i < 50; i++)

 

Q10. 컴퓨터 하드웨어의 한계로 인해 발생하는 문제 중 하나로, 변수가 담을 수 있는 최대 허용 범위를 벗어난 값을 저장해 예상치 못한 결과가 나오는 현상을 무엇이라고 하나요?

A10. 오버플로우