#include using namespace std; int main() { int a = b = c = 0; cout << a << '*' << b << '*' << c; return 0; }
Output: Compile time error!Wyjaśnienie: 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;
Pytanie 2 CPP
#include using namespace std; int main() { for ( ; ; ) cout << 'blank'; return 0; }
Output: Infinite Loop!Wyjaśnienie: Ponieważ w pętli for brakuje warunku testu inicjalizacji oraz warunku inkrementacji/zmniejszenia, wykonanie zostanie przechwycone w nieskończonej pętli.
Pytanie 3 CPP
#include using namespace std; int main() { int i; for (i=0; i<3; i++); cout << 'hello!' <<i; return 0; }
Output: hello!3Wyjaśnienie: Rezultatem jest Hello!3, ponieważ podczas wykonywania pętli for nie ma ona żadnego zadania do wykonania ze względu na średnik(;) znajdujący się w wierszu, w którym zdefiniowano pętlę for. Pętla wykona się trzy razy, a wartość i osiągnie 3, a następnie wykonana zostanie reszta instrukcji.
Pytanie 4 CPP
#include using namespace std; int main() { int i; i = 1 + (14563); cout << i; return 0; }
Output: 4Wyjaśnienie: Operator przecinka () to operator binarny, który ocenia pierwszy operand i odrzuca wynik, a następnie ocenia drugi i zwraca wartość drugiego. Tutaj łączność operatora przecinka () przebiega od lewej do prawej i łatwo zrozumieć, że wyrażenie (14563) ma wartość 3, a następnie wynik 1 + 3 jest przypisywany do i.
Pytanie 5 CPP
#include using namespace std; int main() { int a = 0 b; b = (a = 50) + 10; cout << a << '$' << b; return 0; }
Output: 50Wyjaśnienie: Stwierdzenie b = (a = 50) + 10; wykorzystuje koncepcję osadzonego przypisania. Tutaj wartość 50 jest przypisana do zmiennej a, a wynik 50+10 jest przypisany do b. Pytanie 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: 120Wyjaśnienie: C++ może również wykonywać obliczenia arytmetyczne, biorąc pod uwagę wartości ASCII znaków, jeśli operacje arytmetyczne są wykonywane na zmiennych typu char. W tym przypadku odpowiedź brzmi 120, co jest wartością ASCII dla x.
Pytanie 7 CPP
#include using namespace std; int main(int x) { static int i = 5; if (--i) { cout << i; main(10); } return 0; }
Output: 4321Wyjaśnienie: Każda liczba różna od zera w C++ jest traktowana jako wartość prawdziwa. W tym kodzie instrukcja if ma tendencję do zmniejszania wartości i, ale wewnątrz bloku if funkcja main() jest wywoływana wielokrotnie. Tutaj program wydaje się być w nieskończonej pętli, ale zmienna i ma charakter statyczny i ma swój czas życia aż do wykonania, dlatego program zatrzyma się, jeśli i osiągnie wartość 0.
Pytanie 8 CPP
#include using namespace std; int main(int x) { int i = 5; if (--i) { cout << i; main(10); } return 0; }
Output: infinite loopWyjaśnienie: Każda liczba różna od zera w C++ jest traktowana jako wartość prawdziwa. Tutaj, w tym kodzie, instrukcja if ma tendencję do zmniejszania wartości i, ale wewnątrz bloku, jeśli funkcja main() jest wywoływana wielokrotnie (wszystkie instrukcje będą teraz wykonywane tak, jakby był to nowy program), dlatego wykonanie programu zostanie przechwycone w nieskończonej pętli, ponieważ nie ma warunku zakończenia. Utwórz quiz