logo

Izlaz C++ programa | Set 22

Predvidite izlaz sljedećih C++ programa. pitanje 1 CPP
#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!3 
Obrazlož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:
4 
Obrazlož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:
50 
Obrazlož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:
120 
Obrazlož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:
4321 
Obrazlož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 loop 
Obrazlož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