C# 연산자 면접 질문 및 답변
C# 연산자
1. 연산자와 식
Q1. 연산자란 무엇인가요?
A. 연산자는 값을 계산하거나 비교하고, 변수에 값을 저장하는 등의 작업을 지시하는 기호입니다.
Q2. 피연산자란 무엇인가요?
A. 연산의 대상이 되는 값이나 변수를 의미합니다.
Q3. 식(Expression)이란 무엇인가요?
A. 계산을 통해 하나의 값이 되는 코드 단위입니다. 리터럴이나 변수 하나도 식이 될 수 있으며, 연산자로 여러 식을 연결할 수도 있습니다.
Q4. 식과 문(Statement)의 차이는 무엇인가요?
A. 식은 하나의 값이 되는 것이고, 문은 프로그램에서 실행되는 단위입니다. 식에 세미콜론을 붙여 변수에 저장하거나 실행하면 문이 될 수 있습니다.
Q5. 피연산자 개수에 따라 연산자는 어떻게 구분되나요?
A. 피연산자가 하나인 단항 연산자, 두 개인 이항 연산자, 세 개인 조건 연산자로 구분됩니다. 조건 연산자는 삼항 연산자라고도 합니다.
2. 산술 연산자
Q1. 산술 연산자란 무엇인가요?
A. 숫자를 계산하는 연산자로 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/), 나머지(%)가 있습니다.
Q2. 정수끼리 나눗셈을 하면 어떤 결과가 나오나요?
A. 결과도 정수로 나오며 소수점 이하는 버려집니다. 반올림하지 않고 몫만 남깁니다.
Q3. 소수점까지 나눗셈 결과를 얻으려면 어떻게 해야 하나요?
A. 나누기 전에 피연산자 중 한쪽 이상을 실수 타입으로 변환해야 합니다. 나눗셈이 끝난 뒤 변환하면 이미 버려진 소수 부분을 복구할 수 없습니다.
Q4. 정수를 0으로 나누면 어떻게 되나요?
A. DivideByZeroException이 발생하고 프로그램이 멈춥니다. float와 double은 예외 대신 무한대나 NaN이 나올 수 있으며, decimal은 예외가 발생합니다.
Q5. 나머지 연산자 %는 어떤 역할을 하나요?
A. 나눗셈을 했을 때 남는 나머지를 구합니다. 나누어떨어지면 결과는 0이며, 짝수와 홀수를 구분하거나 숫자의 자릿수를 분리할 때 활용할 수 있습니다.
Q6. /와 %를 함께 사용하면 무엇을 할 수 있나요?
A. 몫과 나머지를 이용해 숫자의 각 자리를 분리할 수 있습니다. 또한 나머지 연산자를 이용해 값을 일정한 범위 안에서 반복되도록 만들 수 있습니다.
Q7. 단항 부호 연산자 +와 -는 어떤 역할을 하나요?
A. 단항 +는 값의 부호를 그대로 유지하고, 단항 -는 부호를 반대로 바꿉니다. 단항 -만 사용하면 원래 변수의 값은 변경되지 않습니다.
3. 문자열 연결 연산자
Q1. 문자열에서 + 연산자는 어떤 역할을 하나요?
A. 문자열과 문자열을 이어 붙이는 역할을 합니다.
Q2. 문자열과 다른 타입을 +로 연결하면 어떻게 되나요?
A. 피연산자 중 하나라도 문자열이면 다른 값도 문자열로 변환되어 이어 붙습니다.
Q3. 숫자 덧셈과 문자열 연결은 어떻게 구분하나요?
A. 피연산자의 타입에 따라 구분합니다. 숫자끼리는 산술 덧셈을 하고, 문자열이 포함되어 있으면 문자열을 연결합니다.
Q4. 문자열 연결에서 연산 순서가 중요한 이유는 무엇인가요?
A. + 연산자는 왼쪽부터 차례로 계산하기 때문입니다. 문자열 연결이 먼저 시작되면 이후 숫자도 덧셈이 아닌 문자열 연결로 처리됩니다. 숫자 계산을 먼저 하려면 괄호를 사용해야 합니다.
4. 할당 연산자
Q1. 할당 연산자 =는 어떤 역할을 하나요?
A. 오른쪽의 값을 계산한 뒤 왼쪽 변수에 저장하는 연산자입니다. 수학에서 사용하는 같다는 의미와는 다릅니다.
Q2. 할당 연산은 어떤 순서로 실행되나요?
A. 오른쪽 식을 먼저 계산하고 그 결과를 왼쪽 변수에 저장합니다.
Q3. 여러 변수에 같은 값을 한 번에 할당할 수 있나요?
A. 가능합니다. 할당 연산자는 오른쪽에서 왼쪽으로 묶이므로 하나의 값을 여러 변수에 차례로 저장할 수 있습니다.
Q4. 스왑(Swap)이란 무엇인가요?
A. 두 변수에 저장된 값을 서로 교환하는 것입니다. 한 변수의 값이 덮어써지는 것을 방지하기 위해 임시 변수를 사용합니다.
Q5. 복합 할당 연산자란 무엇인가요?
A. 변수 자신의 값으로 계산한 결과를 다시 저장하는 과정을 짧게 표현하는 연산자입니다. +=, -=, *=, /=, %= 등이 있습니다.
Q6. 복합 할당 연산자는 일반 할당과 완전히 같은가요?
A. 완전히 같지는 않습니다. 복합 할당은 계산 결과를 왼쪽 변수의 타입으로 되돌리는 변환을 자동으로 포함합니다.
Q7. 작은 정수 타입에서 복합 할당을 사용할 때 주의할 점은 무엇인가요?
A. 계산 결과가 해당 타입의 저장 범위를 초과할 수 있습니다. 오버플로 검사가 없는 경우 값이 순환할 수 있으므로 범위를 확인해야 합니다.
Q8. 복합 할당 연산자는 모든 타입에서 사용할 수 있나요?
A. 모든 타입에서 사용할 수 있는 것은 아닙니다. 오른쪽 값이 왼쪽 변수의 타입으로 변환될 수 있어야 합니다.
Q9. 복합 할당 연산자는 어떤 상황에서 자주 사용하나요?
A. 값을 누적하거나 개수를 세는 상황에서 자주 사용합니다.
5. 증감 연산자
Q1. 증감 연산자란 무엇인가요?
A. 변수의 값을 1 증가시키거나 1 감소시키는 연산자입니다. ++는 증가, --는 감소를 의미합니다.
Q2. 전위 증감과 후위 증감의 차이는 무엇인가요?
A. 전위 증감은 변수의 값을 먼저 변경한 뒤 변경된 값을 식의 결과로 사용합니다. 후위 증감은 변경 전 값을 식의 결과로 사용한 뒤 변수의 값을 변경합니다.
Q3. 전위와 후위 증감은 변수의 최종값도 다른가요?
A. 아닙니다. 두 방식 모두 최종적으로 변수의 값은 1 증가하거나 감소합니다. 차이는 해당 식에서 사용되는 값에 있습니다.
Q4. 전위와 후위 증감의 차이가 없는 경우는 언제인가요?
A. 증감 연산자의 식 자체가 다른 계산이나 변수에 사용되지 않는 경우입니다. 이때는 두 방식 모두 변수의 값만 1 변경합니다.
Q5. 한 식에서 같은 변수를 여러 번 증감하면 안 되는 이유는 무엇인가요?
A. 계산 순서를 파악하기 어렵고 실수하기 쉽기 때문입니다. 한 문장에 증감 연산자를 여러 번 사용하기보다 문장을 나누어 작성하는 것이 안전합니다.
Q6. char 타입에도 증감 연산자를 사용할 수 있나요?
A. 사용할 수 있습니다. 문자의 코드 값이 1 증가하거나 감소하여 다음 문자 또는 이전 문자로 변경됩니다.
6. 관계 연산자
Q1. 관계 연산자란 무엇인가요?
A. 두 값의 관계를 비교하여 참인지 거짓인지 판단하는 연산자입니다. 결과는 항상 bool 타입입니다.
Q2. 관계 연산자에는 어떤 종류가 있나요?
A. 같음(==), 다름(!=), 큼(>), 크거나 같음(>=), 작음(<), 작거나 같음(<=)이 있습니다.
Q3. =와 ==의 차이는 무엇인가요?
A. =는 오른쪽 값을 왼쪽 변수에 저장하는 할당 연산자이고, ==는 두 값이 같은지 비교하는 관계 연산자입니다.
Q4. 관계 연산의 결과를 변수에 저장할 수 있나요?
A. 가능합니다. 비교 결과는 bool 타입이므로 참이나 거짓을 변수에 저장할 수 있습니다.
Q5. C#에서 연쇄 비교를 사용할 수 있나요?
A. 사용할 수 없습니다. 여러 조건을 비교하려면 논리 연산자로 조건을 연결해야 합니다.
Q6. 문자열도 관계 연산자로 비교할 수 있나요?
A. 문자열은 ==와 !=를 사용해 비교할 수 있습니다. 대소문자는 서로 다른 문자로 취급하며, 문자열에 크기 비교 연산자인 >와 <는 사용할 수 없습니다.
Q7. 실수를 ==로 비교할 때 주의해야 하는 이유는 무엇인가요?
A. 실수는 값을 정확하게 저장하지 못하는 경우가 있기 때문입니다. 따라서 예상한 값과 실제 저장된 값이 미세하게 달라 비교 결과가 거짓이 될 수 있습니다.
7. 논리 연산자
Q1. 논리 연산자란 무엇인가요?
A. bool 값을 조합하여 새로운 참 또는 거짓 값을 만드는 연산자입니다.
Q2. AND 연산자 &&는 어떤 역할을 하나요?
A. 양쪽 조건이 모두 참일 때만 참을 반환합니다. 하나라도 거짓이면 결과는 거짓입니다.
Q3. OR 연산자 ||는 어떤 역할을 하나요?
A. 양쪽 조건 중 하나라도 참이면 참을 반환합니다. 양쪽 모두 거짓일 때만 거짓입니다.
Q4. NOT 연산자 !는 어떤 역할을 하나요?
A. 참과 거짓을 반대로 바꾸는 단항 연산자입니다.
Q5. 관계 연산자와 논리 연산자는 어떻게 함께 사용하나요?
A. 관계 연산자로 각각의 조건을 비교한 다음, 논리 연산자로 여러 조건을 연결합니다.
Q6. 범위 안에 있는지 확인하려면 어떤 논리 연산자를 사용하나요?
A. 두 조건을 모두 만족해야 하므로 &&를 사용합니다. 반대로 범위 밖에 있는지 확인할 때는 ||를 사용합니다.
Q7. 드모르간 법칙이란 무엇인가요?
A. AND나 OR로 연결된 조건 전체를 반대로 바꾸면 논리 연산자도 서로 바뀌는 법칙입니다. !(A && B)는 !A || !B와 같고, !(A || B)는 !A && !B와 같습니다.
Q8. 단락 평가란 무엇인가요?
A. &&와 ||에서 결과가 이미 결정되면 오른쪽 조건을 계산하지 않는 방식입니다. &&는 왼쪽이 거짓일 때, ||는 왼쪽이 참일 때 오른쪽을 계산하지 않습니다.
Q9. 단락 평가는 어떤 상황에서 유용한가요?
A. 위험한 계산이 실행되지 않도록 앞쪽 조건에서 걸러 낼 때 유용합니다. 예를 들어 나누는 값이 0인지 먼저 확인하면 0으로 나누는 계산을 방지할 수 있습니다.
Q10. &, |와 &&, ||의 차이는 무엇인가요?
A. &와 |는 양쪽 조건을 항상 계산합니다. 반면 &&와 ||는 결과가 결정되면 오른쪽 조건을 계산하지 않습니다.
8. 조건 연산자
Q1. 조건 연산자란 무엇인가요?
A. 조건의 참과 거짓에 따라 두 값 중 하나를 선택하는 연산자입니다. 피연산자가 세 개이므로 삼항 연산자라고도 합니다.
Q2. 조건 연산자는 어떤 구조로 작성하나요?
A. 조건 뒤에 ?를 작성하고 참일 때 사용할 값을 적은 다음, : 뒤에 거짓일 때 사용할 값을 작성합니다.
Q3. 조건 연산자는 식인가요, 문인가요?
A. 식입니다. 조건에 따라 선택된 값이 결과가 되므로 변수에 저장하거나 다른 값이 필요한 위치에 사용할 수 있습니다.
Q4. 조건 연산자를 사용할 때 두 값의 타입은 어떻게 되어야 하나요?
A. ? 뒤와 : 뒤의 값은 같은 타입이거나 한쪽이 다른 쪽으로 변환될 수 있어야 합니다.
Q5. 문자열 보간 안에서 조건 연산자를 사용할 때 주의할 점은 무엇인가요?
A. 조건 연산자 전체를 괄호로 감싸야 합니다. 괄호가 없으면 : 뒤가 서식 지정으로 해석되어 컴파일 오류가 발생할 수 있습니다.
Q6. 여러 조건을 조건 연산자로 연결할 수 있나요?
A. 가능합니다. 조건 연산자를 이어 붙여 여러 갈래를 표현할 수 있지만, 조건이 많아질수록 읽기 어려워지므로 주의해야 합니다.
Q7. 조건 연산자를 사용할 때 조건의 순서가 중요한 이유는 무엇인가요?
A. 앞에 있는 조건부터 검사하기 때문입니다. 여러 범위를 구분할 때는 더 좁은 범위의 조건을 앞에 배치해야 올바른 결과를 얻을 수 있습니다.
Q8. 조건 연산자로 실행할 문장을 선택할 수 있나요?
A. 불가능합니다. 조건 연산자는 실행할 문장이 아니라 값을 선택하는 연산자입니다.
Q9. 조건 연산자는 언제 사용하는 것이 적절한가요?
A. 두 가지 경우 중 하나의 값을 간단하게 선택할 때 적절합니다. 조건이 많거나 각 경우에 여러 문장을 실행해야 한다면 다른 문법을 사용하는 것이 좋습니다.
9. 연산자 우선순위와 결합 방향
Q1. 연산자 우선순위란 무엇인가요?
A. 하나의 식에 여러 연산자가 있을 때 어떤 연산자를 먼저 계산할지 정하는 규칙입니다.
Q2. 연산자 우선순위가 높은 연산자는 무엇인가요?
A. 괄호가 가장 먼저 계산됩니다. 그다음 후위 증감, 단항 연산자, 곱셈류, 덧셈류, 비교 연산자, 논리 연산자, 조건 연산자, 할당 연산자 순서로 계산됩니다.
Q3. 산술 연산자와 관계 연산자가 함께 있으면 무엇을 먼저 계산하나요?
A. 산술 연산자를 먼저 계산한 뒤 관계 연산자로 비교합니다.
Q4. &&와 ||가 함께 있으면 무엇을 먼저 계산하나요?
A. &&가 ||보다 우선순위가 높으므로 AND 연산을 먼저 계산합니다.
Q5. 결합 방향이란 무엇인가요?
A. 우선순위가 같은 연산자가 나란히 있을 때 어느 방향으로 계산할지 정하는 규칙입니다.
Q6. 산술 연산자와 할당 연산자의 결합 방향은 어떻게 다른가요?
A. 산술 연산자는 일반적으로 왼쪽에서 오른쪽으로 계산하고, 할당 연산자는 오른쪽에서 왼쪽으로 묶입니다.
Q7. 조건 연산자의 결합 방향은 어떻게 되나요?
A. 오른쪽에서 왼쪽으로 묶입니다. 여러 조건 연산자를 연결하면 오른쪽에 있는 조건부터 묶이는 형태로 해석됩니다.
Q8. 연산자 우선순위가 헷갈릴 때는 어떻게 해야 하나요?
A. 괄호를 사용하면 됩니다. 괄호를 사용하면 계산 순서를 명확하게 표현할 수 있어 코드를 읽고 이해하기 쉬워집니다.
면접 전 핵심 정리
- 연산자는 연산을 지시하는 기호이며, 피연산자는 연산의 대상입니다.
- 식은 계산하여 하나의 값이 되는 코드 단위입니다.
- 산술 연산자는
+,-,*,/,%입니다. - 정수 나눗셈은 소수점 이하를 버리므로 실수 결과가 필요하면 나누기 전에 한쪽을 실수로 변환합니다.
%는 나머지를 구하며 자릿수 분리와 범위 반복에 활용할 수 있습니다.- 문자열이 포함된
+연산은 덧셈이 아니라 문자열 연결로 처리됩니다. =는 값을 저장하고==는 두 값을 비교합니다.- 복합 할당 연산자는 계산 결과를 변수에 다시 저장하는 과정을 간단하게 표현합니다.
++x는 증가한 뒤의 값,x++는 증가하기 전의 값이 식의 결과가 됩니다.- 관계 연산자의 결과는 항상
bool입니다. &&는 모두 참일 때,||는 하나라도 참일 때 참을 반환합니다.!는 참과 거짓을 반대로 바꿉니다.- 단락 평가는 결과가 결정되면 오른쪽 조건을 계산하지 않는 방식입니다.
- 조건 연산자
조건 ? 값1 : 값2는 조건에 따라 두 값 중 하나를 선택합니다. - 연산자 우선순위는 괄호, 단항, 곱셈류, 덧셈류, 비교, 논리, 조건, 할당 순서로 이해합니다.
- 계산 순서가 헷갈리면 괄호를 사용해 의도를 명확하게 표현합니다.



