#include using namespace std; int main() { int a = b = c = 0; cout << a << '*' << b << '*' << c; return 0; }
Output: Compile time error!Obrazloženje: 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;
pitanje 2 CPP
#include using namespace std; int main() { for ( ; ; ) cout << 'blank'; return 0; }
Output: Infinite Loop!Obrazloženje: Budući da unutar petlje for nedostaje uvjet testa inicijalizacije i uvjet inkrementa/dekrementa, izvođenje će biti uhvaćeno u beskonačnoj petlji.
pitanje 3 CPP
#include using namespace std; int main() { int i; for (i=0; i<3; i++); cout << 'hello!' <<i; return 0; }
Output: hello!3Obrazloženje: Hello!3 je rezultat jer kada se petlja for izvrši, nema zadatak za obaviti zbog točke-zareza(;) prisutnog u retku gdje je petlja for definirana. Petlja će se izvršiti tri puta i vrijednost i postat će 3, a zatim će se izvršiti ostatak naredbi.
pitanje 4 CPP
#include using namespace std; int main() { int i; i = 1 + (14563); cout << i; return 0; }
Output: 4Obrazloženje: Operator zarez () je binarni operator koji procjenjuje prvi operand i odbacuje rezultat, zatim procjenjuje drugi i vraća vrijednost drugog. Ovdje je asocijativnost operatora zareza () s lijeva na desno i lako je razumjeti da se izraz (14563) procjenjuje kao 3, a zatim se rezultat 1 + 3 dodjeljuje i.
pitanje 5 CPP
#include using namespace std; int main() { int a = 0 b; b = (a = 50) + 10; cout << a << '$' << b; return 0; }
Output: 50Obrazloženje: Tvrdnja b = (a = 50) + 10; koristi koncept ugrađene dodjele. Ovdje je vrijednost 50 dodijeljena varijabli a, a rezultat 50+10 dodijeljen je varijabli b. Pitanje 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: 120Obrazloženje: C++ također može izvoditi aritmetičke izračune uzimajući u obzir ASCII vrijednosti znakova ako se aritmetičke operacije izvode na varijablama tipa podataka char. Ovdje u ovom slučaju odgovor je 120 što je ASCII vrijednost za x.
Pitanje 7 CPP
#include using namespace std; int main(int x) { static int i = 5; if (--i) { cout << i; main(10); } return 0; }
Output: 4321Obrazloženje: Svaki broj različit od nule u C++-u tretira se kao prava vrijednost. Ovdje u ovom kodu naredba if ima tendenciju smanjivanja vrijednosti i, ali unutar bloka if funkcija main() poziva se uvijek iznova. Ovdje se čini da je program u beskonačnoj petlji, ali varijabla i je statična po prirodi i ima svoj životni vijek do izvršenja, stoga će se program zaustaviti ako i postane 0.
Pitanje 8 CPP
#include using namespace std; int main(int x) { int i = 5; if (--i) { cout << i; main(10); } return 0; }
Output: infinite loopObrazloženje: Svaki broj različit od nule u C++-u tretira se kao prava vrijednost. Ovdje u ovom kodu naredba if ima tendenciju smanjivanja vrijednosti i, ali unutar bloka if funkcija main() poziva se iznova i iznova (sve naredbe sada će se izvršavati kao da se radi o novom programu), stoga će izvođenje programa biti uhvaćeno u beskonačnoj petlji jer nema uvjeta prekida. Napravi kviz