C# 변수·상수와 입력 기초 면접 질문 및 답변
1. 변수 기초
Q1. 변수란 무엇인가요?
A. 값을 저장하는 메모리 공간에 붙인 이름입니다.
Q2. 변수를 사용하는 이유는 무엇인가요?
A. 값을 이름으로 관리하고, 필요할 때 사용하거나 변경하기 위해 사용합니다.
Q3. 변수 선언이란 무엇인가요?
A. 변수의 자료형과 이름을 지정하여 변수를 만드는 것입니다.
Q4. 할당이란 무엇인가요?
A. 변수에 값을 넣는 것입니다.
Q5. 초기화란 무엇인가요?
A. 변수를 선언하면서 처음 값을 지정하는 것입니다.
Q6. 선언과 초기화의 차이는 무엇인가요?
A. 선언은 변수를 만드는 것이고, 초기화는 변수를 만들면서 처음 값을 지정하는 것입니다.
Q7. C#에서 초기화하지 않은 지역 변수를 사용하면 어떻게 되나요?
A. 값이 할당되지 않은 지역 변수를 사용하면 컴파일 오류가 발생합니다.
Q8. 대입 연산자 =는 어떤 역할을 하나요?
A. 오른쪽의 값을 왼쪽 변수에 할당합니다.
Q9. 변수에 새로운 값을 할당하면 어떻게 되나요?
A. 변수에 저장된 값이 새로운 값으로 변경됩니다.
2. 상수
Q10. 상수란 무엇인가요?
A. 선언할 때 값을 지정하고 이후에 변경할 수 없는 값입니다.
Q11. 상수는 어떻게 선언하나요?
A. const 키워드를 사용합니다.
Q12. 상수는 왜 선언과 동시에 초기화해야 하나요?
A. 상수는 선언 시점에 값이 정해져야 하기 때문입니다.
Q13. 변수와 상수의 차이는 무엇인가요?
A. 변수는 값을 변경할 수 있지만, 상수는 값을 변경할 수 없습니다.
Q14. 상수를 사용하는 이유는 무엇인가요?
A. 고정된 값에 의미 있는 이름을 붙이고, 실수로 값이 변경되는 것을 방지하기 위해 사용합니다.
Q15. 매직 넘버란 무엇인가요?
A. 코드에 의미 설명 없이 직접 작성되어 그 목적을 파악하기 어려운 숫자나 값입니다.
Q16. 상수의 값은 언제 결정되나요?
A. 컴파일 시점에 결정되어야 합니다.
3. 자료형과 리터럴
Q17. 리터럴이란 무엇인가요?
A. 코드에 직접 작성한 값 자체를 의미합니다.
Q18. 변수와 리터럴의 차이는 무엇인가요?
A. 리터럴은 코드에 직접 작성한 값이고, 변수는 값을 저장하고 관리하기 위해 이름을 붙인 공간입니다.
Q19. 문자와 문자열의 차이는 무엇인가요?
A. 문자는 char로 표현하고, 문자열은 string으로 표현합니다.
Q20. var란 무엇인가요?
A. 변수의 초기값을 바탕으로 컴파일러가 자료형을 추론하도록 하는 키워드입니다.
Q21. var를 사용하면 자료형이 없어지나요?
A. 아닙니다. 자료형은 컴파일 시점에 결정되며 이후에도 유지됩니다.
Q22. var를 사용할 때 주의할 점은 무엇인가요?
A. 선언과 동시에 초기화해야 하며, 초기값을 바탕으로 자료형을 추론할 수 있어야 합니다.
Q23. var로 입력을 받으면 숫자로 자동 변환되나요?
A. 아닙니다. Console.ReadLine()의 반환값은 문자열이므로 숫자로 사용하려면 별도의 변환이 필요합니다.
4. 사용자 입력
Q24. Console.ReadLine()은 어떤 역할을 하나요?
A. 사용자가 입력한 한 줄을 읽어 문자열로 반환합니다.
Q25. Console.ReadLine()으로 입력받은 숫자는 바로 계산할 수 있나요?
A. 입력값은 문자열이므로 숫자 자료형으로 변환해야 계산할 수 있습니다.
Q26. int.Parse()는 어떤 역할을 하나요?
A. 정수 형태의 문자열을 int 자료형으로 변환합니다.
Q27. int.Parse()를 사용할 때 주의할 점은 무엇인가요?
A. 입력값이 유효한 정수 형식이 아니거나 정수 범위를 벗어나면 변환에 실패할 수 있습니다.
Q28. 문자열 보간이란 무엇인가요?
A. 문자열 안에 변수나 계산 결과를 삽입하여 문장을 만드는 기능입니다.
Q29. 문자열 보간을 사용하는 이유는 무엇인가요?
A. 문자열과 변수를 직접 연결하는 것보다 코드를 읽고 관리하기 쉽기 때문입니다.
5. 변수 이름 짓기
Q30. C#에서 변수 이름을 지을 때 지켜야 하는 규칙은 무엇인가요?
A. 숫자로 시작할 수 없으며, 예약어를 변수 이름으로 사용할 수 없습니다. 또한 대소문자를 구분합니다.
Q31. 카멜 케이스란 무엇인가요?
A. 첫 단어는 소문자로 시작하고, 뒤에 이어지는 단어의 첫 글자는 대문자로 작성하는 명명 방식입니다.
Q32. 파스칼 케이스란 무엇인가요?
A. 각 단어의 첫 글자를 대문자로 작성하는 명명 방식입니다.
Q33. 변수 이름을 명확하게 지어야 하는 이유는 무엇인가요?
A. 변수에 저장된 값의 의미를 쉽게 파악하고 코드의 가독성을 높이기 위해서입니다.
Q34. 변수와 상수의 명명 규칙은 어떻게 다른가요?
A. 일반적으로 지역 변수는 카멜 케이스를, 상수는 파스칼 케이스를 사용합니다.
6. 디버깅
Q35. 중단점이란 무엇인가요?
A. 프로그램 실행을 특정 위치에서 일시 정지하여 변수의 값과 실행 상태를 확인하는 기능입니다.
Q36. 중단점은 왜 사용하나요?
A. 프로그램이 실행되는 과정을 확인하고, 값이 예상과 다르게 변경되는 위치를 찾기 위해 사용합니다.
Q37. 디버깅 중 한 줄씩 실행하는 이유는 무엇인가요?
A. 각 명령문이 실행될 때 변수의 값이 어떻게 변하는지 확인하여 오류의 원인을 찾기 위해서입니다.
면접 전 핵심 정리
| 핵심 개념 | 기억할 내용 |
|---|---|
| 변수(Variable) | 데이터를 저장하며, 값을 변경할 수 있다. |
| 선언(Declaration) | 변수의 이름과 자료형을 정한다. |
| 초기화(Initialization) | 변수를 선언하면서 처음 값을 지정한다. |
| 상수(Constant) | const로 선언하며, 초기화한 값을 변경할 수 없다. |
| 리터럴(Literal) | 코드에 직접 작성한 값이다. |
var | 초기화한 값으로 자료형을 추론하며, 선언 후 자료형은 바뀌지 않는다. |
Console.ReadLine() | 사용자 입력을 문자열로 읽어 온다. |
int.Parse() | 문자열을 정수로 변환한다. 변환할 수 없는 입력이면 예외가 발생할 수 있다. |
| 문자열 보간 | $를 사용해 문자열 안에 변수나 값을 삽입한다. |
| 변수 이름 규칙 | 의미를 명확하게 표현하고, 일반적으로 변수는 camelCase, 상수는 PascalCase를 사용한다. |
| 매직 넘버(Magic Number) | 의미가 명확하지 않은 숫자를 코드에 직접 사용하는 것이다. |
| 중단점(Breakpoint) | 특정 위치에서 실행을 멈춰 변수의 값과 실행 흐름을 확인하는 데 사용한다. |
반드시 구분하기
- 선언: 변수를 만드는 것
- 초기화: 변수에 처음 값을 지정하는 것
- 대입: 변수에 값을 넣거나 변경하는 것
- 변수와 상수: 변수는 값을 변경할 수 있지만, 상수는 변경할 수 없다.
var와ReadLine():var는 자료형을 추론하지만,ReadLine()으로 입력받은 값은 문자열이다.Parse()와 입력 검증:Parse()는 변환할 수 없는 입력을 자동으로 처리해 주지 않는다.- 디버깅: 중단점과 단계별 실행으로 코드의 실행 과정과 변수 값을 확인한다.



