#include using namespace std; int main() { int a = b = c = 0; cout << a << '*' << b << '*' << c; return 0; }
Output: Compile time error!Paskaidrojums: 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. jautājums CPP
#include using namespace std; int main() { for ( ; ; ) cout << 'blank'; return 0; }
Output: Infinite Loop!Paskaidrojums: Tā kā cilpas iekšpusē trūkst inicializācijas pārbaudes nosacījuma un pieauguma/samazināšanās nosacījuma, izpilde tiks noķerta bezgalīgā cilpā.
3. jautājums CPP
#include using namespace std; int main() { int i; for (i=0; i<3; i++); cout << 'hello!' <<i; return 0; }
Output: hello!3Paskaidrojums: Hello!3 ir rezultāts, jo, izpildot for cilpu, tam nav nekādu uzdevumu, jo rindā, kur ir definēta for cilpa, atrodas semikols (;). Cilpa tiks izpildīta trīs reizes, un i vērtība kļūs par 3, pēc tam tiks izpildīts pārējais(-i) paziņojums(-i).
4. jautājums CPP
#include using namespace std; int main() { int i; i = 1 + (14563); cout << i; return 0; }
Output: 4Paskaidrojums: Komats () ir binārs operators, kas novērtē pirmo operandu un izmet rezultātu, pēc tam novērtē otro un pēc tam atgriež otrās vērtību. Šeit komata () operatora asociativitāte ir no kreisās uz labo pusi un ir viegli saprotama, ka izteiksme (14563) tiek novērtēta kā 3 un tad rezultāts 1 + 3 tiek piešķirts i.
5. jautājums CPP
#include using namespace std; int main() { int a = 0 b; b = (a = 50) + 10; cout << a << '$' << b; return 0; }
Output: 50Paskaidrojums: Apgalvojums b = (a = 50) + 10; izmanto iegultās piešķiršanas jēdzienu. Šeit mainīgajam a tiek piešķirta vērtība 50, bet rezultāts 50+10 tiek piešķirts b. 6. jautājums 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: 120Paskaidrojums: C++ var veikt arī aritmētiskos aprēķinus, ņemot vērā rakstzīmju ASCII vērtības, ja aritmētiskā darbība tiek veikta ar char datu tipa mainīgajiem. Šajā gadījumā atbilde ir 120, kas ir ASCII vērtība x.
7. jautājums CPP
#include using namespace std; int main(int x) { static int i = 5; if (--i) { cout << i; main(10); } return 0; }
Output: 4321Paskaidrojums: Jebkurš skaitlis, kas nav nulle valodā C++, tiek uzskatīts par patieso vērtību. Šeit šajā kodā if paziņojumam ir tendence samazināt i vērtību, bet if blokā galvenā () funkcija tiek izsaukta atkal un atkal. Šeit šķiet, ka programma atrodas bezgalīgā cilpā, bet mainīgais i pēc būtības ir statisks, tā kalpošanas laiks līdz izpildei, tāpēc programma tiks apturēta, ja i kļūst par 0.
8. jautājums CPP
#include using namespace std; int main(int x) { int i = 5; if (--i) { cout << i; main(10); } return 0; }
Output: infinite loopPaskaidrojums: Jebkurš skaitlis, kas nav nulle valodā C++, tiek uzskatīts par patieso vērtību. Šeit šajā kodā priekšrakstam if ir tendence samazināt i vērtību, bet if blokā funkcija main () tiek izsaukta atkal un atkal (visi priekšraksti tagad tiks izpildīti tā, it kā tā būtu jauna programma), tāpēc programmas izpilde tiks noķerta bezgalīgā cilpā, jo nav izbeigšanas nosacījuma. Izveidojiet viktorīnu