#include using namespace std; int main() { int a = b = c = 0; cout << a << '*' << b << '*' << c; return 0; }
Output: Compile time error!설명: A chained statement cannot be used to initialize variables at the time of declaration. Hence the statement a = b = c = 0; is an illegal statement. However following way a legal syntax and can be used in C++ or C.
int abc; a = b = c = 0;
질문 2 CPP
#include using namespace std; int main() { for ( ; ; ) cout << 'blank'; return 0; }
Output: Infinite Loop!설명: for 루프 내부에는 초기화 테스트 조건과 증가/감소 조건이 없기 때문에 실행이 무한 루프에 빠지게 됩니다.
질문 3 CPP
#include using namespace std; int main() { int i; for (i=0; i<3; i++); cout << 'hello!' <<i; return 0; }
Output: hello!3설명: Hello!3은 for 루프가 정의된 줄에 있는 세미콜론(;)으로 인해 for 루프가 실행될 때 수행할 작업이 없기 때문에 생성된 결과입니다. 루프가 세 번 실행되고 i 값이 3이 된 다음 나머지 명령문이 실행됩니다.
질문 4 CPP
#include using namespace std; int main() { int i; i = 1 + (14563); cout << i; return 0; }
Output: 4설명: 쉼표() 연산자는 첫 번째 피연산자를 평가하고 결과를 버리고 두 번째 피연산자를 평가한 다음 두 번째 값을 반환하는 이항 연산자입니다. 여기서 쉼표() 연산자의 결합성은 왼쪽에서 오른쪽으로 이루어지며 표현식(14563)이 3으로 평가되고 결과 1 + 3이 i에 할당된다는 것을 이해하기 쉽습니다.
질문 5 CPP
#include using namespace std; int main() { int a = 0 b; b = (a = 50) + 10; cout << a << '$' << b; return 0; }
Output: 50설명: 진술 b = (a = 50) + 10; 임베디드 할당 개념을 사용합니다. 여기서 값 50은 변수 a에 할당되고 결과 50+10은 b에 할당됩니다. 질문 6 CPP
#include using namespace std; int main() { char a = 30 b = 40 c = 10; char d = (a*b)/c; cout << int(d); return 0; }
Output: 120설명: C++에서는 char 데이터 유형의 변수에 대해 산술 연산을 수행하는 경우 문자의 ASCII 값을 고려하여 산술 계산을 수행할 수도 있습니다. 이 경우 대답은 x의 ASCII 값인 120입니다.
질문 7 CPP
#include using namespace std; int main(int x) { static int i = 5; if (--i) { cout << i; main(10); } return 0; }
Output: 4321설명: C++에서 0이 아닌 숫자는 모두 참값으로 처리됩니다. 여기 이 코드에서 if 문은 i의 값을 감소시키는 경향이 있지만 if 블록 내부에서는 main() 함수가 계속해서 호출됩니다. 여기서 프로그램은 무한 루프에 있는 것처럼 보이지만 변수 i는 본질적으로 정적이므로 실행될 때까지 수명이 있으므로 i가 0이 되면 프로그램이 중지됩니다.
질문 8 CPP
#include using namespace std; int main(int x) { int i = 5; if (--i) { cout << i; main(10); } return 0; }
Output: infinite loop설명: C++에서 0이 아닌 숫자는 모두 참값으로 처리됩니다. 여기 이 코드에서 if 문은 i의 값을 감소시키는 경향이 있지만 if 블록 내부에서는 main() 함수가 계속해서 호출되므로(이제 모든 문은 새 프로그램인 것처럼 실행됩니다) 종료 조건이 없으므로 프로그램 실행은 무한 루프에 빠지게 됩니다. 퀴즈 만들기